使用说明
FastMCP 服务器模板
一个使用FastMCP构建MCP(模型上下文协议)服务器的全面模板。此模板包含示例工具、资源和提示,帮助您快速上手。
特点/特性
- 🛠️(扳手) 示例工具即开即用的文本分析、计算等工具
- 📚 书籍或学习的象征 资源数据访问的示例资源端点
- 💬(这个表情符号在中文中通常被理解为“对话”或“留言”的意思,但直接翻译可能无法完全传达其在不同语境下的具体含义,因此这里保留了其原样以表示这是一个表情符号) 提示为常见任务预定义的提示模板
- 🐳 这个表情符号通常代表一只哭泣的鲸鱼,所以可以翻译为“哭泣的鲸鱼”或者简单地用“鲸鱼哭”来表达。不过,在实际应用中,直接使用“🐳”这个符号已经足够传达其含义,无需特意翻译。 Docker 支持完全容器化,Dockerfile已优化
- ⚡(闪电符号,常用于表示速度、能量、电力等概念,具体含义需根据上下文确定) UV包管理器使用 uv 进行快速依赖管理
- 🔧 修理工具或螺丝刀的符号,常用于表示维修、修理或需要动手操作的场景。 类型提示全面支持类型注解,提升IDE使用体验
包含内容
工具
get_greeting生成个性化的问候语calculate_sum进行数学计算analyze_text分析文本并返回统计数据
资源
info://server/info服务器信息和元数据data://example/stats示例统计数据
提示
code_review_prompt生成代码审查模板data_analysis_prompt生成数据分析模板
先决条件
- Python 3.12或更高版本
- 紫外线 包管理器
- Docker(可选,用于容器化部署)
安装
使用紫外线(推荐)
- 克隆或复制这个模板:
cd /path/to/mcp-boilerplate
- 安装依赖项:
uv sync
- 运行服务器:
uv run server.py
使用 pip
- 安装依赖项:
pip install "mcp[cli]>=1.6.0"
- 运行服务器:
python server.py
Docker 部署
构建Docker镜像:
docker build -t mcp-boilerplate .
运行容器:
docker run -i mcp-boilerplate
使用 docker-compose(创建 docker-compose.yml 文件):
version: '3.8'
services:
mcp-server:
build: .
stdin_open: true
tty: true
然后运行:
docker-compose up
项目结构
mcp-boilerplate/
├── server.py # Main MCP server implementation
├── pyproject.toml # Project dependencies and metadata
├── Dockerfile # Docker configuration
├── README.md # This file
└── .gitignore # Git ignore patterns
使用示例
MCP服务器通过标准输入/输出(stdio)进行通信。以下是与其交互的方法:
测试工具
支持MCP的LLM客户端或测试框架可以调用工具:
# Example: Using the calculate_sum tool
{
"method": "tools/call",
"params": {
"name": "calculate_sum",
"arguments": {
"numbers": [1, 2, 3, 4, 5]
}
}
}
访问资源
资源提供只读数据访问:
# Example: Accessing server info
{
"method": "resources/read",
"params": {
"uri": "info://server/info"
}
}
定制化
添加新工具
- 添加一个具有……的新功能
@mcp.tool()装饰器:
@mcp.tool()
async def your_custom_tool(param: str) -> Dict[str, Any]:
"""
Your tool description here.
Args:
param: Parameter description
Returns:
Result description
"""
# Your implementation
return {"result": "value"}
添加新资源
- 添加一个新功能,使用
@mcp.resource()装饰器:
@mcp.resource("custom://your/resource")
async def your_custom_resource() -> str:
"""
Your resource description here.
Returns:
Resource data as string
"""
return "your data"
添加新提示
- 添加一个具有(某种特性/功能)的新函数
@mcp.prompt()装饰器:
@mcp.prompt()
async def your_custom_prompt(param: str = "default") -> str:
"""
Your prompt description here.
Args:
param: Parameter description
Returns:
Formatted prompt string
"""
return f"Your prompt template with {param}"
发展
安装开发依赖项:
uv sync --extra dev
运行测试(如果您添加了测试的话):
uv run pytest
格式代码:
uv run black .
代码规范(或代码整洁度):
uv run ruff check .
配置
你可以通过修改来配置服务器 server.py:
- 服务器名称更改名称为
FastMCP("Your Server Name") - 交通目前使用中
stdio可以改为sse用于HTTP传输 - 环境变量在 Dockerfile 中添加自定义环境变量
故障排除
服务器无响应
- 确保已安装 Python 3.12 或更高版本
- 检查所有依赖项是否已正确安装
- 验证stdin/stdout未被其他进程使用
Docker 构建失败
- 确保Docker正在运行
- 检查网络连接以下载uv及其依赖项
- 验证 pyproject.toml 文件的语法是否正确
导入错误
- 跑
uv sync确保所有依赖项都已安装 - 检查Python版本兼容性
资源
许可证
此代码模板仅提供作教育和开发用途,不做任何修改。
贡献;助力
请随意根据您的特定使用场景对这个模板进行定制。常见的修改包括:
- 添加数据库连接
- 集成外部API
- 添加身份验证
- 实现自定义业务逻辑
下一步
- 根据您的使用场景自定义示例工具
- 添加您自己的资源和提示
- 配置服务器名称和元数据
- 为您的自定义功能添加测试
- 使用 Docker 或您偏好的方法进行部署
祝你建造愉快! 🚀
