从零封装MCP Server:让WorkBuddy 听懂你的工具
从零封装 MCP Server让 WorkBuddy 听懂你的工具什么是 MCPMCPModel Context Protocol是 Anthropic 推出的开放协议让 AI 助手如 WorkBuddy可以安全地调用外部工具和API。它就像一个标准化的插件接口——你写好服务端AI 就能自动发现并调用你的工具。核心概念只有三个Server你写的服务端程序注册了多个工具Tool一个具体的功能比如「发帖到知乎」Transport通信方式通常是 stdio——标准输入输出第一步项目结构一个最小化的 MCP Server 只需要三个文件my-mcp-server/ ├── package.json # 依赖声明 ├── tsconfig.json # TS 编译配置 └── src/ └── index.ts # MCP Server 入口第二步package.json{name:my-mcp-server,version:1.0.0,type:module,scripts:{build:tsc,start:node dist/index.js},dependencies:{modelcontextprotocol/sdk:^1.0.4},devDependencies:{typescript:^5.7.2,types/node:^22.10.0}}第三步编写 Serverimport{Server}frommodelcontextprotocol/sdk/server/index.js;import{StdioServerTransport}frommodelcontextprotocol/sdk/server/stdio.js;import{CallToolRequestSchema,ListToolsRequestSchema}frommodelcontextprotocol/sdk/types.js;// 1. 创建 ServerconstservernewServer({name:my-mcp,version:1.0.0},{capabilities:{tools:{}}});// 2. 注册工具列表server.setRequestHandler(ListToolsRequestSchema,async()({tools:[{name:hello_world,description:打个招呼,inputSchema:{type:object,properties:{name:{type:string,description:你的名字}},required:[name]}}]}));// 3. 处理工具调用server.setRequestHandler(CallToolRequestSchema,async(req){const{name,arguments:args}req.params;if(namehello_world){return{content:[{type:text,text:你好${args.name}}]};}return{content:[{type:text,text:未知工具}],isError:true};});// 4. 启动consttransportnewStdioServerTransport();awaitserver.connect(transport);console.error(MCP Server started);第四步注册到 WorkBuddy编译后在~/.workbuddy/mcp.json中添加{mcpServers:{my-mcp:{command:node,args:[/path/to/my-mcp-server/dist/index.js],cwd:/path/to/my-mcp-server,disabled:false}}}重启 WorkBuddy去连接器面板点「信任」你的工具就生效了。进阶接入 Playwright 浏览器实际项目中你通常需要在 MCP Server 里集成浏览器自动化。以下是一个带 Playwright 的完整示例import{chromium}fromplaywright;// 在工具处理中启动浏览器server.setRequestHandler(CallToolRequestSchema,async(req){const{name,arguments:args}req.params;if(namescreenshot){constbrowserawaitchromium.launch({headless:true});constpageawaitbrowser.newPage();awaitpage.goto(args.url);constpathscreenshot-${Date.now()}.png;awaitpage.screenshot({path});awaitbrowser.close();return{content:[{type:text,text:截图已保存:${path}}]};}return{content:[{type:text,text:未知工具}],isError:true};});关键踩坑ESM 模式MCP SDK 只支持 ESMpackage.json 必须声明type: modulestdio 通信不要用 console.log 输出普通内容用 console.error 输出日志stdout 被 MCP 协议占用路径问题mcp.json 里的 command 和 args 要用绝对路径~/不会被展开端口冲突stdio 模式下不存在端口冲突问题最佳实践维度建议错误处理每个工具调用都要 try/catch返回友好的错误信息超时控制网络请求设置 30s 超时避免 WorkBuddy 卡死日志用 console.error 输出操作日志方便排查版本管理SemVer 严格管理工具定义变更时更新 schema测试用 echo ‘{“method”:“tools/list”}’总结从零到一封装一个 MCP Server 只需要 4 步创建项目 → 安装 SDK写 index.ts → 注册工具 处理调用配置 mcp.json → 让 WorkBuddy 识别去连接器面板点「信任」完整代码约 50 行半小时能跑通。真正花时间的是工具本身的业务逻辑

相关新闻

电子元器件等级不一样为什么价格差距能这么大

电子元器件等级不一样为什么价格差距能这么大

