运行时依赖
安装命令
点击复制技能文档
MCP Server Builder 功能说明 构建 Model Context Protocol 服务器,扩展 AI 能力边界。 MCP 协议概述 MCP 是 Anthropic 推出的 AI 模型上下文协议,让 AI 能调用外部工具和数据源。
项目结构 mcp-server/ ├── package.json ├── tsconfig.json ├── src/ │ ├── index.ts # 主入口 │ ├── tools/ # 工具定义 │ └── resources/ # 资源定义 └── tsconfig.json
完整实现
- 初始化项目
// package.json { "name": "my-mcp-server", "version": "1.0.0", "type": "module", "scripts": { "build": "tsc", "start": "node dist/index.js", "dev": "ts-node src/index.ts" }, "dependencies": { "@modelcontextprotocol/sdk": "^0.5.0", "zod": "^3.22.0" } }
// tsconfig.json { "compilerOptions": { "target": "ES2022", "module": "NodeNext", "moduleResolution": "NodeNext", "outDir": "./dist", "rootDir": "./src", "strict": true, "esModuleInterop": true }, "include": ["src/*/"] }
- 定义工具
标题: ${r.title}\n链接: ${r.url}\n摘要: ${r.snippet} }))
};
}
}; - 定义资源
- 主入口
class MyMCPServer { private server: Server;
constructor() { this.server = new Server( { name: 'my-mcp-server', version: '1.0.0' }, { capabilities: { tools: {}, resources: {} } } ); this.setupToolHandlers(); this.setupResourceHandlers(); }
private setupToolHandlers() { this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ { name: searchTool.name, description: searchTool.description, inputSchema: searchTool.inputSchema } ] }));
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
if (name === 'web_search') {
return await searchTool.handler(args as any);
}
throw new Error(Unknown tool: ${name});
});
}
private setupResourceHandlers() { this.server.setRequestHandler(ListResourcesRequestSchema, async () => ({ resources: await knowledgeResources.list() }));
this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => { return await knowledgeResources.read(request.params.uri); }); }
async start() { const transport = new StdioServerTransport(); await this.server.connect(transport); console.error('MCP Server started on stdio'); } }
new MyMCPServer().start().catch(console.error);
- 更多工具示例
Unknown operation: ${args.operation});
}
}
}; // 数据库查询工具 export const dbTool = { name: 'database_query', description: '执行数据库查询', inputSchema: z.object({ // ... }), async handler(args: any) { // ... } };