这是一个 Ruby gem,通过 MCP(模型上下文协议)服务器工具提供 RubyGems 和 Ruby 版本信息。它与兼容 MCP 的客户端如 Cursor IDE、Claude Desktop 和其他 MCP 工具集成。
此 gem 访问公共的 RubyGems 和 Ruby 版本信息,无需身份验证。
赞助商:Kisko Labs。
<a href="https://www.kiskolabs.com"> <img src="kisko.svg" width="200" alt="赞助商:Kisko Labs" /> </a>gem install rubygems_mcp
对于 Cursor IDE,在项目中创建或更新 .cursor/mcp.json 文件:
{
"mcpServers": {
"rubygems": {
"command": "gem",
"args": ["exec", "rubygems_mcp"],
"env": {
"RUBY_VERSION": "3.4.7"
}
}
}
}
注意:使用 gem exec 确保使用正确的 Ruby 版本。如果你使用了 Ruby 版本管理器如 mise 或 rbenv,设置 RUBY_VERSION 环境变量以匹配所需的 Ruby 版本。gem exec 命令会根据你的版本管理器配置自动使用正确的 Ruby 版本。
对于 Claude Desktop,编辑 MCP 配置文件:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"rubygems": {
"command": "gem",
"args": ["exec", "rubygems_mcp"],
"env": {
"RUBY_VERSION": "3.4.7"
}
}
}
}
注意:更新配置后,请重启 Claude Desktop 使更改生效。
你可以使用 MCP Inspector 工具来测试 MCP 服务器:
# 运行 MCP inspector 并连接到服务器
npx @modelcontextprotocol/inspector bundle exec rubygems_mcp
Inspector 将:
这有助于:
安装后,你可以立即启动 MCP 服务器:
# 使用 bundler
gem install rubygems_mcp && bundle exec rubygems_mcp
# 或者全局安装
rubygems_mcp
服务器将启动并通过 STDIN/STDOUT 使用 MCP 协议进行通信。
require "rubygems_mcp"
# 创建客户端
client = RubygemsMcp::Client.new
# 获取多个 gem 的最新版本
versions = client.get_latest_versions(["rails", "nokogiri", "rack"])
# => [
# { name: "rails", version: "7.1.0", release_date: #<Date>, license: "MIT" },
# { name: "nokogiri", version: "1.15.0", release_date: #<Date>, license: "MIT" },
# { name: "rack", version: "3.0.0", release_date: #<Date>, license: "MIT" }
# ]
# 获取单个 gem 的所有版本
versions = client.get_gem_versions("rails")
# => [
# { version: "7.1.0", release_date: #<Date>, license: "MIT" },
# { version: "7.0.8", release_date: #<Date>, license: "MIT" },
# ...
# ]
# 获取最新的 Ruby 版本
ruby_version = client.get_latest_ruby_version
# => { version: "3.3.0", release_date: #<Date> }
# 获取所有 Ruby 版本
ruby_versions = client.get_ruby_versions
# => [
# { version: "3.3.0", release_date: #<Date> },
# { version: "3.2.0", release_date: #<Date> },
# ...
# ]
# 获取 gem 信息
gem_info = client.get_gem_info("rails")
# => {
# name: "rails",
# version: "7.1.0",
# summary: "全栈 Web 应用框架。",
# homepage: "https://rubyonrails.org",
# source_code: "https://github.com/rails/rails",
# documentation: "https://api.rubyonrails.org",
# licenses: ["MIT"],
# authors: ["David Heinemeier Hansson", ...]
# }
# 搜索 gem
results = client.search_gems("rails")
# => [
# { name: "rails", version: "7.1.0", info: "...", ... },
# { name: "rails_admin", version: "3.0.0", info: "...", ... },
# ...
# ]
# 获取反向依赖关系
reverse_deps = client.get_gem_reverse_dependencies("rails")
# => ["rails_admin", "activeadmin", ...]
# 获取下载统计
downloads = client.get_gem_version_downloads("rails", "7.1.0")
# => { version_downloads: 123456, total_downloads: 987654321 }
# 获取 Ruby 维护状态
maintenance = client.get_ruby_maintenance_status
# => [
# { version: "3.4", status: "正常维护", release_date: "2024-12-25", ... },
# { version: "3.3", status: "正常维护", ... },
# ...
# ]
# 获取 Ruby 版本变更日志
changelog = client.get_ruby_version_changelog("3.4.7")
# => { version: "3.4.7", summary: "...", release_notes_url: "..." }
# 获取最新/最近更新的 gem
latest = client.get_latest_gems(limit: 10)
recently_updated = client.get_recently_updated_gems(limit: 10)
get_latest_versions(gem_names, fields: nil) - 获取一组 gem 的最新版本,包括发布日期和许可证。支持类似 GraphQL 的字段选择。get_gem_versions(gem_name, limit: nil, offset: 0, sort: :version_desc, fields: nil) - 获取单个 gem 的所有版本,包括发布日期和许可证,按版本降序排列。支持分页、排序和字段选择。get_latest_ruby_version - 获取最新的 Ruby 版本及其发布日期get_ruby_versions(limit: nil, offset: 0, sort: :version_desc) - 获取所有 Ruby 版本及其发布日期、下载链接和发布说明链接,按版本降序排列。支持分页和排序。get_ruby_version_changelog(version) - 获取特定 Ruby 版本的变更日志摘要,通过抓取和解析发布说明get_ruby_version_github_changelog(version) - 获取 Ruby 版本的 GitHub 发布变更日志,来自 ruby/ruby 仓库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) - 获取特定 gem 版本的详细信息,使用 RubyGems API v2(版本特定的下载量、依赖项、SHA 校验码、创建日期、构建日期)。支持类似 GraphQL 的字段选择。get_gem_reverse_dependencies(gem_name) - 获取反向依赖项 - 列出依赖于指定 gem 的其他 gemget_gem_version_downloads(gem_name, version) - 获取特定 gem 版本的下载统计get_gem_changelog(gem_name, version: nil) - 获取 gem 的变更日志摘要,通过抓取和解析其变更日志 URIsearch_gems(query, limit: nil, offset: 0) - 按名称在 RubyGems 上搜索 gem。支持分页。get_latest_gems(limit: 30) - 获取最新 gem - 最近添加到 RubyGems.org 的 gemget_recently_updated_gems(limit: 30) - 获取最近更新的 gem - 最近更新的 gem 版本此 gem 包含一个可以直接运行的 MCP 服务器:
# 安装 gem 后
bundle exec rubygems_mcp
或者全局安装:
gem install rubygems_mcp
rubygems_mcp
服务器将通过 STDIN/STDOUT 使用 MCP 协议进行通信。在你的 MCP 客户端(例如 Cursor IDE、Claude Desktop 或其他 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 版本及其发布日期、下载链接和发布说明链接,按版本降序排列
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 - 获取特定 gem 版本的详细信息,使用 RubyGems API v2(版本特定的下载量、依赖项、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 - 获取最新 gem - 最近添加到 RubyGems.org 的 gem
limit(可选整数,默认值:30,最大值:50)limit(可选整数,默认值:30,最大值:50)gem_name(字符串),version(可选字符串,未提供时使用最新版本)query(字符串)version(字符串,例如 "3.4"、"4.0")version(字符串,例如 "3.4.7"、"3.4.0")MCP 服务器提供了以下资源:
rubygems://popular - 一份精选的流行 Ruby gem 列表及其最新版本
rubygems://ruby/compatibility - 关于 Ruby 版本兼容性和发布日期的信息
rubygems://ruby/maintenance - 所有 Ruby 版本的详细维护状态,包括 EOL 日期和维护阶段
rubygems://ruby/latest - 最新的稳定 Ruby 版本及其发布日期
客户端优雅地处理错误:
# 安装依赖
bundle install
# 运行测试
bundle exec rspec
# 在多个 Ruby 版本上运行测试
bundle exec appraisal install
bundle exec appraisal rspec
# 运行代码检查
bundle exec standardrb --fix
# 验证 RBS 类型签名
bundle exec rbs validate
欢迎在 GitHub 上提交 bug 报告和拉取请求:https://github.com/amkisko/rubygems_mcp.rb。
贡献政策:
审查政策:
更多详情,请参阅 CONTRIBUTING.md。
如果您发现安全漏洞,请负责任地报告。详情请参阅 SECURITY.md。
此 gem 在 MIT 许可证下作为开源软件提供。