mcpField
M
MCP Server Template (

MCP Server Template (

本地服务
github.com/bsmi021开发工具082 周前更新

关于 MCP Server Template (

MCP Server Template(`create-mcp-server`)为开发者搭建 TypeScript MCP 服务项目骨架。它初始化项目文件与元数据,并按工具、服务、配置和类型组织代码。

主要功能

  1. 01通过 npx 创建项目
  2. 02交互式填写项目详情
  3. 03复制模板文件与配置
  4. 04更新项目元数据
  5. 05按模块组织工具与服务

适用场景

  1. 01启动新的 MCP 服务项目
  2. 02搭建工具与服务模块
  3. 03开发期间构建并运行服务

MCP 相关

提供构建 MCP 服务的起始结构,包含工具定义与注册。生成的项目带有开发运行命令,以及生产构建和启动命令。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"custom-mcp-template": {
"command": "npx",
"args": [
"-y",
"create-mcp-server"
]
}
}
}
启动命令npx -y create-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcreate-mcp-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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)

此命令将:

  1. 创建名为 my-new-mcp-server 的新目录。
  2. 提示你填写项目详情(名称、描述)。
  3. 将模板文件(src、docs、配置文件等)复制到新目录中。
  4. 使用你的项目详情更新 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 忽略规则。

开始使用

  1. 安装依赖: ash npm install
  2. 配置 Husky(如有需要,首次配置时): ash npx husky install
  3. 在开发模式下运行:(使用 s-node 和 odemon 自动重新加载) ash npm run dev
  4. 构建生产版本: ash npm run build
  5. 运行生产构建: ash npm start

添加新工具(yourTool)

  1. **定义类型:**创建 src/types/yourServiceTypes.ts,定义接口(例如 YourServiceConfig、YourServiceData)。从 src/types/index.ts 导出。
  2. **实现服务:**创建 src/services/YourService.ts,实现包含核心逻辑的类。从 src/services/index.ts 导出。
  3. **定义工具参数:**创建 src/tools/yourToolParams.ts,其中包含 TOOL_NAME、TOOL_DESCRIPTION 和 TOOL_PARAMS(使用 Zod 并通过详细的 .describe() 调用提供说明)。
  4. **实现工具注册:**创建 src/tools/yourTool.ts。导入服务和参数。创建一个函数,用于实例化服务并调用 server.tool(),传入一个异步处理程序,用于验证输入、调用服务、格式化输出并处理错误(映射到 McpError)。
  5. **注册工具:**在 egisterTools 函数中,从 src/tools/index.ts 导入并调用注册函数。
  6. **添加配置:**如有需要,更新 src/config/ConfigurationManager.ts,为新服务添加配置类型、默认值、获取器和更新器。
  7. **添加实用函数:**如有需要,在 src/utils/ 中添加辅助函数并导出。
  8. **编写测试:**在 src/services/ 中为服务逻辑添加单元测试,并可在 src/tools/ 中为工具适配器添加集成测试。

代码检查与格式化

  • 代码检查: pm run lint
  • 格式化: pm run format

提交时,Husky 和 lint-staged 会自动检查并格式化代码。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。