使用说明
项目简介
Fast MCP 🚀 是一个 Ruby 库,它实现了 Model Context Protocol (MCP) 的服务器端,旨在帮助开发者轻松地将 AI 模型集成到 Ruby 应用程序中。它解决了传统 AI 集成方案中存在的复杂协议、集成难题和兼容性问题,让 Ruby 开发者能够以简洁高效的方式构建 AI 应用后端。
主要功能点
- 工具 API: 允许 AI 模型安全地调用 Ruby 应用程序中的函数,并通过 Dry-Schema 进行参数验证。
- 资源 API: 支持在应用程序和 AI 模型之间共享数据资源。
- 多种传输方式: 支持 STDIO, HTTP, SSE 等多种传输协议,以适应不同的应用场景。
- 框架集成: 无缝集成 Rails, Sinatra, Hanami 等 Ruby Web 框架。
- 认证支持: 提供简单的认证机制,保护 AI 端点安全。
- 实时更新: 支持资源更新订阅,为实时应用提供支持。
安装步骤
-
在你的 'Gemfile' 文件中添加:
gem 'fast-mcp' -
运行 'bundle install' 安装 gem 包。
服务器配置
要将 Fast MCP 服务器集成到 MCP 客户端(例如 Claude 桌面),你需要在客户端的配置文件中添加服务器信息。以下是一个示例 'claude_desktop_config.json' 配置,展示了如何配置 Fast MCP 服务器:
{ "mcpServers": { "my-ruby-mcp-server": { "command": "ruby", "args": [ "/path/to/your/fast-mcp/server.rb" ] } } }
参数注释:
- server name: 'my-ruby-mcp-server' - 为你的 MCP 服务器自定义一个名称,用于在客户端中标识和引用。
- command: 'ruby' - 指定用于启动 MCP 服务器的命令,这里是 Ruby 解释器。
- args: '["/path/to/your/fast-mcp/server.rb"]' - 一个字符串数组,包含了启动命令的参数。
- '/path/to/your/fast-mcp/server.rb':请替换为你的 Fast MCP 服务器启动脚本的实际路径。这个脚本通常会初始化并启动 MCP 服务器。
基本使用方法
-
创建 MCP 服务器:
require 'fast_mcp' server = MCP::Server.new(name: 'my-ai-server', version: '1.0.0') -
注册工具 (Tools):
class SummarizeTool < MCP::Tool description "Summarize a given text" arguments do required(:text).filled(:string).description("Text to summarize") optional(:max_length).filled(:integer).description("Maximum length of summary") end def call(text:, max_length: 100) # 你的总结逻辑 text.split('.').first(3).join('.') + '...' end end server.register_tool(SummarizeTool) -
注册资源 (Resources):
class StatisticsResource < MCP::Resource uri "data/statistics" name "Usage Statistics" description "Current system statistics" mime_type "application/json" def default_content JSON.generate({ users_online: 120, queries_per_minute: 250, popular_topics: ["Ruby", "AI", "WebDev"] }) end end server.register_resource(StatisticsResource.new) -
启动服务器:
-
STDIO 传输:
server.start -
Rack 中间件 (例如 Rails 应用):
# config/application.rb (Rails) config.middleware.use MCP::RackMiddleware.new( name: 'my-ai-server', version: '1.0.0' ) do |server| server.register_tool(SummarizeTool) server.register_resource(StatisticsResource) end -
运行示例: 查看 'examples' 目录下的示例代码,例如 'examples/server_with_stdio_transport.rb' 或 'examples/rack_middleware.rb',根据你的需求选择合适的启动方式。
-
信息
分类
开发者工具