MCP服务器模板

一个用于从AI提示创建生产就绪的MCP(模型上下文协议)服务器的综合模板,生成具有OpenAPI到MCP工具映射、安全最佳实践和企业级架构的TypeScript/Node.js项目。

  • by markbsigler
  • 本地部署
  • 更新于
在 GitHub 查看 markbsigler/mcp-server-template

使用说明

MCP服务器模板

从AI提示创建生产就绪MCP(模型上下文协议)服务器的综合模板。此模板使用OpenAPI到MCP工具映射、安全最佳实践和企业级架构生成功能齐全的Types/Node.js项目。

🚀 快速开始

先决条件

  • Node.js 18+
  • Docker(可选,用于容器化部署)
  • Git
  • AI模型访问(Claude、GPT-4等),以便快速使用

5分钟设置

  1. 使用模板创建新项目:

    git clone https://github.com/markbsigler/MCP-Server-template.git
    cd MCP-Server-template
    
  2. 生成您的MCP服务器 使用 PROMPT.md 使用您偏好的AI模型

  3. 安装并运行:

    npm install
    npm run dev
    
  4. 测试您的MCP服务器:

    curl http://localhost:3000/healthz
    

✨ 功能概述

🔧 生成的项目包括

  • 🛠️ OpenAPI到MCP工具:OpenAPI规范自动转换为MCP工具
  • 🔐 企业安全:JWT身份验证、输入验证、速率限制
  • 🏗️ 生产架构:具有处理程序、中间件和类型的模块化结构
  • 🧪 综合测试:基于Jest的单元和集成测试,覆盖范围广
  • 🐳 集装箱准备就绪:使用Docker compose构建多阶段Docker
  • 🚀 CI/CD管道:具有安全扫描和多平台构建的GitHub操作
  • 📊 监控:健康检查、结构化日志记录和指标收集
  • 🔌 可扩展:插件架构和中间件系统
  • 📚 文档:自动生成的API文档和综合示例

🏛️ 建筑亮点

  • MCP协议合规性:已满 tools/list, tools/call,以及通知支持
  • 可流式HTTP传输:基于HTTP的JSON-RPC 2.0,支持SSE
  • 安全第一:无令牌传递,安全会话管理
  • 性能优化:流式响应和高效资源使用

📁 生成的项目结构

your-mcp-server/
├── src/
│   ├── handlers/          # MCP protocol handlers
│   ├── middleware/        # Authentication, validation, CORS
│   ├── types/            # TypeScript type definitions
│   ├── utils/            # Helper functions and utilities
│   └── index.ts          # Main server entry point
├── tests/
│   ├── unit/             # Unit tests
│   ├── integration/      # Integration tests
│   └── __mocks__/        # Test mocks
├── config/
│   ├── openapi.json      # OpenAPI specification
│   └── environments/     # Environment configurations
├── docs/
│   ├── api/              # Generated API documentation
│   └── architecture/     # Architecture diagrams
├── .github/
│   └── workflows/        # GitHub Actions CI/CD
├── docker/
│   ├── Dockerfile        # Multi-stage Docker build
│   └── docker-compose.yml
├── package.json
├── tsconfig.json
└── README.md

📖 PROMPT.md使用指南

使用AI模型

  1. 复制整个 PROMPT.md 内容

  2. 根据您的用例进行自定义:

    Generate an MCP server for [YOUR_USE_CASE] with the following additional requirements:
    - [Custom requirement 1]
    - [Custom requirement 2]
    
    [Paste PROMPT.md content here]
    
  3. 提交到您的AI模型 (克劳德、GPT-4等)

自定义选项

提示支持多个自定义变量:

  • 项目名称:修改生成的项目名称和结构
  • OpenAPI规范:为自定义工具提供自己的OpenAPI规范
  • 安全要求:添加特定的身份验证或授权需求
  • 部署目标:指定云平台或容器编排
  • 集成要求:添加特定的第三方服务集成

最佳实践

  • 具体:为您的用例添加详细要求
  • 包括示例:提供您想要支持的OpenAPI操作示例
  • 指定安全性:定义您的身份验证和授权要求
  • 提及集成:列出您需要集成的任何第三方服务

🛠️ 如何设置新项目

如果您想使用此模板创建一个全新的MCP服务器项目(没有原始历史记录并且与此模板断开连接),请执行以下步骤:

步骤1:克隆并删除Git历史记录

git clone https://github.com/markbsigler/MCP-Server-template.git
cd MCP-Server-template
rm -rf .git

步骤2:初始化为新的Git仓库

git init
git add .
git commit -m "Initial commit"

步骤3:在GitHub上创建新存储库

  1. 访问GitHub.com并点击 + 图标
  2. 选择 新存储库
  3. 进入 <newMCPrepo> 作为存储库名称
  4. 选择公共/私人
  5. 不要 检查任何初始化选项(README、.gitignore、许可证)
  6. 点击 创建存储库

步骤4:连接到新存储库

git branch -M main
git remote add origin https://github.com/&lt;username&gt;/&lt;newMCPrepo&gt;.git
git push -u origin main

步骤5:重命名本地文件夹

cd ..
mv MCP-Server-template &lt;newMCPrepo&gt;
cd &lt;newMCPrepo&gt;

现在,您的新MCP项目已经准备就绪,完全独立于原始模板,具有新的git历史记录!

📝 例子

