
MCPRuby

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传输需要额外安装
async
、async-http
、falcon
和rack
等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:实用函数。
开发
- 安装依赖:
bash bundle install
- 运行测试:
bash bundle exec rspec
- 运行示例服务器:
bash bundle exec ruby examples/stdio_server.rb
贡献
欢迎在GitHub上提交错误报告和拉取请求。
许可证
MIT许可证。