MCP包模板
用于构建的生产就绪模板 模型上下文协议 (MCP)服务器,向AI助手公开数据库、API或任何数据源。
版本: 1.0.0 运行时间: Python 3.10+, FastMCP 2.x 运输: HTTP/SSE(Docker)或stdio(本地开发)
此模板提供什么
| 组件 | 描述 |
|---|---|
| FastMCP服务器 | SSE传输、工具/技能自动发现的切入点 |
| 工具自动发现 | 将Python模块放入 mcp_server/tools/,它会自动注册 |
| 技能体系 | 使用YAML frontmatter的Markdown驱动的指导工作流程 |
| 配置模块 | .env-基于配置 DATABASE_URL 或组件变量 |
| 安全层 | SQL白名单+只读强制(可选,适用于数据库支持的MCP) |
| 元数据模式 | DCAT启发的JSON模式,用于包、数据集、来源、工具 |
| Docker打包 | 多级Dockerfile+docker组合与健康检查 |
| 反向代理 | 用于使用Basic Auth进行子路径路由的Caddyfile代码段 |
| 脚本 | 开发运行器、烟雾测试、清单生成器、CRLF验证器 |
| 文档 | 架构文档、教程、部署指南 |
快速开始
# 1. Copy the template
cp -r mcp-package-template/ my-new-mcp/
cd my-new-mcp/
# 2. Configure
cp .env.example .env
# Edit .env — fill in your database credentials
# 3. Install
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
# 4. Run locally
python -m mcp_server
# 5. Test
bash scripts/smoke_test.sh
# 6. Docker
docker compose up --build -d建筑
Client (Claude, ChatGPT, etc.)
| JSON-RPC 2.0 over HTTP
v
[Caddy Reverse Proxy] parameterised queries
v
[Database] <-- read-only user项目结构
my-new-mcp/
|-- mcp_server/
| |-- server.py # FastMCP entry point
| |-- __main__.py # HTTP runner
| |-- db.py # Database connection layer
| |-- config/
| | |-- settings.py # Environment variable loading
| |-- security/
| | |-- sql_whitelist.py # Table whitelist validation
| | |-- read_only.py # LIMIT enforcement
| |-- tools/
| | |-- discovery.py # Auto-discovery engine
| | |-- example_tools.py # Example: echo, server_time, calculator
| | |-- statistics_tools.py # Example: descriptive_stats, correlation
| |-- skills/
| | |-- loader.py # Skill auto-discovery + MCP prompt registration
| | |-- registry.py # Programmatic skill listing
| | |-- *.md # Skill definitions (YAML frontmatter + body)
| |-- metadata/
| | |-- manifest.py # Manifest generator
| | |-- schema/ # JSON schemas (package, dataset, provenance, tool)
| |-- resources/
| |-- README.md # Resource documentation
|-- metadata/
| |-- template.json # Base metadata (edit for your project)
|-- scripts/
| |-- dev_run.sh # Local development runner
| |-- smoke_test.sh # Curl-based integration tests
| |-- generate_manifest.sh # Manifest generation
| |-- validate_line_endings.sh # CRLF detection
|-- docs/ # Architecture and tutorial documentation
|-- Dockerfile # Multi-stage production build
|-- docker-compose.yml # Container orchestration
|-- Caddyfile.snippet # Reverse proxy configuration
|-- pyproject.toml # Python packaging
|-- .env.example # Environment variable template定制检查表
从该模板创建新MCP时:
pyproject.toml--更改name,version,description,添加您的依赖项mcp_server/server.py--更改FastMCP("My MCP Server")到您的项目名称mcp_server/config/settings.py--如果需要,调整env var前缀(MCP_DB_*)mcp_server/security/sql_whitelist.py--将表名添加到ALLOWED_TABLESmetadata/template.json--填写您的包、数据集和来源元数据.env.example--更新您的数据库连接详细信息docker-compose.yml--设置COMPOSE_PROJECT_NAME到您的项目名称Caddyfile.snippet--设置您的域和子路径
文档
许可证
麻省理工学院——见 许可证.
