使用说明
yardmcp
一个可编程服务器,用于使用YARD和FastMCP协议探索和查询Ruby gem文档。
概述
yardmcp 通过FastMCP服务器将Rubygem和YARD文档作为一组可编程工具公开。它使客户能够:
- 使用YARD文档列出已安装的gem
- 探索类、模块和方法
- 获取文档、代码片段和源代码位置
- 跨文档执行模糊/全文搜索
- 反思继承、混合和相关对象
这对于构建文档浏览器、代码助手或将Ruby/YARD文档集成到其他系统中非常有用。
特征
- 列出宝石: 使用YARD文档查看所有已安装的gem
- 构建宝石文档: 为已安装的gem显式构建本地YARD索引
- 列出类/模块: 探索gem中的所有类/模块
- 获取文档: 获取任何类/模块/方法的文档字符串、标签、参数、返回类型等
- 列出孩子: 列出命名空间下的常量、类、模块和方法
- 列出方法: 列出类/模块的所有方法
- 等级制度: 获取继承和包含信息
- 祖先: 获取完整的祖先链
- 相关对象: 查找包含的模块、混入和子类
- 搜索: 所有文档的模糊/全文搜索
- 源位置: 查找任何对象的文件和行号
- 代码段: 获取任何对象的源代码
- MCP资源: 通过以下方式阅读YARD文档和源代码
yard://资源URI
安装
作为一颗宝石
您可以在本地构建和安装gem:
gem build yardmcp.gemspec
gem install yardmcp-0.1.0.gem
这将安装 yardmcp 可在PATH中执行。
用法
运行服务器
服务器被设计为作为一个长期进程运行。 启动可能需要一些时间
因为它为已安装的gem构建了所有YARD文档的索引。在启动期间,
进度和日志(包括 Index built ...)打印到stderr。
客户应该等待 Index built 发送请求前在stderr上发送消息。
启动服务器:
yardmcp
只读查询工具不会构建缺失的YARD索引。如果安装了gem 但还没有本地YARD索引,运行:
yard gems <gemname>
或致电 BuildGemDocsTool 明确地。
工具列表
以下工具可用(使用 tools/list 发现):
- 列表宝石工具
- 构建GemDocsTool
- ListClassesTool
- GetDocTool
- 儿童工具
- 方法列表工具
- 层次结构工具
- 搜索工具
- 源位置工具
- 代码片段工具
- 祖先工具
- 相关对象工具
工具结果返回标准MCP文本内容和机器可读数据
structuredContent.工具执行失败返回 isError: true 没有
本地堆栈跟踪。
所有工具发布 outputSchema 元数据在 tools/list.
面向对象工具的结果包括 resource_uris 当 gem_name 被供应,
因此,客户端可以从工具结果转到相应的文档或
源资源。
资源
服务器公开模板化的MCP资源:
yard://gem/{gem_name}/object/{+path}返回YARD对象的JSON文档。yard://gem/{gem_name}/source/{+path}返回YARD对象的源文本。
示例:
yard://gem/yard/object/YARD::Registry
yard://gem/yard/source/YARD::CodeObjects::Base#name
发展
- 运行测试:测试套件为所有测试启动一个持久服务器进程,并在运行示例之前等待服务器准备就绪。
bundle exec rspec - 代码样式:
bundle exec rubocop - 为宝石重新生成YARD文档:
yard gems <gemname>
需求
- Ruby 3.2+
- 打包机
- 宝石:
fast-mcp,levenshtein,yard,rspec(用于测试)
许可证
MIT许可证。看 许可证 了解详情。