Claude Agent Ruby MCP Server

使用说明(简要、易操作的要点如下)

  • 项目简介

    • 该仓库实现了一个基于 MCP 的服务器端组件,允许在同一进程中定义工具(Tools)、资源(Resources)和提示(Prompts),并通过 MCP 协议对外暴露 JSON-RPC 风格的接口,供 MCP 客户端调用。
  • 主要功能点

    • 在进程内实现 MCP 服务器:通过 Ruby 代码直接托管工具、资源和提示,无需外部子进程。
    • 动态定义能力:支持通过提供工具、资源、提示定义,动态生成对应的 MCP 服务端实现。
    • 支持多种 MCP 交互:能够处理工具调用、资源读取、提示获取等常见请求,以及工具权限回调与钩子机制等扩展能力。
    • 与 Claude AgentSDK 的紧密集成:SDK 提供工具创建、资源创建、提示创建等便捷 API,暴露给 MCP 客户端使用。
    • JSON-RPC 风格的通信:通过 MCP 协议的请求/响应格式进行通信与能力协商。
  • 安装步骤

    • 安装 Ruby 环境(3.0+ 及以上版本,建议 3.2+)。
    • 安装 Bundler 和依赖项(在项目根目录执行 bundler 安装)。
    • 将 require 依赖引入到你的应用中,即可在 Ruby 应用中创建并启动一个 MCP 服务器实例。
  • 服务器配置(MCP 客户端所需的最小信息) 说明:该 MCP 服务器是内嵌在应用中的进程服务器,因此没有独立的启动命令。下方给出客户端需要的配置示例说明,便于在客户端接入时设置参数。实际连接时请使用本地/内嵌实例方式在应用中暴露服务器对象。

    • server name: internal-tools
    • command: null
    • args: []
    • notes: 该服务器在宿主应用内以对象方式运行,不需要外部命令启动。若客户端要求外部启动形式,可使用 SDK 提供的 SDK-MCP 服务器封装或将服务器对象暴露给客户端并以 SDK 模式接入。

    具体示例(JSON 结构说明,用于 MCP 客户端的配置说明,不是代码片段): { "serverName": "internal-tools", "command": null, "args": [], "notes": "This MCP server runs in-process inside the host Ruby application; no separate command is required to start it." }

  • 基本使用方法

      1. 在你的 Ruby 应用中创建 MCP 服务器实例
      • 使用 ClaudeAgentSDK.create_tool、ClaudeAgentSDK.create_resource、ClaudeAgentSDK.create_prompt 等 API 定义工具、资源与提示。
      • 将这些定义注入一个 SDK MCP 服务器实例,通过 ClaudeAgentSDK.create_sdk_mcp_server(...) 获取服务器配置对象。
      1. 将服务器注册到客户端配置中
      • 将服务器配置放入 ClaudeAgentSDK::ClaudeAgentOptions 的 mcp_servers 字段,例如 { calc: { type: 'sdk', instance: server } }。
      1. 启动客户端并建立连接
      • 使用 ClaudeAgentSDK::Client,调用 connect、query、receive_response 等方法进行交互,MCP 服务器将响应工具调用、资源读取和提示请求等。
      1. 运行与调试
      • 通过单元测试(如 spec/unit/sdk_mcp_server_spec.rb)了解工具、资源、提示的封装与行为。
      • 结合 README 中的示例,按需创建工具、资源、提示,并在应用中测试完整的 MCP 请求/响应流程。
  • 使用场景与优势

    • 在同一应用进程内直接提供 MCP 能力,替代外部 MCP 服务器进程,提升性能与可调试性。
    • 支持自定义工具、资源、提示的组合,适合构建定制化的 LLM 上下文服务。
    • 与 Claude Agent SDK 深度集成,便于实现工具调用、资源读取、提示渲染等能力。

服务器信息