关于 MCP Server Template (
MCP Server Template(`create-mcp-server`)为开发者搭建 TypeScript MCP 服务项目骨架。它初始化项目文件与元数据,并按工具、服务、配置和类型组织代码。
主要功能
- 01通过 npx 创建项目
- 02交互式填写项目详情
- 03复制模板文件与配置
- 04更新项目元数据
- 05按模块组织工具与服务
适用场景
- 01启动新的 MCP 服务项目
- 02搭建工具与服务模块
- 03开发期间构建并运行服务
MCP 相关
提供构建 MCP 服务的起始结构,包含工具定义与注册。生成的项目带有开发运行命令,以及生产构建和启动命令。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务模板(create-mcp-server)
此模板可帮助你根据推荐实践,快速搭建新的 Model Context Protocol(MCP)服务项目。
用法(创建新服务)
要创建一个名为 my-new-mcp-server 的新 MCP 服务项目,请使用 npx 运行以下命令:
npx create-mcp-server my-new-mcp-server
(注意:如果你尚未将此软件包发布到 npm,可能需要先在此模板目录中运行 npm link,然后使用 create-mcp-server my-new-mcp-server)
此命令将:
- 创建名为
my-new-mcp-server的新目录。 - 提示你填写项目详情(名称、描述)。
- 将模板文件(
src、docs、配置文件等)复制到新目录中。 - 使用你的项目详情更新
package.json。
初始化后,请按照终端中提供的说明操作:
cd my-new-mcp-server
npm install
# Review configuration in src/config/ConfigurationManager.ts
# Add your tools in src/tools/
# Add your services in src/services/
npm run dev # Start the development server
开发此模板(进阶)
本节介绍 mcp-server-template 模板本身的结构和开发流程。如果你只是使用此模板创建自己的服务,通常无需阅读本节。
项目结构
- /src:包含所有源代码。
- /config:配置管理(ConfigurationManager)。
- /services:核心业务逻辑类。
- /tools:MCP 工具定义和适配器(*Tool.ts,*Params.ts)。
- /types:TypeScript 接口和 Zod 模式。
- /utils:共享实用函数(日志记录、错误处理等)。
- initialize.ts:创建服务实例并注册工具。
- server.ts:应用程序主入口。
- /dist:编译后的 JavaScript 输出(由 pm run build 生成)。
- package.json:项目元数据和依赖项。
- sconfig.json:TypeScript 编译器选项。
- .eslintrc.json:ESLint 配置。
- .prettierrc.json:Prettier 配置。
- .gitignore:Git 忽略规则。
开始使用
- 安装依赖:
ash npm install - 配置 Husky(如有需要,首次配置时):
ash npx husky install - 在开发模式下运行:(使用 s-node 和
odemon 自动重新加载)
ash npm run dev - 构建生产版本:
ash npm run build - 运行生产构建:
ash npm start
添加新工具(yourTool)
- **定义类型:**创建 src/types/yourServiceTypes.ts,定义接口(例如 YourServiceConfig、YourServiceData)。从 src/types/index.ts 导出。
- **实现服务:**创建 src/services/YourService.ts,实现包含核心逻辑的类。从 src/services/index.ts 导出。
- **定义工具参数:**创建 src/tools/yourToolParams.ts,其中包含 TOOL_NAME、TOOL_DESCRIPTION 和 TOOL_PARAMS(使用 Zod 并通过详细的 .describe() 调用提供说明)。
- **实现工具注册:**创建 src/tools/yourTool.ts。导入服务和参数。创建一个函数,用于实例化服务并调用 server.tool(),传入一个异步处理程序,用于验证输入、调用服务、格式化输出并处理错误(映射到 McpError)。
- **注册工具:**在 egisterTools 函数中,从 src/tools/index.ts 导入并调用注册函数。
- **添加配置:**如有需要,更新 src/config/ConfigurationManager.ts,为新服务添加配置类型、默认值、获取器和更新器。
- **添加实用函数:**如有需要,在 src/utils/ 中添加辅助函数并导出。
- **编写测试:**在 src/services/ 中为服务逻辑添加单元测试,并可在 src/tools/ 中为工具适配器添加集成测试。
代码检查与格式化
- 代码检查: pm run lint
- 格式化: pm run format
提交时,Husky 和 lint-staged 会自动检查并格式化代码。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。