使用说明(Markdown格式)

概述

本仓库实现了一个符合 MCP 协议的后端服务器,用于向 LLM 客户端提供上下文信息与功能。核心能力包括:

  • 托管和管理 资源 (Resources),提供数据访问能力
  • 注册和执行 Tools(工具),允许外部功能调用
  • 定义和渲染 Prompt 模板,支持多种交互模式
  • 通过 JSON-RPC 与客户端通信,支持命名工具的注册、执行以及工具调用的审批流程
  • 提供多传输协议支持(标准输入输出、流式 HTTP、SSE 等),并具备会话管理和沙箱等安全能力

主要功能点

  • MCP 服务器核心实现:完整处理 MCP 请求、工具注册、执行、错误处理及结果返回
  • 工具服务器集成:通过 ToolServer 提供对 MCP 服务的调用,并在需要时进行工具调用审批
  • 内嵌 IPython 内核执行:KernelGateway 与 KernelClient 实现代码执行、状态持久化、输出处理和图片生成
  • 账户与会话管理:支持多客户端并发、执行超时、输出截断、以及环境变量注入
  • 安全沙箱支持:可选开启 sandbox 模式以限制网络访问,提升执行安全性
  • MCP 客户端辅助:提供自动化的 MCP 客户端配置与工具调用封装

安装步骤

  • 准备环境:需要 Python 3.8+ 环境
  • 安装依赖:通过 pip 安装 ipybox 及其依赖(仓库中包含实现代码,无需额外步骤即可使用)
  • 运行 MCP 服务器: 方式一(模块运行,推荐): python -m ipybox.mcp_server --workspace <工作目录> --log-level INFO 方式二(直接脚本运行,若已知绝对路径): python <工作目录>/mcp_server.py --workspace <工作目录> --log-level INFO

服务器配置(MCP 客户端需要的最小连接信息)

以下 JSON 使用示例展示了集成 MCP 服务器所需的最小字段。MCP 客户端需要提供 server_name、command、args 等信息来启动 MCP 服务器(具体字段说明如下)。

{ "server_name": "test_mcp_server", "server_params": { "command": "python", "args": ["-m", "ipybox.mcp_server", "--workspace", "/path/to/workspace", "--log-level", "INFO"] } }

说明:

  • server_name: 您将要注册的 MCP 服务器的标识名称,用于在客户端代码中引用。
  • server_params: 启动 MCP 服务器的参数集合
    • command: 启动命令(通常为 python)
    • args: 启动参数,可包含 -m ipybox.mcp_server、--workspace、--log-level 等 这份配置用于 MCP 客户端与 MCP 服务器建立连接时的参数注入,不同实现场景可以将 workspace 指向实际工作目录,log-level 选择合适的日志详细程度。

基本使用方法

  • 生成工具 API(可选): 使用仓库中的生成器将 MCP 服务器的工具暴露为 Python API,便于在本地代码中直调用
  • 调用工具前置条件: MCP 服务器必须正在运行,且客户端正确配置 server_name、command、args 以启动服务器
  • 代码执行与审批流程:
    • 使用 CodeExecutor/ToolServer 等组件实现对 MCP 工具的调用
    • 当工具调用发生时,如需要审批,将通过 ApprovalChannel/ApprovalClient 进行交互,用户需要做出接受或拒绝
  • 安全性与稳定性:可开启 Sandbox 模式以限制网络访问,必要时配置自定义沙箱策略

运行示例(高层描述)

  • 启动 MCP 服务器: 使用模块方式运行:python -m ipybox.mcp_server --workspace /path/to/workspace --log-level WARNING
  • 通过 MCP 客户端连接: server_params 示例如上配置,将 server_name 指向已注册的 MCP 服务器名称,便可调用 tool_1、tool_2、tool_3 等工具
  • 生成并使用工具 API(可选): 使用 generate_mcp_sources 将 MCP 服务转为本地可导入的 Python 包,便于在代码中直接调用
  • 调用工具时如需审批,将自动向已连接的审批端发送请求,由用户决定是否执行

关键特性与注意事项

  • 支持多种传输协议(stdio、流式 HTTP、SSE)以及多进程/会话模型
  • 提供自动化的工具注册、源码生成与导入能力
  • 内置的 IPython 内核执行环境,含状态持久化、错误堆栈信息和图片输出
  • 安全特性:可开启沙箱模式、环境变量隔离、审批机制

适用场景

  • AI 代理/助手需调用外部工具以获取信息、执行任务
  • 需要将 MCP 服务暴露为可编程 API 的软件系统
  • 需要在本地环境中搭建可审计、受控的工具调用后端

关键词

工具调用框架, IPython 内核执行, 沙箱执行, 远程工具调用, 容器化执行

分类ID

6

信息

分类

AI与计算