mcpField
M
mcp-server-template

mcp-server-template

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

关于 mcp-server-template

mcp-server-template 是用于构建 TypeScript 和 Node.js MCP 服务的项目模板,面向开发自定义 MCP 服务的工程师。它提供类型检查、输入验证、模块化结构和打包、测试配置。

主要功能

  1. 01严格 TypeScript 类型检查
  2. 02使用 Zod 验证输入与环境变量
  3. 03esbuild 单文件打包
  4. 04工具、资源、提示词和服务分层
  5. 05预置 Vitest 测试
  6. 06发布至 npm 与 MCP Registry

适用场景

  1. 01搭建自定义 MCP 服务
  2. 02为工具输入添加运行时校验
  3. 03构建和测试 Node.js 服务
  4. 04通过版本标签发布服务

MCP 相关

模板用于创建 MCP 服务,并包含通过 stdio 连接及注册工具、资源和提示词的结构。提供 Claude Desktop 和 Cursor 的连接示例,并配置发布至 MCP Registry。

配置

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

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

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

安装包
npm@qmmughal/mcp-server-template1.0.0

工具

还没有获取到工具列表

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

详细介绍

企业级 MCP 服务模板 🚀

TypeScript Node.js Model Context Protocol License: MIT

一个可用于生产环境的企业级模板,用于使用 TypeScript 和 Node.js 构建 Model Context Protocol (MCP) 服务。专为可扩展性、类型安全,以及与 Claude Desktop、Cursor 等 AI Agent 无缝集成而设计。

📖 关于

Model Context Protocol (MCP) 标准化了 AI 模型与本地和远程资源的交互方式。此模板为构建自定义 MCP 服务提供了可靠的基础,可省去样板代码并落实最佳实践。

主要功能
  • 严格的 TypeScript:使用现代 ECMAScript 目标版本,并提供严格的类型安全保障。
  • Zod 验证:对工具输入和环境变量执行运行时架构验证,确保服务不会因格式错误的 AI 负载而崩溃。
  • 快速打包(esbuild):将整个服务编译为单个优化后的可执行文件(dist/index.js),无需部署 node_modules。
  • 安全的结构化日志记录:预先配置的 pino 日志记录器安全地将日志写入 stderr,确保 MCP 所需的 stdout JSON-RPC 传输完整无损。
  • 模块化架构:清晰分离工具、资源、提示词和服务。
  • Vitest 集成:开箱即用的极速单元测试。

🚀 开始使用

1. 安装

克隆仓库并安装依赖:

git clone https://github.com/qmmughal/mcp-server-template.git
cd mcp-server-template
npm install
2. 配置

复制环境变量示例文件并配置变量:

cp .env.example .env
3. 开发工作流

在监视模式下启动服务,以便进行本地开发:

npm run dev

运行测试套件:

npm test

验证类型:

npm run typecheck
4. 生产构建

将服务打包为单个优化后的可执行文件:

npm run build

输出文件将生成在 dist/index.js。

🔌 连接到 MCP 客户端

Claude Desktop

要将此服务连接到 Claude Desktop 桌面应用,请编辑 Claude 配置文件(在 Windows 上通常位于 %APPDATA%\Claude\claude_desktop_config.json,在 Mac 上通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "enterprise-template-server": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server-template/dist/index.js"],
      "env": {
        "LOG_LEVEL": "info",
        "EXAMPLE_API_KEY": "your_api_key_here"
      }
    }
  }
}
Cursor

在 Cursor 中,前往 Settings -> Features -> MCP 并添加新的 MCP 服务:

  • 类型:command
  • 命令:node /absolute/path/to/mcp-server-template/dist/index.js

🏗️ 架构概览

  • src/index.ts:应用入口、能力注册和 stdio 连接设置。
  • src/tools/:MCP 工具的定义和 JSON 架构(AI 可执行的操作)。
  • src/resources/:通过 URI 模板提供动态资源(AI 可读取的数据)。
  • src/prompts/:可复用的 Agent 提示词模板。
  • src/services/:核心业务逻辑,使协议处理程序保持精简且易于测试。
  • src/utils/errors.ts:与 MCP 错误代码一致的标准化错误处理。

📦 发布与注册表

package.json 已做好发布准备(作用域名称 @qmmughal/mcp-server-template、许可证、仓库、关键词),并配置了 server.json 和 .github/workflows/publish-mcp.yml,每当推送 v* 标签时,便会自动发布到 npm 和 MCP Registry:

git tag v1.0.0
git push origin v1.0.0

工作流运行前需要设置一个仓库密钥:NPM_TOKEN(具有 @qmmughal 作用域发布权限的 npm 自动化令牌)。MCP Registry 使用 GitHub OIDC 进行身份验证,因此无需额外设置密钥。

🤝 参与贡献

欢迎贡献代码、提交问题和功能请求!欢迎查看 issues 页面。

📝 许可证

本项目基于 MIT 许可协议授权。

评论

支持 Markdown

第一次接触 MCP?

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

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