MCP 构建器实战案例
场景描述
团队用Claude做开发,需要把CRM、Jira和Confluence通过MCP Server接入,让AI直接查询操作这些系统。
效果对比
3个MCP Server上线,AI开发效率提升40%
完整对话
构建3个MCP Server:CRM客户查询、Jira工单管理、Confluence文档搜索。团队用TypeScript,帮我设计架构。
好的,我来帮你。首先进行第一步:能力需求分析: ### 第一步:能力需求分析 - 和智能体使用方确认:智能体需要完成什么任务? - 列出需要的能力清单:读数据、写数据、调 API、执行操作 - 确定数据源和外部系统:数据库、REST API、第三方 SaaS - 明确安全边界:哪些操作允许、哪些禁止、需要什么鉴权
第一步完成了,请继续第二步:工具接口设计。
### 第二步:工具接口设计 - 每个能力设计为独立工具,遵循 动词_名词 命名 - 写清每个参数的描述和约束——这就是智能体的"使用手册" - 设计错误返回:每种失败场景都要有可操作的提示信息 - **关键检查**:让一个不了解系统的人只看工具名和参数描述,能正确使用
请给我完整的 MCP 服务器(TypeScript)的输出。
### 完整的 MCP 服务器(TypeScript) ```typescript import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; const server = new McpServer({ name: "sales-crm-server", version: "1.0.0", }); // ---- 工具:搜索客户 ---- server.tool( "search_customers", { query: z.string().describe("搜索关键词:客户名称、邮箱或电话"), region: z.string().optional().describe("按区域过滤,如 '华东'、'华南'"), limit: z.number().min(1).max(50).default(10).describe("返回结果数量上限"), }, async ({ query, region, limit }) => { try { const customers = await db.customers.search({ query, region, limit, }); if (customers.length === 0) { return { content: [{
关键产出物
- ✓MCP Server架构设计
- ✓3个Server完整代码
- ✓工具定义与测试
- ✓部署与配置指南
使用技巧
- 💡先明确目标和约束条件
- 💡分步骤执行,不要跳过关键环节
- 💡输出结果后进行复盘和优化