MCP服务器模板

MCP Base是一个用于快速构建Model Context Protocol (MCP)服务器的Python模板,支持多种传输层和模块化工具、提示和资源。

  • by josharsh
  • Python
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 josharsh/mcp-server-boilerplate

使用说明

MCP基座

MCP项目的坚实基础起点。MCP Base是一个生产就绪、可扩展的模板,用于在 python快速创建、扩展和部署MCP服务器,这些服务器向LLM和代理客户端公开工具、提示和资源。


🚀 这是什么?

这是一个 Python入门基础--不是特定的服务器实现。它为在Python中构建自己的MCP服务器提供了一个模块化、有据可查的基础,支持多个传输层(STDIO、SSE、HTTP等),并展示了安全性、可扩展性和可维护性的最佳实践。


🏗️ 架构概述

.
├── src/
│   ├── base/                # Base classes for tools, prompts, resources
│   ├── tools/               # Example tools (filesystem, API, prompt, etc.)
│   ├── resources/           # Example resources (static/dynamic)
│   ├── prompts/             # Example prompts (text generation, summarization)
│   ├── transports/          # Transport layer implementations & docs
│   │   ├── stdio/
│   │   │   └── README.md
│   │   ├── sse/
│   │   │   └── README.md
│   │   └── ...
│   ├── config.py            # Configuration and environment management
│   ├── server.py            # Server instantiation and registration
│   └── main.py              # Entrypoint: selects transport, starts server
├── tests/                   # Example tests for tools/resources
├── Dockerfile               # Containerized deployment
├── requirements.txt / pyproject.toml
├── README.md                # This file
├── CONTRIBUTING.md
└── ...

✨ 特性

  • 多种运输支持: STDIO、SSE、HTTP等(参见 /src/transports/)
  • 模块化工具/提示/资源: 通过创建类并注册来添加新功能
  • 类型安全输入验证: 将Pydantic用于模式
  • 安全最佳实践: 目录沙盒、输入验证、错误处理
  • 可扩展和可维护: 关注点、基类和注册表的清晰分离
  • 生产就绪: 日志记录、环境管理、Docker支持
  • 综合文件: 对于用户和贡献者

🛠️ 入门指南

1.安装依赖项

pip install -r requirements.txt

2.配置环境

复制 .env.example 向 .env 并填写所需的值。

3.运行服务器

STDIO传输:

python main.py --transport=stdio

SSE/HTTP传输: 看 /src/transports/sse/README.md 和 /src/transports/http/README.md 了解详情。


🧩 添加工具、提示和资源

工具

  • 在中创建新类 /src/tools/ 继承自 BaseTool
  • 实现所需的方法和输入模式
  • 在工具注册表中注册该工具

鼓励

  • 在中创建新类 /src/prompts/ 继承自 BasePrompt
  • 实现所需的方法和输入模式
  • 在提示注册表中注册提示

资源

  • 在中添加静态或动态资源 /src/resources/
  • 在资源注册表中注册它们

🔌 支持的交通工具

  • STDIO: 有关CLI和代理集成(请参阅 /src/transports/stdio/README.md)
  • SSE: 有关服务器发送的事件和web客户端(请参阅 /src/transports/sse/README.md)
  • HTTP: 有关RESTful或基于web的集成(请参见 /src/transports/http/README.md)

每个运输工具都是模块化的,可以扩展或更换。


🛡️ 安全与最佳实践

  • 所有文件和目录操作都被沙盒化到允许的路径
  • 对所有工具/资源输入强制执行输入验证
  • 错误处理一致且用户友好
  • 敏感配置通过环境变量进行管理

🧪 测试

  • 示例测试见 /tests/
  • 使用Pytest作为测试运行器
  • 测试指南见CONTRIBUTING.md

🤝 贡献

我们欢迎捐款!请看 贡献.md 用于指导方针、代码风格和PR流程。


📚 进一步阅读


📝 许可证

MIT许可证。看 许可证 了解详情。


💬 社区与支持


MCP Base是所有新的Python MCP服务器项目的推荐起点。分叉、扩展和贡献改进!