为什么同样的一款元器件价格差距会这么大 以军工级的4644为例子,我和同行朋友(以下称b朋友)聊过,他们宇航级的4644价格在3000-4000,是我们的10倍。我就很疑疑惑了,同样一款产品,为什么能差10倍的…

2026/7/18 23:55:04阅读更多 →
分布式调度xxl-job

分布式调度xxl-job

一、概述 1.1 什么是任务调度? 任务调度是为了自动完成特定任务,在约定的特定时刻去执行任务的过程。 适用于以下场景: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨…

2026/7/18 23:55:04阅读更多 →
C++/Qt实战:从零构建校园导航系统,掌握路径规划与GUI开发

C++/Qt实战:从零构建校园导航系统,掌握路径规划与GUI开发

1. 项目概述与核心价值最近在整理过往的项目资料,翻到了一个几年前在学校时主导开发的“校内智能导航系统”。这个项目当时是为了解决新生和访客在偌大校园里“找不着北”的痛点,从零到一用C和Qt框架搭建了一套桌面端应用。现在回头看,这个项…

2026/7/18 23:55:04阅读更多 →
C#与C++混合编程实战:WebSocket高效数据传输

C#与C++混合编程实战:WebSocket高效数据传输

1. 项目背景与核心需求在工业控制、游戏开发和金融交易等实时性要求高的场景中,C#与C的混合编程方案越来越常见。最近我在一个智能制造项目中遇到了这样的需求:需要通过WebSocket实时传输设备状态数据,但核心算法是用C编写的非托管DLL。经过多…

2026/7/19 2:03:23阅读更多 →
10个Java前后端分离项目实战:SpringBoot+Vue完整源码解析

10个Java前后端分离项目实战:SpringBoot+Vue完整源码解析

这次我们来看10个适合Java期末大作业的前后端分离项目,每个项目都提供完整的源码和文档资料。无论你是需要课设、毕设还是大作业参考,这里总有一款能满足你的需求。前后端分离架构已经成为现代Web开发的主流选择,它通过前端页面调用后端RESTf…

2026/7/19 2:03:23阅读更多 →
鸿蒙 ArkTS 实战:Number Slide Puzzle 从数字滑块拼图到记录管理完整解析

鸿蒙 ArkTS 实战:Number Slide Puzzle 从数字滑块拼图到记录管理完整解析

鸿蒙 ArkTS 实战:Number Slide Puzzle 从数字滑块拼图到记录管理完整解析 前言 Number Slide Puzzle 是一个面向 数字滑块拼图 场景的鸿蒙 ArkTS 单页应用。它不是只展示静态文案,而是围绕记录数据、分数统计、开关配置、表单录入和列表交互构建了完整…

2026/7/19 2:03:23阅读更多 →
SpringBoot微服务架构实战:基于SpringCloud Alibaba的完整搭建指南

SpringBoot微服务架构实战:基于SpringCloud Alibaba的完整搭建指南

在企业级应用开发中,随着业务复杂度不断提升,单体架构在部署效率、技术选型和系统扩展性方面的局限性日益凸显。微服务架构通过将大型应用拆分为多个独立部署的小型服务,有效解决了这些痛点。本文将基于SpringBoot和SpringCloud Alibaba生态&…

2026/7/19 2:03:23阅读更多 →
SpringMVC数据传递机制与实战技巧

SpringMVC数据传递机制与实战技巧

1. SpringMVC数据传递机制解析在传统Java Web开发中,数据从后端传递到前端页面是个高频需求场景。SpringMVC作为经典的MVC框架,提供了多种灵活的数据传递方式。不同于Servlet API直接操作request/session的方式,SpringMVC通过抽象层让数据传输…

2026/7/19 2:03:23阅读更多 →
NVIDIA Nemotron-3-Embed-8B嵌入模型实战:从环境搭建到应用部署

NVIDIA Nemotron-3-Embed-8B嵌入模型实战:从环境搭建到应用部署

NVIDIA Nemotron-3-Embed-8B 嵌入模型实战指南:从环境搭建到应用部署在自然语言处理领域,嵌入模型作为文本表示的核心技术,一直是研究的热点。最近 NVIDIA 发布的 Nemotron-3-Embed-8B 模型在 RTEB 基准测试中登顶榜首,引起了广泛…

2026/7/19 2:01:23阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/18 22:49:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/18 14:49:24阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/18 18:49:35阅读更多 →