生成的项目示例

  1. REST API到MCP工具

    • 带有CRUD操作的OpenAPI规范
    • 自动生成MCP工具
    • 具有速率限制的JWT身份验证
  2. 文件处理服务

    • 文件上传/下载操作
    • 二进制内容处理
    • 流媒体响应
  3. 数据分析平台

    • 复杂的查询操作
    • 分页回复
    • 实时数据流

使用场景

  • API网关:将现有的REST API转换为MCP工具
  • 微服务集成:使用MCP协议桥接微服务
  • AI助手后端:为人工智能助手和代理提供工具
  • 工作流程自动化:创建业务流程自动化工具

🤝 如何做出贡献

我们欢迎为改进此MCP服务器模板做出贡献!以下是您可以提供帮助的方式:

入门指南

  1. 分叉存储库 转到您的GitHub帐户
  2. 克隆你的叉子 本地:
    git clone https://github.com/&lt;your-username&gt;/MCP-Server-template.git
    cd MCP-Server-template
    
  3. 创建要素分支 感谢您的贡献:
    git checkout -b feature/your-feature-name
    

贡献类型

我们正在寻求帮助以改进 PROMPT.md 文件:

  • 附加MCP功能:扩展提示以包括更多MCP协议功能
  • 增强的安全性:添加更多安全最佳实践和实施细节
  • 架构改进更好的项目结构和组织模式
  • 工具实现模式:更全面的OpenAPI到MCP工具映射示例
  • 性能优化:添加性能考虑因素和监控要求
  • 测试策略:扩大测试要求和方法
  • 文件标准:改进文档生成和维护要求
  • 部署场景:添加更多容器和云部署模式
  • 集成示例:更全面的客户和集成示例
  • 错误处理:增强的错误处理和恢复模式

提交变化

  1. 提交您的更改 带有清晰、描述性的信息:
    git add .
    git commit -m "feat: add new MCP tool for file processing"
    
  2. 推你的叉子:
    git push origin feature/your-feature-name
    
  3. 创建拉取请求 在GitHub上:
    • 明确描述您的更改
    • 参考任何相关问题
    • 包括截图或示例(如适用)

拉取请求指南

  • 让公关人员保持专注:每个PR一个功能或修复
  • 写清楚描述:解释你做出了哪些改变以及为什么
  • 包括测试:所有新代码都应该有相应的测试
  • 更新文档:确保README和其他文档反映您的更改
  • 遵循常规承诺:使用清晰、描述性的提交消息

代码规范

  • TypeScript:使用严格的打字并遵循现有的模式
  • ESLint/Pretier:代码必须通过linting和格式检查
  • 测试:保持或提高测试覆盖率
  • 安全:遵循安全最佳实践,特别是MCP工具
  • 演出:考虑变更对绩效的影响

报告问题

如果您发现错误或有功能请求:

  1. 搜索现有问题 避免重复
  2. 使用问题模板 如果可用
  3. 提供详细信息:
    • 复制步骤(针对bug)
    • 预期行为与实际行为
    • 环境详细信息(Node.js版本、操作系统等)
    • 相关代码片段或日志

社区指南

  • 要有礼貌 在所有互动中都具有建设性
  • 帮助他人 通过回答问题和审查PR
  • 遵守行为准则 (如适用)
  • 保持专注 改进面向所有人的模板

问题?

如果您对贡献有疑问:

  • 打开A 讨论 在GitHub上
  • 检查现有 问题 和 拉取请求
  • 查看 PROMPT.md 技术细节文件

感谢您帮助使此MCP服务器模板对每个人都更好!

🐛 故障排除

常见问题

Q: AI模型生成不完整的代码

  • A: 提示很全面——试着把它分成更小的部分,或者使用具有更大上下文窗口的模型

Q: 生成的项目无法启动

  • A: 检查Node.js版本(需要18+)并运行 npm install 安装依赖项

Q: OpenAPI工具无法生成

  • A: 验证您的 config/openapi.json 文件是有效的JSON,并遵循OpenAPI 3.0+规范

Q: 身份验证问题

  • A: 检查JWT令牌配置,确保Bearer令牌格式正确

Q: Docker构建失败

  • A: 确保Docker已安装并正在运行,检查Dockerfile语法

获取帮助

  • 查看生成的项目的README以获取具体的设置说明
  • 查看PROMPT.md了解实施细节
  • 打开一个包含详细错误消息和环境信息的问题

📋 更新日志

版本1.0.0(2025-06-30)

  • MCP服务器模板的初始版本
  • 用于AI代码生成的全面PROMPT.md
  • OpenAPI到MCP工具映射
  • 安全最佳实践实施
  • Docker和CI/CD支持
  • 大量文档和示例

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

归因

使用此模板时:

  • 保留原始许可证文件
  • 修改生成项目中的版权声明
  • 将此模板记入您的项目文档中(可选,但很感激)

第三方许可证

生成的项目可能包括:

  • Express.js(MIT许可证)
  • Jest(麻省理工学院许可证)
  • TypeScript(Apache 2.0许可证)
  • 其他具有各自许可证的npm包

🔗 相关资源

MCP协议

OpenAPI

TypeScript和Node.js

相关MCP工具


准备好构建MCP服务器了吗? 使用PROMPT.md和您最喜欢的AI模型,在几分钟内创建生产就绪的MCP服务器! 🚀