Skip to content

Commit 7de8529

Browse files
committed
feat(core): add MCP server basic implementation
1 parent f0cb37c commit 7de8529

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

src/index.ts

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/usr/bin/env node
2+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4+
import { registerTools } from "./tools.js";
5+
import { setupHandlers } from "./handlers.js";
6+
import fs from 'node:fs';
7+
import path from 'node:path';
8+
import os from 'node:os';
9+
10+
const parseArgs = () => {
11+
const args = process.argv.slice(2);
12+
let browserType = null;
13+
14+
for (let i = 0; i < args.length; i++) {
15+
if (args[i] === '--browser' && i + 1 < args.length) {
16+
browserType = args[i + 1].toLowerCase();
17+
break;
18+
}
19+
}
20+
21+
if (browserType) {
22+
process.env.MCP_BROWSER_TYPE = browserType;
23+
24+
try {
25+
const configPath = path.join(os.homedir(), '.mcp_browser_agent_config.json');
26+
const config = fs.existsSync(configPath)
27+
? JSON.parse(fs.readFileSync(configPath, 'utf8'))
28+
: {};
29+
config.browserType = browserType;
30+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
31+
} catch (error) {
32+
console.error('Error saving browser type to config:', error);
33+
}
34+
}
35+
};
36+
37+
async function startServer() {
38+
parseArgs();
39+
const server = new Server(
40+
{
41+
name: "mcp-browser-agent",
42+
version: "0.1.0",
43+
},
44+
{
45+
capabilities: {
46+
resources: {},
47+
tools: {},
48+
},
49+
}
50+
);
51+
52+
const tools = registerTools();
53+
setupHandlers(server, tools);
54+
const transport = new StdioServerTransport();
55+
await server.connect(transport);
56+
}
57+
58+
startServer().catch(error => {
59+
console.error("Server error:", error);
60+
process.exit(1);
61+
});

0 commit comments

Comments
 (0)