MCPRuby

MCPRuby

site icon
2025.04.16 0
RubyLLM扩展Ruby工具库开发效率
MCPRuby是一个Ruby库,用于实现模型上下文协议(MCP)的服务器端功能。MCP是一种规范,允许大型语言模型(LLMs)发现并与外部工具、资源和预定义的提示模板进行交互。该库使得开发者能够轻松创建MCP服务器,将应用程序的功能(如函数、数据源或提示模板)暴露给兼容的LLM客户端(如Claude桌面应用或自定义客户端)。
View on GitHub

Overview

基本能力

产品定位

MCPRuby旨在为Ruby应用程序提供实现模型上下文协议(MCP)的服务器端工具,使LLM能够通过MCP协议与外部工具和资源进行交互。

核心功能

  • MCP规范实现:完全遵循MCP规范,支持服务器端功能。
  • 工具注册:允许注册自定义工具(函数),供LLM调用。
  • 资源暴露:支持暴露数据源(如文件、数据库结果、API输出)供LLM读取。
  • 提示模板:提供结构化提示模板,供LLM请求和使用。
  • 多传输支持:支持Stdio(标准输入输出)和SSE(服务器发送事件)两种传输方式。
  • 扩展性:提供默认处理器,支持自定义覆盖。
  • 错误处理:自定义错误类,映射到JSON-RPC/MCP错误代码。
  • Ruby风格API:使用块注册处理器,符合Ruby惯用模式。

适用场景

  • LLM扩展功能:为LLM提供外部工具和资源访问能力。
  • 自定义服务器:构建支持MCP协议的自定义服务器,与LLM客户端交互。
  • 开发效率工具:快速集成MCP功能到Ruby应用程序中。

工具列表

  • Stdio传输:简单传输方式,适用于基于进程的服务器。
  • SSE传输:异步网络传输,基于async/falcon生态系统。
  • 工具注册:支持注册自定义工具,供LLM调用。
  • 资源注册:支持注册数据源,供LLM读取。
  • 提示注册:支持注册提示模板,供LLM使用。

常见问题解答

  • 依赖问题:SSE传输需要额外安装asyncasync-httpfalconrack等gem。
  • 调试方式:可通过设置日志级别(DEBUG, INFO, WARN, ERROR, FATAL)进行调试。

使用教程

使用依赖

安装MCPRuby前需确保已安装Ruby和Bundler。

gem install bundler

安装教程

将以下内容添加到Gemfile中:

gem 'mcp_ruby'

然后执行:

bundle install

或直接安装:

gem install mcp_ruby

调试方式

设置日志级别以调试服务器:

MCPRuby.logger.level = Logger::DEBUG

运行服务器后,可通过发送JSON-RPC消息进行交互,如:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"ManualClient","version":"0.1"}}}

架构

  • MCPRuby::Server:主类,管理注册、状态和消息分发。
  • MCPRuby::Transport::{Stdio, SSE}:处理不同通道的通信细节。
  • MCPRuby::Session:保存客户端连接状态。
  • MCPRuby::Definitions::{Tool, Resource, Prompt}:保存注册的功能信息和处理器块。
  • MCPRuby::Handlers::Core:包含标准MCP方法的默认实现。
  • MCPRuby::Errors:自定义异常类。
  • MCPRuby::Util:实用函数。

开发

  1. 安装依赖: bash bundle install
  2. 运行测试: bash bundle exec rspec
  3. 运行示例服务器: bash bundle exec ruby examples/stdio_server.rb

贡献

欢迎在GitHub上提交错误报告和拉取请求。

许可证

MIT许可证。

许可证

该项目遵循 MIT 开源许可条款。