Loom MCP Server

使用说明

  • 项目简介
    • Loom 提供一个基于 Model Context Protocol (MCP) 的服务端实现,用于向 LLM 客户端提供标准化的上下文信息和功能能力。核心包括资源管理(Resources)、工具注册与执行(Tools)、以及提示模板(Prompts)的渲染与管理,并通过 JSON-RPC 与客户端进行通信。服务器端负责会话管理、能力声明,并支持多种传输协议(如标准输出/输入、SSE、WebSocket 等)。
  • 主要功能点
    • 资源管理:提供对资源的创建、读取、绑定、查询等能力,支持多资源源的整合与权限控制。
    • 工具注册与执行:允许注册可供 LLM 调用的工具,并在需要时执行工具,返回结果并可追踪执行状态。
    • 提示模板定义与渲染:支持为不同任务定义并渲染多段提示内容,确保与模型的交互具备可控性和可扩展性。
    • JSON-RPC 通信:通过标准的 JSON-RPC 协议与 MCP 客户端通信,接收请求并返回响应。
    • 会话管理与能力声明:维护会话状态、能力集合,并对外暴露服务器能力以供客户端探测。
    • 传输协议扩展:设计支持多种传输层,确保在不同运行环境中都能稳定工作(如 StdIO、SSE、WebSocket 等)。
  • 安装与运行
    • 系统要求:Python 3.11+(仓库使用 Python 实现,需满足相关依赖)。
    • 获取源代码:从 GitHub 克隆仓库后进入项目根目录。
    • 安装依赖:在虚拟环境中执行 pip install -e "." 完成本地安装。
    • 启动 MCP 服务器(示例命令,实际可根据你的运行环境调整):
      • 通过 Loom 的命令行启动 MCP 服务器:uv run loom mcp-serve
      • 这会启动一个 MCP 服务实例,按照仓库实现提供的传输通道与 MCP API 约定对外暴露。
    • 运行测试与验证:仓库中包含大量测试用例,可通过 pytest 运行以验证 MCP 服务端功能的完整性和健壮性。
  • 服务器配置(给 MCP 客户端的连接信息,JSON 格式,客户端不需要代码)
    • server_name: loom-mcp
    • command: uv
    • args: ["run", "loom", "mcp-serve"]
    • 说明:以上信息用于 MCP 客户端知晓如何启动并连接到 MCP 服务器。在实际生产环境中,你可以将服务器启动命令写入一个配置中心或部署脚本,客户端将读取该配置信息以建立连接。
    • 备注:仓库中也提供了在本地工作区和用户全局目录中维护 MCP 服务器配置信息的示例,实际使用时请参照 Loom 文档中的 MCP 配置章节进行组织与注册。
  • 基本使用方法(操作流程)
    1. 启动 MCP 服务器
      • 运行命令:uv run loom mcp-serve
      • 服务启动后,服务器将对外暴露 MCP API,供 LLM 客户端查询资源、调用工具以及获取 Prompt。
    2. 注册与管理 MCP 服务器
      • 使用工具的管理命令,将远程/本地服务器注册到 MCP 配置中(如 notion、数据库等资源服务器)。
      • 服务器启动后,客户端即可通过 MCP 访问工具、读取资源及获取提示模板等能力。
    3. 客户端使用 MCP 服务
      • 客户端通过 JSON-RPC 请求向 MCP 服务器发起读取资源、执行工具、获取 Prompt 等操作,服务器返回标准化的 JSON-RPC 响应。
      • 服务器支持会话管理和能力声明,客户端在会话中可动态感知可用的资源与工具。
    4. 安全与扩展
      • 配置中可开启鉴权与多模态资源的访问控制,确保对敏感数据的访问合规。
      • 服务端设计为可扩展,便于后续增加新的资源类型、工具组或提示模板。
  • 重要注意事项
    • MCP 客户端需要的只是服务器的启动命令与访问端点信息;具体 API 细节与请求格式由 MCP 规范定义,服务器端遵循该规范实现。
    • 如需在自定义环境中部署,务必配置正确的网络与权限设置,确保客户端能稳定访问 MCP 服务。

服务器信息