使用说明
{{项目名称}}
{{PROJECT_DESCRIPTION}}
这是一个MCP(模型上下文协议)服务器模板,为AI代理提供对API端点的访问。它是用Python构建的,可以使用uv包管理器或Docker运行。
设置
先决条件
- Python 3.13或更高版本(最新稳定版)
- uv包管理器 (或Docker)
方法1:紫外线局部开发
-
安装uv (如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh -
安装依赖项:
uv sync -
配置环境变量:
cp .env.example .env # Edit .env with your API configuration -
运行服务器:
uv run python -m src.server
方法二:Docker
-
配置环境变量:
cp .env.example .env # Edit .env with your API configuration -
使用Docker Compose构建和运行:
docker-compose up --build或者手动构建并运行:
docker build -t my-mcp-server . docker run --rm -it --env-file .env my-mcp-server
可用工具
get_users:从API检索用户create_user:创建新用户get_user_by_id:按ID获取用户
配置
在您的 .env 文件:
API_BASE_URL:现有API的基本URL(默认值:http://localhost:8000)API_KEY:API身份验证密钥(可选)
Docker特定说明
- 默认值
API_BASE_URL在Docker中设置为http://host.docker.internal:8000访问主机上的服务 - 调整
docker-compose.yml如果需要公开端口或使用不同的网络,请使用文件
连接到AI客户端
要将此MCP服务器连接到像Claude Desktop这样的AI客户端,请添加以下配置:
地方发展
{
"mcpServers": {
"{{PROJECT_NAME}}": {
"command": "uv",
"args": ["run", "python", "-m", "src.server"],
"cwd": "/path/to/{{PROJECT_NAME}}"
}
}
}
码头工人
{
"mcpServers": {
"{{PROJECT_NAME}}": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env-file", "/path/to/{{PROJECT_NAME}}/.env", "{{PROJECT_NAME}}"],
"cwd": "/path/to/{{PROJECT_NAME}}"
}
}
}
发展
测试
# Run tests with uv
uv run pytest
# Or create a simple test
uv run python test_server.py
定制
为了使其适用于您的特定API:
-
更新
src/tools.py:- 将示例工具替换为实际的API端点
- 修改
APIClient.make_request()方法(如果需要自定义身份验证) - 更新
handle_tool_call()使用端点逻辑运行
-
更新
src/config.py:- 添加API所需的任何附加配置
- 修改身份验证设置
-
添加更复杂的错误处理:
- 处理特定的HTTP状态代码
- 为瞬态故障添加重试逻辑
- 实施适当的日志记录
项目结构
{{PROJECT_NAME}}/
├── src/
│ ├── __init__.py
│ ├── server.py # Main MCP server implementation
│ ├── tools.py # Tool definitions and API client
│ └── config.py # Configuration management
├── pyproject.toml # Project configuration and dependencies
├── docker-compose.yml # Docker Compose configuration
├── Dockerfile # Docker image definition
├── .env.example # Example environment variables
├── .gitignore # Git ignore patterns
├── .dockerignore # Docker ignore patterns
└── README.md # This file
