项目简介

'yardmcp' 是一个基于 Model Context Protocol (MCP) 的服务器,专门用于暴露 Ruby Gem 及其 YARD 文档为一系列可编程工具。它允许 LLM 客户端或其他应用程序以标准化的方式查询、浏览和搜索 Ruby 项目的文档、代码片段、继承关系等信息。这对于构建智能文档浏览器、代码助手或将 Ruby 文档集成到其他系统中非常有用。

主要功能点

  • 列出 Gem: 查看所有已安装且拥有 YARD 文档的 Ruby Gem。
  • 浏览类和模块: 探索特定 Gem 中的所有类和模块。
  • 获取文档: 获取任何类、模块或方法的详细文档字符串、标签、参数、返回类型等元数据。
  • 列出子对象: 列出命名空间(如类或模块)下的常量、嵌套类、模块和方法。
  • 列出方法: 获取特定类或模块的所有方法列表。
  • 继承与包含: 获取类或模块的继承链、包含的模块和混入(Mixin)信息。
  • 祖先链: 获取完整的祖先链(父类和包含的模块)。
  • 相关对象: 查找包含的模块、混入以及子类。
  • 模糊/全文搜索: 在所有文档中执行模糊或全文搜索,查找匹配的对象路径或文档内容。
  • 源文件位置: 获取任何对象的源文件路径和行号。
  • 代码片段: 获取任何对象的源代码片段。

安装步骤

  1. 准备环境: 确保您已安装 Ruby 3.2+ 和 Bundler。
  2. 构建并安装 Gem: 在项目根目录下执行以下命令来构建并安装 'yardmcp' Gem:
    gem build yardmcp.gemspec
    gem install yardmcp-0.1.0.gem
    这会将 'yardmcp' 可执行文件安装到您的系统 PATH 中。

服务器配置(供MCP客户端使用)

为了让您的 MCP 客户端能够连接并使用 'yardmcp' 服务器,您需要提供以下启动信息。以下是一个配置示例,您可以根据客户端的配置格式进行调整:

  • 'name': 服务器的名称,建议为 "Ruby Gem文档MCP服务器" 或 "yardmcp"。
  • 'command': 启动服务器的命令,即 'yardmcp'。
  • 'args': 启动命令的参数列表,本服务器标准启动没有额外参数,所以为空数组 '[]'。
  • 'description': 对服务器功能的简要描述。
  • 'notes': 重要的使用提示,例如首次启动时会构建索引,需要等待服务器就绪。
{
  "name": "Ruby Gem文档MCP服务器",
  "command": "yardmcp",
  "args": [],
  "description": "提供Ruby Gem的YARD文档查询和探索功能。",
  "notes": "服务器启动时会构建YARD文档索引,首次启动可能耗时较长。客户端应等待服务器在stderr输出“Index built”消息后发送请求。"
}

基本使用方法

  1. 启动服务器: 打开终端,运行 'yardmcp' 命令。

    yardmcp

    服务器启动时会索引已安装 Gem 的 YARD 文档,这个过程可能需要一些时间。请等待服务器在标准错误输出(stderr)中显示 'Index built ...' 消息,这表示服务器已准备好接收请求。

  2. 通过MCP客户端交互: 一旦服务器启动并准备就绪,您的 MCP 客户端就可以通过 JSON-RPC 协议与其通信。

    • 列出可用工具: 客户端可以调用 'tools/list' 方法来发现所有可用的工具,例如 'ListGemsTool', 'GetDocTool', 'SearchTool' 等。
    • 调用工具: 客户端可以调用 'tools/call' 方法,并指定工具名称及相应的参数来执行特定功能。
      • 例如,调用 'ListGemsTool' 来获取所有具有 YARD 文档的 Gem 列表。
      • 调用 'GetDocTool' 并提供一个 YARD 路径(如 ''String#upcase'')来获取详细的文档信息。
      • 调用 'SearchTool' 并提供一个查询字符串(如 ''Registry'')来搜索相关的文档对象。

    具体每个工具的参数和返回值格式,请参考 'lib/yardmcp.rb' 源代码中的定义,或通过客户端查询工具的元数据(如果客户端支持)。

信息

分类

开发者工具