Ruby文档查询服务器

yardmcp是一个可编程服务器,用于通过YARD和FastMCP协议探索和查询Ruby gem文档,适用于构建文档浏览器、代码助手或集成Ruby/YARD文档到其他系统中。

  • by romanbsd
  • Ruby
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 romanbsd/yardmcp

使用说明

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许可证。看 许可证 了解详情。