IronCurtain MCP 服务器框架

使用说明(简要)

  • 项目简介

    • IronCurtain 是一个面向大语言模型的后端框架,围绕 Model Context Protocol(MCP)构建,核心职责是以标准化方式向 LLM 客户端提供上下文信息和功能。它托管和管理资源,注册并执行工具,定义与渲染 Prompt 模板,并通过 JSON-RPC 与客户端通信。服务器端负责会话管理、能力声明,并对工具调用进行策略化控制与审计。
  • 主要功能点

    • 资源与数据访问:提供对资源的托管、读取、写入以及沙箱中的路径管理等能力。
    • 工具注册与执行:注册外部工具并通过 MCP 请求执行,支持策略化的读/写/执行权限控制。
    • Prompt 模板与渲染:将 Constitution/策略转换成可渲染的系统提示,支持动态列表、手写情景等扩展。
    • JSON-RPC 通信:客户端通过标准的 JSON-RPC 进行请求(读取资源、调用工具、获取 Prompts 等)并获得响应。
    • 会话与能力管理:会话层的预算、审计、自动审批、Escalation 流程等,确保安全、可控的交互。
    • 多传输协议支持:系统设计支持多种传输模式,包含标准输入输出、SSE、WebSocket 等,以适配不同部署场景。
    • 内置 MCP 服务:内置并配置了 filesystem、git、fetch、GitHub 等服务,作为 MCP 服务端示例与实际演进基线。
  • 安装与运行

    • 通过仓库提供的构建/安装流程获取依赖并编译。
    • 根据需要选择内置 MCP 服务器或自定义添加新的 MCP 服务器。
    • 启动后,客户端按 MCP 协议通过 JSON-RPC 与服务器对接,发起资源读取、工具调用、Prompt 获取等请求。
  • 服务器配置(对 MCP 客户端的注释用法,非代码示例)

    • MCP 服务器配置是面向 MCP 客户端的启动信息,包含服务器名称、启动命令及参数等,用于与 MCP 服务器建立连接。下面描述的 JSON 配置用于 MCP 客户端在连接 MCP 服务器时需要的关键信息,客户端无需执行任何服务器端的实现细节。实际项目中,服务器端的具体命令和参数由该配置文件定义,MCP 客户端只需要知道服务器名称、启动命令和参数即可发出 MCP 请求。
    • 内置示例配置要点(按服务器名称列出,均包含 server name、command、args、可选 sandbox 等字段):
      • filesystem 服务
        • server 名称:filesystem
        • 启动命令:npx
        • 启动参数:"-y", "@modelcontextprotocol/server-filesystem", "<sandboxDir>"
        • 沙箱隔离:通常设为 false(按项目实现,具体以实际部署为准)
      • git 服务
        • server 名称:git
        • 启动命令:npx
        • 启动参数:"-y", "@modelcontextprotocol/server-git", "<sandboxDir>"
        • 沙箱隔离:可配置
      • fetch 服务
        • server 名称:fetch
        • 启动命令:npx
        • 启动参数:"-y", "@modelcontextprotocol/server-fetch", "<sandboxDir>"
        • 沙箱隔离:可配置
      • GitHub 服务
        • server 名称:github
        • 启动命令:npx
        • 启动参数:"-y", "@modelcontextprotocol/server-github-mcp", "<sandboxDir>"
        • 沙箱隔离:可配置
    • 注:具体的 server 列表、描述、命令及参数会在仓库的配置文件中定义,例如 src/config/mcp-servers.json,MCP 客户端在启动时应读取该配置以建立与服务器的连接。
  • 基本使用方法(简化流程)

    • 部署阶段:将内置的 MCP 服务器配置写入配置文件,或使用仓库提供的启动脚本启动 MCP 服务器。
    • 运行阶段:通过 MCP 客户端与服务器建立连接,向服务器发出资源读取、工具调用、Prompts 获取等请求,服务器返回标准的 JSON-RPC 响应。
    • 安全与审计:系统在工具调用前会应用策略引擎进行评估,必要时触发 Escalation 流程,所有请求与决策结果都被审计记录,便于追踪与回溯。
    • 扩展性:可扩展添加新的 MCP 服务器,依据 Constitution 与编译管线生成新的规则,运行编译/验证/修复流程,确保策略一致性。
  • 服务器配置(MCP 客户端视角的示例说明)

    • MCP 客户端需要的核心信息包括:
      • 服务器名称(serverName):例如 filesystem、git、fetch、github。
      • 启动命令(command):如 npx。
      • 启动参数(args):如 -y、@modelcontextprotocol/server-filesystem、<sandboxDir>,用于指定要托管的沙箱目录等。
    • 以上信息用于 MCP 客户端在本地或远端启动并连接到 MCP 服务器,确保客户端能够通过 MCP 协议发送请求并接收响应。
  • 关键词

    • Model Context Protocol, 资源管理, 工具执行, Prompts 渲染, JSON-RPC
  • 分类

    • 6

服务器信息