MCP服务器模板

一个用于构建模型上下文协议(MCP)服务器的生产就绪模板,可将数据库、API或任何数据源暴露给AI助手。

  • by eduleonsol
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 eduleonsol/mcp-package-template

使用说明

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]  <-- Basic Auth + TLS
    |  http://127.0.0.1:HOST_PORT
    v
[Docker Container]
    |  FastMCP HTTP/SSE on PORT
    v
[MCP Server]
    |  SQL validation -> 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时:

  1. pyproject.toml --更改 name, version, description,添加您的依赖项
  2. mcp_server/server.py --更改 FastMCP("My MCP Server") 到您的项目名称
  3. mcp_server/config/settings.py --如果需要,调整env var前缀(MCP_DB_*)
  4. mcp_server/security/sql_whitelist.py --将表名添加到 ALLOWED_TABLES
  5. metadata/template.json --填写您的包、数据集和来源元数据
  6. .env.example --更新您的数据库连接详细信息
  7. docker-compose.yml --设置 COMPOSE_PROJECT_NAME 到您的项目名称
  8. Caddyfile.snippet --设置您的域和子路径

文档

许可证

麻省理工学院——见 许可证.