使用说明

项目简介

ActiveMCP 是一个 Ruby on Rails 引擎,它使得开发者能够轻松地在 Rails 应用程序中构建和部署 MCP (Model Context Protocol) 服务器。通过 ActiveMCP,您可以将 Rails 应用的功能以标准化的 MCP 协议暴露出来,供 LLM (大型语言模型) 客户端调用,从而实现强大的上下文信息和功能扩展。

主要功能点

  • 资源管理 (Resources): 虽然仓库代码中 'resources' 功能的实现较为基础(仅有空列表返回),但框架已预留资源管理接口,未来可扩展以支持托管和管理各种资源。
  • 工具注册和执行 (Tools): 核心功能,允许在 Rails 应用中轻松注册和定义工具 (Tools),并通过 MCP 协议供 LLM 客户端远程调用。支持定义工具的输入参数、描述和授权逻辑。
  • Prompt 模板 (Prompts): 仓库当前版本未明确实现 Prompt 模板功能,但 MCP 协议已支持,未来版本可能扩展。
  • JSON-RPC 协议: 完全支持 MCP 协议要求的 JSON-RPC 通信协议,用于客户端和服务器之间的请求和响应。
  • Stdio 传输协议: 默认支持 Stdio (标准输入输出) 传输协议,方便本地开发和部署。
  • 会话管理和能力声明: 服务器端负责会话初始化和管理,并声明自身提供的能力 (Resources, Tools)。
  • 认证与授权: 支持工具级别的认证和授权,可以控制哪些工具可以被哪些客户端或用户访问。支持 Bearer Token 和 Basic Auth 两种认证方式。

安装步骤

  1. 添加到 Gemfile: 在您的 Rails 应用的 'Gemfile' 中添加 'active_mcp' gem:

    gem 'active_mcp'
  2. 安装 Gem: 运行 'bundle install' 或 'gem install active_mcp' 安装 gem。

  3. 挂载 Engine: 在 'config/routes.rb' 文件中挂载 ActiveMcp 引擎,例如:

    Rails.application.routes.draw do
      mount ActiveMcp::Engine, at: "/mcp"
      # ... 您的其他路由
    end
  4. 创建工具 (Tool): 在 'app/tools' 目录下创建 Ruby 文件 (例如 'app/tools/my_tool.rb'),并继承 'ActiveMcp::Tool' 定义您的工具。例如:

    class MyToolTool < ActiveMcp::Tool
      description "我的示例工具"
    
      property :input_text, :string, required: true, description: "要处理的文本"
    
      def call(input_text:, auth_info: nil)
        "工具收到的文本是: #{input_text}"
      end
    end
  5. 启动 MCP 服务器: 创建一个 Ruby 脚本 (例如 'server.rb') 用于启动 ActiveMCP 服务器,并配置服务器名称和 URI。例如:

    # server.rb
    require_relative './config/environment' # 确保加载 Rails 环境
    
    server = ActiveMcp::Server.new(
      name: "My ActiveMCP Server",
      uri: 'http://localhost:3000/mcp' # 您的 Rails 应用的 MCP 接口地址
    )
    server.start

    注意: 'require_relative './config/environment'' 用于在独立脚本中加载 Rails 环境,确保 ActiveMCP 引擎和您的 Rails 应用能够正常运行。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是一个典型的 JSON 格式配置示例,适用于 ActiveMCP 服务器:

{
  "mcpServers": {
    "active-mcp-server": {
      "command": "ruby",
      "args": ["/path/to/your/rails/app/server.rb"]
      // command: 启动 MCP 服务器的命令,通常是 Ruby 解释器。
      // args:   启动命令的参数,指向您的 server.rb 脚本的路径。请替换为实际路径。
    }
  }
}

请根据您的实际 'server.rb' 脚本的路径,修改 'args' 中的路径信息。'/path/to/your/rails/app/server.rb' 仅为示例,需要替换为服务器脚本在您文件系统中的绝对路径。

基本使用方法

  1. 启动 Rails 应用和 MCP 服务器: 首先确保您的 Rails 应用已经启动,然后运行 'ruby server.rb' 启动 ActiveMCP 服务器脚本。

  2. 配置 MCP 客户端: 在您的 MCP 客户端应用中,配置上述的服务器配置信息,指定 'active-mcp-server' 作为要连接的 MCP 服务器。

  3. 调用工具: 客户端连接成功后,即可发现并调用您在 Rails 应用中定义的工具。例如,客户端可以请求 'tools/list' 获取可用工具列表,然后使用 'tools/call' 方法调用 'my_tool' 工具,并传递 'input_text' 参数。

ActiveMCP 将 Rails 应用的功能以 MCP 协议标准化的方式暴露出来,使得 LLM 客户端能够方便地利用 Rails 应用的数据和业务逻辑,构建更智能的应用。

信息

分类

开发者工具