项目简介
'yardmcp' 是一个基于 Model Context Protocol (MCP) 的服务器,专门用于暴露 Ruby Gem 及其 YARD 文档为一系列可编程工具。它允许 LLM 客户端或其他应用程序以标准化的方式查询、浏览和搜索 Ruby 项目的文档、代码片段、继承关系等信息。这对于构建智能文档浏览器、代码助手或将 Ruby 文档集成到其他系统中非常有用。
主要功能点
- 列出 Gem: 查看所有已安装且拥有 YARD 文档的 Ruby Gem。
- 浏览类和模块: 探索特定 Gem 中的所有类和模块。
- 获取文档: 获取任何类、模块或方法的详细文档字符串、标签、参数、返回类型等元数据。
- 列出子对象: 列出命名空间(如类或模块)下的常量、嵌套类、模块和方法。
- 列出方法: 获取特定类或模块的所有方法列表。
- 继承与包含: 获取类或模块的继承链、包含的模块和混入(Mixin)信息。
- 祖先链: 获取完整的祖先链(父类和包含的模块)。
- 相关对象: 查找包含的模块、混入以及子类。
- 模糊/全文搜索: 在所有文档中执行模糊或全文搜索,查找匹配的对象路径或文档内容。
- 源文件位置: 获取任何对象的源文件路径和行号。
- 代码片段: 获取任何对象的源代码片段。
安装步骤
- 准备环境: 确保您已安装 Ruby 3.2+ 和 Bundler。
- 构建并安装 Gem:
在项目根目录下执行以下命令来构建并安装 'yardmcp' Gem:
这会将 'yardmcp' 可执行文件安装到您的系统 PATH 中。gem build yardmcp.gemspec gem install yardmcp-0.1.0.gem
服务器配置(供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”消息后发送请求。" }
基本使用方法
-
启动服务器: 打开终端,运行 'yardmcp' 命令。
yardmcp服务器启动时会索引已安装 Gem 的 YARD 文档,这个过程可能需要一些时间。请等待服务器在标准错误输出(stderr)中显示 'Index built ...' 消息,这表示服务器已准备好接收请求。
-
通过MCP客户端交互: 一旦服务器启动并准备就绪,您的 MCP 客户端就可以通过 JSON-RPC 协议与其通信。
- 列出可用工具: 客户端可以调用 'tools/list' 方法来发现所有可用的工具,例如 'ListGemsTool', 'GetDocTool', 'SearchTool' 等。
- 调用工具: 客户端可以调用 'tools/call' 方法,并指定工具名称及相应的参数来执行特定功能。
- 例如,调用 'ListGemsTool' 来获取所有具有 YARD 文档的 Gem 列表。
- 调用 'GetDocTool' 并提供一个 YARD 路径(如 ''String#upcase'')来获取详细的文档信息。
- 调用 'SearchTool' 并提供一个查询字符串(如 ''Registry'')来搜索相关的文档对象。
具体每个工具的参数和返回值格式,请参考 'lib/yardmcp.rb' 源代码中的定义,或通过客户端查询工具的元数据(如果客户端支持)。
信息
分类
开发者工具