使用说明

项目简介

Active MCP 是一个 Ruby on Rails 引擎,用于简化 Model Context Protocol (MCP) 服务器的开发。它旨在帮助开发者快速构建应用后端,以便为大型语言模型 (LLM) 客户端提供结构化的上下文信息和功能。通过 Active MCP,您可以轻松地将现有的 Rails 应用功能暴露为 MCP 工具,并管理可供 LLM 访问的资源和 Prompt 模板。

主要功能点

  • 简化集成: 轻松将 Rails 应用的功能作为 MCP 工具对外暴露,无需复杂的配置。
  • 资源支持: 通过 MCP 资源向 AI 助手安全地共享文件和数据,支持文本和二进制内容。
  • 强大的代码生成器: 利用 Rails 代码生成器快速创建 MCP 工具和资源,提升开发效率。
  • 认证支持: 内置身份验证和授权功能,保障 MCP 服务器的安全性。
  • 灵活部署: 支持多种部署和连接方式,包括直接 HTTP 连接和独立的 MCP 服务器模式。

安装步骤

  1. 在您的 Rails 应用的 'Gemfile' 中添加以下行:

    gem 'active_mcp'
  2. 运行 'bundle install' 安装 gem 包。

  3. 运行安装生成器初始化 Active MCP 配置:

    rails generate active_mcp:install

    这将创建一个配置文件 'config/initializers/active_mcp.rb'。

服务器配置

MCP 客户端需要配置 MCP 服务器的连接信息才能进行交互。以下是 Standalone MCP Server 模式下客户端的配置示例,您需要配置 'command' 和 'args' 来启动 Active MCP 服务器进程:

{
  "mcpServers": {
    "my-rails-app": {
      "command": "/path/to/ruby",  // Ruby 解释器路径
      "args": ["/path/to/script/mcp_server.rb"] // Active MCP 服务器启动脚本路径
    }
  }
}

其中 '/path/to/script/mcp_server.rb' 是您在 Rails 应用根目录下创建的服务器启动脚本,例如:

# script/mcp_server.rb
require_relative '../../lib/active_mcp'
require './config/environment.rb' # 加载 Rails 环境

server = ActiveMcp::Server.new(
  name: "My App MCP Server",
  uri: 'http://localhost:3000/mcp' # Rails 应用 MCP 接口的 URI
)
server.start

基本使用方法

  1. 创建 MCP 工具: 使用代码生成器快速创建工具,例如:

    rails generate active_mcp:tool create_note

    编辑 'app/mcp/tools/create_note_tool.rb' 文件,定义工具的 'tool_name'、'description'、参数 ('argument') 和 'call' 方法来实现具体功能。

  2. 创建 MCP 资源: 使用代码生成器创建资源,例如:

    rails generate active_mcp:resource profile_image

    编辑 'app/mcp/resources/profile_image_resource.rb' 文件,定义资源的 'mime_type'、'resource_name'、'uri'、'description' 以及 'text' 或 'blob' 方法来提供资源内容。

  3. 定义 Schema: 创建一个 Schema 类,例如 'app/mcp/schemas/my_schema.rb',并在其中注册您创建的工具和资源:

    class MySchema < ActiveMcp::Schema::Base
      tools CreateNoteTool, SearchUsersTool # 注册工具
      resource UserResource, items: User.all.each {|user| { id: user.id } } # 注册资源
    end
  4. 配置 Controller 和路由: 创建一个 Controller,例如 'app/controllers/my_mcp_controller.rb',并设置路由:

    class MyMcpController < ActiveMcp::BaseController
      private
    
      def schema
        MySchema.new(context:) # 实例化您的 Schema
      end
    end

    在 'config/routes.rb' 中添加路由:

    Rails.application.routes.draw do
      post "/mcp", to: "my_mcp#index"
      # ... 其他路由
    end
  5. 启动服务器: 运行 'script/mcp_server.rb' 脚本启动独立的 MCP 服务器,或者直接部署 Rails 应用并通过 HTTP 接口 '/mcp' 提供 MCP 服务。

现在,您的 Rails 应用已经成功配置为 MCP 服务器。您可以配置 MCP 客户端连接到您的服务器地址,并开始调用您定义的工具和访问资源。

信息

分类

AI与计算