README
🚀 行动 MCP 示例
这是一个简单的 Ruby on Rails 应用程序,用于展示如何集成和使用 ActionMCP gem。该 gem 的源代码可在 GitHub 上查看:https://github.com/seuros/action_mcp。此应用程序展示了如何在 Rails 项目中定义和使用 MCP 组件。
🚀 快速开始
需求
- Ruby(请参见
.ruby-version获取推荐版本) - PostgreSQL(或 Docker)
入门步骤
1. 克隆和设置
git clone https://github.com/seuros/mcp_rails_template.git
cd mcp_rails_template
bin/setup
2. 环境配置
复制提供的 .env.example 文件:
cp .env.example .env
编辑 .env 并填写必要的值(特别是 fetch_weather_by_location_tool 等工具所需的任何 API 密钥)。
3. 数据库设置
你可以使用 Docker 快速启动一个临时 PostgreSQL 实例:
make up
这将在端口 5466 上启动 PostgreSQL。或者通过编辑 config/database.yml 配置自己的 PostgreSQL 数据库。
4. 运行应用程序
启动 Rails 服务器:
bin/rails s
应用程序将可以在 http://localhost:3002 访问。
✨ 主要特性
ActionMCP 引擎
ActionMCP 引擎挂载在 /action_mcp。你可以通过修改路由将其挂载到自定义位置。
MCP 组件(app/mcp/)
此应用程序包含多个 ActionMCP 组件示例:
提示(app/mcp/prompts/)
epic_adventure_prompt.rb:根据提供的英雄名称和冒险类型(奇幻、科幻、悬疑)生成一段简短的叙述性冒险故事。它可选地包括一个占位符图像数据字符串。
资源模板(app/mcp/resource_templates/)
gemfile_template.rb:提供项目 Gemfile 依赖项作为 JSON 资源访问。它使用 Bundler 根据指定的环境(production、test、development或default)获取 gems。资源 URI 遵循模式gemfile://{environment}。
工具(app/mcp/tools/)
工具定义语言模型可以请求执行的具体操作。
dependency_info_tool.rb:使用 Bundler 从 Gemfile 和 Gemfile.lock 检索依赖信息。它还检查是否存在.gemspec文件以获取运行时依赖项。它输出production、test和runtime依赖项的单独 JSON 资源。fetch_weather_by_location_tool.rb:从 Open - Meteo API(https://api.open-meteo.com)获取指定纬度和经度坐标的位置天气预报数据。它返回 API 的原始 JSON 响应。rubocop_tool.rb:使用 RuboCop gem 的 API 分析提供的 Ruby 代码段。它报告检测到的任何样式或代码质量违规,包括规则名称、消息、行号和列号。ruby_code_analyzer_tool.rb:对项目目录中的 Ruby 代码执行基本静态分析。它通过解析.rb文件来索引类、模块和方法。它可以查询列出所有找到的类、模块或方法,或者获取特定类/模块(constant)或方法(method_details)的详细信息。
💻 使用示例
基础用法
要交互式地测试和检查 MCP 功能,可以使用 MCP 检查器:
npx @modelcontextprotocol/inspector --url http://localhost:3002/action_mcp
确保 Rails 服务器(bin/rails s)正在运行后再执行检查器命令。
📄 许可证
文档中未提及许可证相关信息。
此项目展示了如何利用 ActionMCP 在 Ruby on Rails 中实现强大的组件化和可扩展性。无论是提示生成、依赖管理还是代码分析,ActionMCP 都能为你的开发流程增添巨大价值。如果你有任何改进建议,欢迎在 GitHub 上提交问题或拉取请求。
微信扫一扫