使用说明
项目简介
ActionMCP 是一个 Ruby gem,它为开发者提供了一套工具,用于构建兼容 Model Context Protocol (MCP) 的服务器。它作为一个 Rails Engine 嵌入到 Rails 应用中,帮助开发者更轻松地将现有的 Ruby/Rails 应用转变为 MCP 服务器,以便大型语言模型 (LLM) 能够访问应用的数据和功能。
主要功能点
- 资源 (Resources) 管理框架: 虽然仓库本身没有资源管理的具体实现,但为资源的管理和访问提供了框架基础,允许开发者在Rails应用中定义和托管资源,并通过MCP协议暴露给LLM客户端。
- 工具 (Tools) 注册与执行: 提供了定义和注册工具的机制。开发者可以创建 Ruby 类来表示工具,声明工具的名称、描述、输入参数和执行逻辑,从而让LLM客户端能够调用这些工具执行特定任务。
- Prompt 模板 (Prompts) 定义与渲染: 允许开发者定义 Prompt 模板,这些模板可以带有参数和验证规则,支持定制化的LLM交互模式。通过 ActionMCP,开发者可以方便地创建各种Prompt,供LLM客户端请求和使用。
- 基于 JSON-RPC 协议通信: ActionMCP 基于 JSON-RPC 协议与客户端进行通信,处理客户端的请求并返回符合 MCP 规范的响应。
- 支持 SSE 传输协议: 实现了基于 Server-Sent Events (SSE) 的传输协议,用于与 MCP 客户端建立实时的、单向的通信连接。
- Rails Engine 形式集成: 以 Rails Engine 的形式提供,方便集成到现有的 Rails 应用中,并利用 Rails 的路由、配置和生成器等功能。
安装步骤
- 添加到 Gemfile: 在您的 Rails 应用的 'Gemfile' 中添加 ActionMCP gem:
gem 'actionmcp' - 运行 bundle install: 在终端中执行 'bundle install' 命令来安装 gem。
bundle install - 挂载 Engine: 在 'config/routes.rb' 文件中挂载 ActionMCP Engine,例如:
Rails.application.routes.draw do mount ActionMCP::Engine => "/action_mcp" end - 运行安装生成器 (可选): 运行安装生成器来创建基础的 'ApplicationPrompt' 和 'ApplicationTool' 类:
bin/rails generate action_mcp:install
服务器配置
由于 ActionMCP 是一个 Rails Engine,它运行在 Rails 服务器环境中。MCP 客户端需要配置连接到您的 Rails 服务器。以下是一个 MCP 客户端可能的服务器配置示例 (JSON 格式),您需要根据您的 Rails 应用部署情况进行调整:
{ "serverName": "MyActionMCPServer", "command": "bin/rails server", "args": [], "protocol": "sse", "endpoint": "http://localhost:3000/action_mcp/sse" }
配置信息参数注释:
- 'serverName': MCP 服务器的名称,可以自定义。例如 '"MyActionMCPServer"'。
- 'command': Rails 服务器的启动命令。通常为 '"bin/rails server"'。这个命令用于在服务器端启动您的 Rails 应用,ActionMCP 引擎将随之启动。
- 'args': 启动命令的参数,通常为空数组 '[]'。如果需要指定端口或其他 Rails 服务器启动参数,可以在这里配置,例如 '["-p", "3001"]' 指定端口为 3001。
- 'protocol': 使用的 MCP 传输协议,ActionMCP 默认支持 SSE,所以配置为 '"sse"'。
- 'endpoint': SSE 协议的端点 URL。默认情况下,挂载 ActionMCP Engine 后,SSE 端点为 'http://<您的服务器地址>/action_mcp/sse'。请将 '<您的服务器地址>' 替换为您的 Rails 服务器的实际地址 (例如 'localhost:3000' 或您的域名)。
基本使用方法
-
创建 Prompt: 使用生成器创建 Prompt 类,例如创建一个名为 'AnalyzeCodePrompt' 的 Prompt:
bin/rails generate action_mcp:prompt AnalyzeCode编辑 'app/prompts/analyze_code_prompt.rb' 文件,定义 Prompt 的逻辑、参数和验证规则。
-
创建 Tool: 使用生成器创建 Tool 类,例如创建一个名为 'CalculateSumTool' 的 Tool:
bin/rails generate action_mcp:tool CalculateSum编辑 'app/tools/calculate_sum_tool.rb' 文件,定义 Tool 的逻辑、属性和执行代码。
-
启动 Rails 服务器: 在终端中启动您的 Rails 服务器:
bin/rails server -
使用 MCP 客户端连接: 配置 MCP 客户端,使用上述 服务器配置 中的信息连接到您的 Rails 服务器。客户端可以通过 SSE 协议与服务器通信,请求 Prompt 和调用 Tool。
-
测试: 您可以使用 MCP Inspector 工具 ( 'npx @modelcontextprotocol/inspector' ) 来测试您的 ActionMCP 服务器,默认路径为 'http://localhost:3000/action_mcp'。
注意: ActionMCP 本身只是一个框架,您需要在 Rails 应用中 具体实现 Prompt 和 Tool 的业务逻辑,以及可能的 Resource 管理。ActionMCP 提供了基础设施,让您能够更方便地构建符合 MCP 协议的服务。
信息
分类
开发者工具