](https://mseep.ai/app/m4tice-python-fastmcp-tpl)
Python快速MCP模板
使用Python和FastMCP创建模型上下文协议(MCP)服务器的模板。
概述
此模板为构建支持两种传输协议的MCP服务器提供了基础:
- 工作室 (默认)-标准输入/输出通信
- 上海证券交易所 -服务器通过HTTP发送事件
特性
- 在STDIO和SSE协议之间轻松切换配置
- 自动
mcp.json配置生成 - 示例工具实现(
mcp_get_precise_time) - 采用模块化组件的清洁项目结构
文件结构
├── mcp_server.py # Main MCP server application
├── mcp_settings.py # Configuration settings
├── mcp_transport_configurator.py # Auto-configures mcp.json
├── mcp_util.py # Utility functions (add your tools here)
├── requirements.txt # Python dependencies
└── README.md # This file设置
- 安装依赖项:
pip install -r requirements.txt- 配置传输协议:
编辑 mcp_settings.py 选择您的传输协议:
SETTINGS = {
PROTOCOL : STDIO, # or SSE
PORT : "5500" # only used for SSE
}传输协议
STDIO(默认)
- 使用标准输入/输出进行通信
- 适用于与支持流程生成的客户端直接集成
- 为VS Code MCP扩展自动生成配置
SSE(服务器发送事件)
- 使用服务器发送事件进行基于HTTP的通信
- 在可配置端口上运行(默认值:5500)
- 适用于基于web的集成或防火墙限制适用的情况
运行服务器
方法1:直接执行(推荐)
python mcp_server.py这将:
- 自动配置相应的
mcp.json文件 - 使用所选传输协议启动服务器
方法2:仅配置
只需更新 mcp.json 不启动服务器的配置:
python mcp_transport_configurator.py配置文件
服务器自动生成 .vscode/mcp.json 根据您的协议选择。
关于生成配置的注意事项
- 配置器写入
.vscode/mcp.json进入当前工作
目录(cwd)。生成的配置嵌入了VS代码 占位符 ${workspaceFolder} (不是 ${cwd})在命令/args/env中 条目,因此VS Code在以下情况下解析相对于工作区的路径 MCP扩展运行代理。
- 对于STDIO模式,配置器会选择一个适合操作系统的Python可执行文件
里面 .venv: - 窗户: .venv\\Scripts\\python.exe - macOS/Linux: .venv/bin/python
路径分隔符注释
- 配置器在构建时使用Python路径实用程序
包含字符串的占位符。在Windows上,这会导致反斜杠 (\\)在生成的JSON值内;在它使用的POSIX系统上 正斜杠(/)。因为VS Code会扩展 ${workspaceFolder} 在 运行时、混合或平台特定的分隔符可能出现在 扩张。如果您需要工作区中完全规范化的路径 配置时,请考虑以下任一情况: - 在JSON中使用正斜杠(例如。 ${workspaceFolder}/.venv/...),或 - 在中使用每个平台的覆盖 launch.json/配置块。
STDIO配置(示例)
Windows(配置程序在Windows上运行时可能产生的结果):
{
"servers": {
"my-mcp-server": {
"command": "${workspaceFolder}\\.venv\\Scripts\\python.exe",
"args": ["${workspaceFolder}\\agent_tpl\\mcp_server.py"],
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
}
}
}macOS/Linux(配置器在POSIX上运行时可能产生的结果):
{
"servers": {
"my-mcp-server": {
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["${workspaceFolder}/agent_tpl/mcp_server.py"],
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
}
}
}SSE配置(示例)
{
"servers": {
"my-sse-mcp-server": {
"type": "sse",
"url": "http://127.0.0.1:5500/sse"
}
}
}添加您自己的工具
- 在中实现您的功能
mcp_util.py - 在中添加MCP工具包装
mcp_server.py使用@app.tool()装饰器
例子:
# In mcp_util.py
def my_custom_function(param1, param2):
"""Your custom logic here"""
return f"Result: {param1} + {param2}"
# In mcp_server.py
@app.tool()
def my_custom_tool(param1: str, param2: str):
"""
Description of what this tool does
"""
return my_custom_function(param1, param2)故障排除
常见问题
- 端口已在使用中(SSE模式):
- 更改端口 mcp_settings.py - 检查是否有其他服务正在使用该端口
- Python路径问题(STDIO模式):
- 确保您使用的是虚拟环境 - 验证生成的Python路径 mcp.json
- 模块导入错误:
- 检查是否安装了所有依赖项 - 验证PYTHONPATH是否设置正确
日志和调试
- STDIO模式:检查VS代码MCP扩展日志
- SSE模式:服务器日志打印到控制台
示例提示
Tell me the precise time (using MCP Tools).
许可证
此模板按原样提供,用于教育和发展目的。
作者
GUU8HC
