使用说明
骨架MCP服务器
建筑模板项目 模型上下文协议(MCP) 服务器。该框架为最佳实践、Docker支持和示例实现提供了坚实的基础。
特性
- FastMCP框架,便于MCP服务器开发
- Docker和Docker Compose支持容器化部署
- 用于一致开发环境的VS代码开发容器配置
- 用于演示模式的示例CRUD API实现
- 带pytest的测试套件
- Claude Code与自定义命令的集成
快速开始
先决条件
- Python 3.10或更高版本
- 紫外线 包管理器(推荐)
- Docker(可选,用于容器化部署)
安装
- 克隆此存储库并为您的项目重命名:
git clone <this-repo> my-mcp-server
cd my-mcp-server
-
重命名包:
- 重命名
src/skeleton_mcp到src/your_project_name - 更新
pyproject.toml包含您的项目名称和元数据 - 更新所有Python文件中的导入
- 重命名
-
安装依赖项:
uv sync
- 创建环境文件:
cp .env.example .env
# Edit .env with your API credentials
- 运行服务器:
uv run skeleton-mcp
项目结构
skeleton_mcp/
├── src/skeleton_mcp/
│ ├── __init__.py # Package initialization
│ ├── server.py # Main MCP server entry point
│ ├── client.py # API client for backend communication
│ ├── types.py # TypedDict definitions
│ ├── api/ # API modules
│ │ ├── __init__.py
│ │ └── example.py # Example CRUD operations
│ └── utils/ # Utility modules
│ └── __init__.py
├── tests/ # Test suite
│ ├── conftest.py # Pytest fixtures
│ ├── test_example_api.py # API tests
│ └── test_server.py # Server tests
├── docs/ # Documentation
├── .claude/ # Claude Code configuration
│ ├── commands/ # Custom slash commands
│ └── settings.local.json # Permission settings
├── .devcontainer/ # VS Code dev container
├── Dockerfile # Container image definition
├── docker-compose.yml # Production compose file
├── docker-compose.devcontainer.yml # Dev container compose
├── pyproject.toml # Project configuration
├── CLAUDE.md # Claude context documentation
└── README.md # This file
发展
运行测试
uv run pytest -v
代码检查
uv run ruff check src/ tests/
uv run ruff format src/ tests/
建筑
uv build
添加您自己的工具
- 在中创建新模块
src/skeleton_mcp/api/:
# src/skeleton_mcp/api/my_api.py
async def my_tool(param1: str, param2: int = 10) -> dict:
"""
Description of what this tool does.
Args:
param1: Description of param1
param2: Description of param2
Returns:
Description of return value
"""
# Your implementation here
return {"result": "success"}
- 在中注册该工具
server.py:
from .api import my_api
mcp.tool()(my_api.my_tool)
- 在中添加类型
types.py如果需要:
class MyDataType(TypedDict):
field1: str
field2: int
处理大文件和二进制数据
对于需要处理大文件上传、下载或二进制blob存储的MCP服务器,请使用 mcp映射资源库 图书馆:
pip install mcp-mapped-resource-lib
该库提供:
- 具有唯一标识符的Blob管理
- 基于TTL的自动过期和清理
- 重复数据消除
- 安全功能(路径遍历预防、MIME验证)
- 共享存储的Docker卷集成
看 CLAUDE.md 查看详细的使用示例。
Docker部署
使用Docker Compose构建和运行:
docker compose up --build
对于使用VS代码开发容器进行开发:
- 在VS Code中打开项目
- 安装“开发容器”扩展
- 出现提示时,单击“在容器中重新打开”
Claude桌面集成
添加到您的Claude Desktop配置(claude_desktop_config.json):
{
"mcpServers": {
"skeleton-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"/path/to/your/.env",
"skeleton-mcp:latest"
]
}
}
}
或者为了当地发展:
{
"mcpServers": {
"skeleton-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/skeleton_mcp", "run", "skeleton-mcp"]
}
}
}
可用工具
| 工具 | 说明 |
|---|---|
health_check |
检查服务器运行状况和配置状态 |
list_items |
列出所有具有过滤和分页功能的项目 |
get_item |
按ID获取特定项目 |
create_item |
创建新项目 |
update_item |
更新现有项目 |
delete_item |
删除项目 |
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
API_KEY |
用于身份验证的API密钥 | (必需) |
API_BASE_URL |
后端API的基本URL | https://api.example.com/v1 |
API_TIMEOUT |
请求超时(秒) | 30 |
DEBUG |
启用调试日志记录 | false |
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 运行测试和梳理
- 提交拉取请求