关于 MCP Hot Update Server Demo
MCP Hot Update Server Demo 是基于 FastMCP 的示例,可从 JSON 加载工具函数并在不重启时更新已注册工具,适用于演示动态工具管理;生产使用需防范 exec() 执行代码的风险。
主要功能
- 01动态加载工具函数
- 02通过 JSON 配置管理工具
- 03无需重启即可更新工具
- 04错误处理与日志记录
适用场景
- 01测试 MCP 工具动态注册
- 02通过 JSON 修改工具函数
- 03在开发中探索热更新
MCP 相关
服务从 JSON 配置加载函数,并将其注册为 MCP 工具;它使用 exec() 执行提供的代码。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 热更新服务示例
这是一个基于 FastMCP 框架的热更新服务示例,可在不重启服务的情况下动态加载和更新实用函数。
功能
- 支持动态加载实用函数
- 通过 JSON 配置文件管理工具
- 支持实时热更新
- 详细的错误处理和日志记录
核心代码
exec(tool_code, globals(), local_namespace)
if inspect.isfunction(obj) and obj.__name__ in local_namespace:
if found_func is not None:
# Handle potential duplicate function definition if needed
pass # Or log a warning, raise an error, etc.
found_func = obj
if found_func:
# Add the tool to MCP using the database name
mcp.tool(
name=tool_name, description=tool_description
)(found_func)
print(f"Successfully registered tool '{tool_name}'")
🚀 快速开始
1️⃣ 环境设置
确保已安装 Python 3.7+。然后安装所需的库:
$ pip install fastmcp
fastmcp:MCP 的 Python 实现库。
2️⃣ 运行 MCP 服务
$ python server.py
tools.json文件格式如下:
[
{
"name": "Tool Name",
"description": "Tool Description",
"code": "def function_name(params):\n # Function implementation\n return result"
}
]
安全注意事项
⚠️ 重要安全警告:
- 当前实现使用
exec()执行从 JSON 文件读取的代码 - 在生产环境中需要采取额外的安全措施:
- 代码签名验证
- 沙箱环境限制
- 代码审查机制
- 访问控制
开发建议
- 在开发环境中测试所有实用函数
- 确保 JSON 文件格式正确
- 添加适当的错误处理
- 实施代码审查流程
- 考虑添加版本控制机制
工作流
graph TD
A[Start Server] --> B[Load tools.json]
B --> C{Parse JSON}
C -->|Success| D[Iterate Tool List]
C -->|Failure| E[Output Error Log]
D --> F[Execute Tool Code]
F --> G{Code Execution}
G -->|Success| H[Register to MCP]
G -->|Failure| I[Output Error Log]
H --> J[Server Running]
J --> K[Wait for New Requests]
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。