rubygems_mcp
Rubygem通过MCP(模型上下文协议)服务器工具提供RubyGems和Ruby版本信息。与MCP兼容的客户端集成,如Cursor IDE、Claude Desktop和其他启用MCP的工具。
此gem访问公共RubyGems和Ruby版本信息,不需要身份验证。
赞助 好吧。.
需求
- Ruby 3.1或更高版本 (不支持Ruby 3.0及更早版本)
快速开始
gem install rubygems_mcp光标IDE配置
对于Cursor IDE,创建或更新 .cursor/mcp.json 在您的项目中:
{
"mcpServers": {
"rubygems": {
"command": "gem",
"args": ["exec", "rubygems_mcp"],
"env": {
"RUBY_VERSION": "3.4.7"
}
}
}
}Claude桌面配置
对于Claude Desktop,编辑MCP配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"rubygems": {
"command": "gem",
"args": ["exec", "rubygems_mcp"],
"env": {
"RUBY_VERSION": "3.4.7"
}
}
}
}备注:更新配置后,重新启动Claude Desktop以使更改生效。
MCP检验员测试
您可以使用以下工具测试MCP服务器 MCP检查员 工具:
# Run the MCP inspector with the server
npx @modelcontextprotocol/inspector bundle exec rubygems_mcp检查员将:
- 启动代理服务器并打开浏览器界面
- 通过STDIO连接到MCP服务器
- 允许您以交互方式测试所有可用工具
- 显示请求/响应消息和任何错误
这有助于:
- 在与MCP客户端集成之前测试工具功能
- 调试MCP协议通信
- 探索可用工具及其参数
手动运行MCP服务器
安装后,您可以立即启动MCP服务器:
# With bundler
gem install rubygems_mcp && bundle exec rubygems_mcp
# Or if installed globally
rubygems_mcp服务器将使用MCP协议通过STDIN/STDOUT启动和通信。
特性
- RubyGems API客户端:RubyGems REST API的全功能客户端,具有全面的端点覆盖
- Ruby版本信息:从Ruby-lang.org获取Ruby发布信息、变更日志和维护状态
- MCP服务器集成:即用型MCP服务器,配备19个工具和4个资源,与Cursor IDE、Claude Desktop和其他启用MCP的工具兼容
- 分页和排序:支持具有可自定义分页和排序选项的大型结果集
- 缓存:具有可配置TTL的内存缓存,可提高性能
- 错误处理:使用自定义异常和响应大小限制进行优雅的错误处理
- 不要求进行验证:所有终结点都是公共的,不需要API密钥
- API全面覆盖:支持gem版本、最新版本、Ruby版本、gem搜索、gem信息、反向依赖关系、下载统计、更改日志等
基本用法
API客户端
require "rubygems_mcp"
# Create client
client = RubygemsMcp::Client.new
# Get latest versions for multiple gems
versions = client.get_latest_versions(["rails", "nokogiri", "rack"])
# => [
# { name: "rails", version: "7.1.0", release_date: #, license: "MIT" },
# { name: "nokogiri", version: "1.15.0", release_date: #, license: "MIT" },
# { name: "rack", version: "3.0.0", release_date: #, license: "MIT" }
# ]
# Get all versions for a gem
versions = client.get_gem_versions("rails")
# => [
# { version: "7.1.0", release_date: #, license: "MIT" },
# { version: "7.0.8", release_date: #, license: "MIT" },
# ...
# ]
# Get latest Ruby version
ruby_version = client.get_latest_ruby_version
# => { version: "3.3.0", release_date: # }
# Get all Ruby versions
ruby_versions = client.get_ruby_versions
# => [
# { version: "3.3.0", release_date: # },
# { version: "3.2.0", release_date: # },
# ...
# ]
# Get gem information
gem_info = client.get_gem_info("rails")
# => {
# name: "rails",
# version: "7.1.0",
# summary: "Full-stack web application framework.",
# homepage: "https://rubyonrails.org",
# source_code: "https://github.com/rails/rails",
# documentation: "https://api.rubyonrails.org",
# licenses: ["MIT"],
# authors: ["David Heinemeier Hansson", ...]
# }
# Search for gems
results = client.search_gems("rails")
# => [
# { name: "rails", version: "7.1.0", info: "...", ... },
# { name: "rails_admin", version: "3.0.0", info: "...", ... },
# ...
# ]
# Get reverse dependencies
reverse_deps = client.get_gem_reverse_dependencies("rails")
# => ["rails_admin", "activeadmin", ...]
# Get download statistics
downloads = client.get_gem_version_downloads("rails", "7.1.0")
# => { version_downloads: 123456, total_downloads: 987654321 }
# Get Ruby maintenance status
maintenance = client.get_ruby_maintenance_status
# => [
# { version: "3.4", status: "normal maintenance", release_date: "2024-12-25", ... },
# { version: "3.3", status: "normal maintenance", ... },
# ...
# ]
# Get Ruby version changelog
changelog = client.get_ruby_version_changelog("3.4.7")
# => { version: "3.4.7", summary: "...", release_notes_url: "..." }
# Get latest/recently updated gems
latest = client.get_latest_gems(limit: 10)
recently_updated = client.get_recently_updated_gems(limit: 10)API方法
宝石版本
get_latest_versions(gem_names, fields: nil)-获取包含发布日期和许可证的gem列表的最新版本。支持类似GraphQL的字段选择。get_gem_versions(gem_name, limit: nil, offset: 0, sort: :version_desc, fields: nil)-获取单个gem的所有版本,包括发布日期和许可证,按版本降序排列。支持分页、排序和字段选择。
Ruby版本
get_latest_ruby_version-获取包含发布日期的最新Ruby版本get_ruby_versions(limit: nil, offset: 0, sort: :version_desc)-获取所有Ruby版本,包括发布日期、下载URL和发布说明URL,按版本降序排列。支持分页和排序。get_ruby_version_changelog(version)-通过获取和解析发行说明来获取特定Ruby版本的更新日志摘要get_ruby_version_github_changelog(version)-从Ruby/Ruby存储库获取Ruby版本的GitHub发布变更日志get_ruby_roadmap-从bugs.Ruby-lang.org获取Ruby路线图信息,显示计划版本及其问题get_ruby_version_roadmap_details(version)-从bugs.Ruby-lang.org获取特定Ruby版本的详细路线图信息,包括该版本计划的问题和功能get_ruby_maintenance_status-获取所有Ruby版本的维护状态,包括EOL日期和维护阶段
宝石信息
get_gem_info(gem_name, fields: nil)-获取有关gem的详细信息(摘要、主页、源代码、文档、许可证、作者、依赖关系、下载)。支持类似GraphQL的字段选择。get_gem_version_info(gem_name, version, fields: nil)-使用RubyGems API v2获取特定gem版本的详细信息(特定版本的下载、依赖项、SHA校验和、创建日期、构建日期)。支持类似GraphQL的字段选择。get_gem_reverse_dependencies(gem_name)-获取反向依赖关系-依赖于指定gem的gem列表get_gem_version_downloads(gem_name, version)-获取特定gem版本的下载统计信息get_gem_changelog(gem_name, version: nil)-通过从gem的changelog_uri中获取和解析changelog来获取其changelog摘要search_gems(query, limit: nil, offset: 0)-在RubyGems上按名称搜索宝石。支持分页。
宝石发现
get_latest_gems(limit: 30)-获取最新宝石-最近添加到RubyGems.org的宝石get_recently_updated_gems(limit: 30)-获取最近更新的gem-最近更新的gem版本get_news_releases(page: 1)-从RubyGems.org获取新闻发布-所有新的gem发布都有分页(从获取/news?page=N)get_popular_releases(page: 1)-获取热门版本-来自RubyGems.org的带有分页的热门新gem版本(从获取/releases/popular?page=N)
MCP服务器集成
此gem包括一个可以直接运行的即用型MCP服务器:
# After installing the gem
bundle exec rubygems_mcp或者,如果全局安装:
gem install rubygems_mcp
rubygems_mcp服务器将使用MCP协议通过STDIN/STDOUT进行通信。在MCP客户端中配置它(例如,Cursor IDE、Claude Desktop或其他启用MCP的工具)。
MCP工具
MCP服务器提供以下工具:
- get_latest_versions -获取包含发布日期和许可证的gem列表的最新版本。支持类似GraphQL的字段选择。
- 参数: gem_names (字符串数组), fields (可选字符串数组)
- get_gem_versions -获取单个gem的所有版本,包括发布日期和许可证,按版本降序排列。支持类似GraphQL的字段选择。
- 参数: gem_name (字符串), limit (可选整数), offset (可选整数), sort (可选字符串:“version_desc”、“version_asc”、”date_desc“、”date_asc“), fields (可选字符串数组)
- get_latest_ruby_version -获取包含发布日期的最新Ruby版本
- 参数:无
- get_ruby_versions -获取所有Ruby版本,包括发布日期、下载URL和发布说明URL,按版本降序排列
- 参数: limit (可选整数), offset (可选整数), sort (可选字符串:“version_desc”、“version_asc”、”date_desc“、”date_asc“)
- get_ruby_version_changelog -通过获取和解析发行说明来获取特定Ruby版本的更新日志摘要
- 参数: version (字符串,例如“3.4.7”)
- get_gem_info -获取有关gem的详细信息(摘要、主页、源代码、文档、许可证、作者、依赖关系、下载)。支持类似GraphQL的字段选择。
- 参数: gem_name (字符串), fields (可选字符串数组)
- get_gem_version_info -使用RubyGems API v2获取特定gem版本的详细信息(特定版本的下载、依赖项、SHA校验和、创建日期、构建日期)。支持类似GraphQL的字段选择。
- 参数: gem_name (字符串), version (字符串,例如“0.1.0”或“1.15.0-x86_64-linux”), fields (可选字符串数组)
- get_gem_reverse_dependencies -获取反向依赖关系-依赖于指定gem的gem列表
- 参数: gem_name (字符串)
- get_gem_version_downloads -获取特定gem版本的下载统计信息
- 参数: gem_name (字符串), version (字符串)
- get_latest_gems -获取最新宝石-最近添加到RubyGems.org的宝石
- 参数:
limit(可选整数,默认值:30,最大值:50)
- get_recenty_updated_gems -获取最近更新的gem-最近更新的gem版本
- 参数:
limit(可选整数,默认值:30,最大值:50)
- get_gem_changelog -通过从gem的changelog_uri中获取和解析changelog来获取其changelog摘要
- 参数:
gem_name(字符串),version(可选字符串,如果没有提供,则使用最新版本)
- 搜索ems -在RubyGems上按名称搜索宝石
- 参数:
query(字符串)
- get_ruby_loadmap -从bugs.Ruby-lang.org获取Ruby路线图信息,显示计划版本及其问题
- 参数:无
- get_ruby_version_roadmap_details -从bugs.Ruby-lang.org获取特定Ruby版本的详细路线图信息,包括该版本计划的问题和功能
- 参数:
version(字符串,例如“3.4”、“4.0”)
- get_ruby_version_github_changelog -从Ruby/Ruby存储库获取Ruby版本的GitHub发布变更日志
- 参数:
version(字符串,例如“3.4.7”、“3.4.0”)
- get_news_releases -从RubyGems.org获取新闻稿-所有新发布的gem都有分页
- 参数:
page(可选整数,默认值:1)-页码(从1开始) - 胎儿来源:
https://rubygems.org/news?page=N
- get_popular_releases -从RubyGems.org获取热门版本-带有分页的热门新gem版本
- 参数:
page(可选整数,默认值:1)-页码(从1开始) - 胎儿来源:
https://rubygems.org/releases/popular?page=N
MCP资源
MCP服务器提供以下资源:
- rubygems://popular -精选的热门Ruby宝石及其最新版本
- 资源名称:“流行红宝石” - MIME类型:application/json
- rubygems://ruby/compatibility -关于Ruby版本兼容性和发布日期的信息
- 资源名称:“Ruby版本兼容性” - MIME类型:application/json
- rubygems://ruby/maintenance -所有Ruby版本的详细维护状态,包括EOL日期和维护阶段
- 资源名称:“Ruby维护状态” - MIME类型:application/json
- rubygems://ruby/latest -最新稳定的Ruby版本及其发布日期
- 资源名称:“最新Ruby版本” - MIME类型:application/json
错误处理
客户端优雅地处理错误:
- 为失败的请求返回空数组
- 为失败的gem信息请求返回空哈希值
- 处理网络错误和JSON解析错误
发展
# Install dependencies
bundle install
# Run tests
bundle exec rspec
# Run tests across multiple Ruby versions
bundle exec appraisal install
bundle exec appraisal rspec
# Run linting
bundle exec standardrb --fix
# Validate RBS type signatures
bundle exec rbs validate贡献
欢迎在GitHub上提交Bug报告和拉取请求,网址为https://github.com/amkisko/rubygems_mcp.rb.
出资政策:
- 新功能不一定添加到gem中
- Pull请求应包含受影响部件的测试范围
- 拉取请求应具有更改日志条目
审查政策:
- 审查和合并关键修复可能需要长达2个日历周的时间
- 审查和合并拉取请求可能需要长达6个日历月的时间
- 审查一个问题可能需要长达1个日历年的时间
有关更多信息,请参见 贡献.md.
安全
如果您发现安全漏洞,请负责任地报告。看 安全.md 了解详情。
许可证
根据以下条款,gem可作为开源软件使用 MIT许可证.
