mcpField
M
MCP Hot Update Server Demo

MCP Hot Update Server Demo

本地服务
github.com/whitejoce开发工具179 周前更新

关于 MCP Hot Update Server Demo

MCP Hot Update Server Demo 是基于 FastMCP 的示例,可从 JSON 加载工具函数并在不重启时更新已注册工具,适用于演示动态工具管理;生产使用需防范 exec() 执行代码的风险。

主要功能

  1. 01动态加载工具函数
  2. 02通过 JSON 配置管理工具
  3. 03无需重启即可更新工具
  4. 04错误处理与日志记录

适用场景

  1. 01测试 MCP 工具动态注册
  2. 02通过 JSON 修改工具函数
  3. 03在开发中探索热更新

MCP 相关

服务从 JSON 配置加载函数,并将其注册为 MCP 工具;它使用 exec() 执行提供的代码。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 热更新服务示例

中文文档 | 此仓库的 DeepWiki

这是一个基于 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 文件读取的代码
  • 在生产环境中需要采取额外的安全措施:
    • 代码签名验证
    • 沙箱环境限制
    • 代码审查机制
    • 访问控制

开发建议

  1. 在开发环境中测试所有实用函数
  2. 确保 JSON 文件格式正确
  3. 添加适当的错误处理
  4. 实施代码审查流程
  5. 考虑添加版本控制机制

工作流

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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。