使用说明

项目简介

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 的路由、配置和生成器等功能。

安装步骤

  1. 添加到 Gemfile: 在您的 Rails 应用的 'Gemfile' 中添加 ActionMCP gem:
    gem 'actionmcp'
  2. 运行 bundle install: 在终端中执行 'bundle install' 命令来安装 gem。
    bundle install
  3. 挂载 Engine: 在 'config/routes.rb' 文件中挂载 ActionMCP Engine,例如:
    Rails.application.routes.draw do
      mount ActionMCP::Engine => "/action_mcp"
    end
  4. 运行安装生成器 (可选): 运行安装生成器来创建基础的 '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' 或您的域名)。

基本使用方法

  1. 创建 Prompt: 使用生成器创建 Prompt 类,例如创建一个名为 'AnalyzeCodePrompt' 的 Prompt:

    bin/rails generate action_mcp:prompt AnalyzeCode

    编辑 'app/prompts/analyze_code_prompt.rb' 文件,定义 Prompt 的逻辑、参数和验证规则。

  2. 创建 Tool: 使用生成器创建 Tool 类,例如创建一个名为 'CalculateSumTool' 的 Tool:

    bin/rails generate action_mcp:tool CalculateSum

    编辑 'app/tools/calculate_sum_tool.rb' 文件,定义 Tool 的逻辑、属性和执行代码。

  3. 启动 Rails 服务器: 在终端中启动您的 Rails 服务器:

    bin/rails server
  4. 使用 MCP 客户端连接: 配置 MCP 客户端,使用上述 服务器配置 中的信息连接到您的 Rails 服务器。客户端可以通过 SSE 协议与服务器通信,请求 Prompt 和调用 Tool。

  5. 测试: 您可以使用 MCP Inspector 工具 ( 'npx @modelcontextprotocol/inspector' ) 来测试您的 ActionMCP 服务器,默认路径为 'http://localhost:3000/action_mcp'。

注意: ActionMCP 本身只是一个框架,您需要在 Rails 应用中 具体实现 Prompt 和 Tool 的业务逻辑,以及可能的 Resource 管理。ActionMCP 提供了基础设施,让您能够更方便地构建符合 MCP 协议的服务。

信息

分类

开发者工具