当前位置: 首页 > news >正文

快速构建MCP Server应用指南

Cline 是一个专注于 AI 开发的命令行工具,但构建 MCP(Model Context Protocol)Server 应用更直接的方式是使用官方的 SDK。以下是快速构建 MCP Server 的步骤:

1. 快速开始(使用 TypeScript)

安装必要依赖

npminstall@modelcontextprotocol/sdknpminstall-D typescript tsx

创建基础 MCP Server

// server.tsimport{Server}from"@modelcontextprotocol/sdk/server/index.js";import{StdioServerTransport}from"@modelcontextprotocol/sdk/server/stdio.js";constserver=newServer({name:"example-server",version:"1.0.0",},{capabilities:{tools:{},resources:{},},});// 添加工具server.setRequestHandler("tools/list",async()=>{return{tools:[{name:"get_weather",description:"获取天气信息",inputSchema:{type:"object",properties:{city:{type:"string"},},},},],};});server.setRequestHandler("tools/call",async(request)=>{if(request.params.name==="get_weather"){const{city}=request.params.argumentsas{city:string};return{content:[{type:"text",text:`${city}的天气是晴朗,25°C`,},],};}});// 启动服务器consttransport=newStdioServerTransport();awaitserver.connect(transport);console.error("MCP Server 运行中...");

运行服务器

npx tsx server.ts

2. 使用 Cline 辅助开发

虽然 Cline 不直接构建 MCP Server,但可以辅助开发:

# 使用 Cline 生成 MCP Server 代码框架cline"创建一个 MCP Server,包含文件操作工具"# 让 Cline 帮助调试cline"如何让 MCP Server 支持文件读取资源?"

3. 完整示例:文件系统 MCP Server

import{Server}from"@modelcontextprotocol/sdk/server/index.js";import{StdioServerTransport}from"@modelcontextprotocol/sdk/server/stdio.js";import{readFile,readdir}from"fs/promises";import{join}from"path";constserver=newServer({name:"filesystem-server",version:"1.0.0",},{capabilities:{resources:{subscribe:false,},tools:{},},});// 资源支持:列出目录server.setRequestHandler("resources/list",async()=>{return{resources:[{uri:"file:///",name:"根目录",mimeType:"application/json",},],};});server.setRequestHandler("resources/read",async(request)=>{consturl=newURL(request.params.uri);if(url.protocol==="file:"){constpath=url.pathname;if(path==="/"){constfiles=awaitreaddir("/");return{contents:[{type:"text",text:JSON.stringify(files,null,2),},],};}}thrownewError("Resource not found");});// 工具支持:读取文件server.setRequestHandler("tools/list",async()=>{return{tools:[{name:"read_file",description:"读取文件内容",inputSchema:{type:"object",properties:{path:{type:"string"},},required:["path"],},},],};});server.setRequestHandler("tools/call",async(request)=>{if(request.params.name==="read_file"){const{path}=request.params.argumentsas{path:string};try{constcontent=awaitreadFile(path,"utf-8");return{content:[{type:"text",text:content,},],};}catch(error){return{content:[{type:"text",text:`错误:${error}`,},],isError:true,};}}});consttransport=newStdioServerTransport();awaitserver.connect(transport);console.error("文件系统 MCP Server 已启动");

4. 调试和测试

使用 MCP Inspector 调试

# 安装 MCP Inspectornpminstall-g @modelcontextprotocol/inspector# 运行 Inspectornpx @modelcontextprotocol/inspectornodeserver.ts

在 Claude Desktop 中使用

创建配置文件:

// ~/Library/Application Support/Claude/claude_desktop_config.json (Mac){"mcpServers":{"my-server":{"command":"node","args":["/path/to/your/server.js"],"env":{}}}}

5. 项目结构建议

mcp-server/ ├── src/ │ ├── server.ts # 主服务器文件 │ ├── tools/ # 工具实现 │ ├── resources/ # 资源实现 │ └── utils.ts # 工具函数 ├── package.json ├── tsconfig.json └── README.md

6. 实用工具函数

// 创建工具响应辅助函数functioncreateToolResponse(content:string,isError=false){return{content:[{type:"text"asconst,text:content,},],isError,};}// 验证参数functionvalidateArguments(args:any,schema:any){// 实现参数验证逻辑}

快速启动命令

# 1. 初始化项目npminit -y# 2. 安装依赖npminstall@modelcontextprotocol/sdknpminstall-D typescript tsx @types/node# 3. 创建 TypeScript 配置npx tsc --init --target es2022 --module nodenext --outDir dist# 4. 创建并运行服务器touchserver.ts# 添加上述代码到 server.tsnpx tsx server.ts

MCP Server 的核心是提供资源和工具供 AI 模型使用。你可以根据需求添加数据库操作、API 调用、文件处理等能力。

http://www.jsqmd.com/news/154762/

相关文章:

  • Python工程師年薪從80萬到300萬:我掌握的10個高階技能清單
  • 学期回顾随笔
  • YOLO模型镜像集成Fluent Bit,GPU日志统一收集
  • 学Simulink--基础储能管理场景实例:基于Simulink的锂电池Thevenin等效电路建模与仿真
  • 你寫的 type hints,暴露了你的技術思維『基因序列』
  • 从技术理想主义到人性清醒:一位 Java 架构师关于“善意”与“回报”的深度顿悟
  • YOLO目标检测灰度发布:多版本模型共享GPU资源
  • Docker持久化存储完全指南:从新手到专家的数据管理技巧
  • HTTP和https的区别?
  • 从 Java 工程师到产品经理:技术人转型产品岗的系统化实战指南
  • YOLO在农业植保中的应用:无人机喷洒依赖GPU识别
  • YOLO在智慧城市中的应用:千万级摄像头靠GPU分析
  • YOLOv9-C-Dynamic发布:动态推理路径节省GPU资源
  • YOLO训练数据增强过度?可能导致GPU过拟合
  • 又好一阵子没有写博文了,乘着周日来写点
  • YOLOv9-C-Ghost发布:Ghost Bottleneck降低GPU计算量
  • YOLO模型镜像集成Grafana,GPU性能可视化大盘
  • YOLO模型镜像集成VS Code Server,GPU远程开发
  • YOLOv8-obb旋转框检测:GPU后处理算法优化
  • YOLO与EfficientDet对比:DenseNAS结构GPU推理较慢
  • YOLO模型镜像支持GPU抢占式实例,降低成本70%
  • YOLO在工业焊接质检中的应用:缺陷识别靠GPU毫秒级响应
  • k8s基础
  • 第十八节:Jmeter的基本配置和秒杀两套方案压力测试
  • YOLO在工业分拣中的应用:机械臂控制依赖GPU低延迟
  • 推荐阅读:Asus Armoury Crate or G Helper | Linux.org
  • post-接口请求测试
  • Web安全测试:最新漏洞防御
  • 常见的英文
  • YOLOv7-E6E发布!更大颈部结构但GPU内存控制得当