Token导航 LogoToken导航TokenDH.com
MCP Ruby Skeleton logo
AI代理未说明官方级别未说明来源级核验

MCP Ruby Skeleton

MCP Server

一个Ruby实现的模型上下文协议(MCP)服务器框架,为大型语言模型(LLMs)提供工具调用接口,当前包含随机数生成功能。

工具数

1

提示词数

0

GitHub Stars

4

资源数

0
Ruby服务器框架AI代理ClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bash0C7

提供方

bash0C7

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP Ruby服务器骨架

致谢:此实现受到了文章的启发 用TypeScript构建模型上下文协议服务器 Azuki Azusa。

这个项目是模型上下文协议(MCP)服务器骨架的Ruby实现。它提供了一个接口,允许像Claude这样的大型语言模型(LLM)调用工具。当前的实现提供了一种生成随机数的工具。

特性

  • get-random-number:生成一个介于1和指定最大值之间的随机整数(默认值为100)
  • MCP协议版本2024-11-05兼容性
  • 调试详细日志记录
  • 符合JSON-RPC 2.0的消息处理

需求

  • Ruby 3.0+

建筑与设计

此服务器由以下组件组成:

核心组件

  • MCP::Server:处理MCP协议消息的主服务器实现

- 协议初始化 - 工具登记和管理 - 消息处理 - 工具列表和执行 - 错误处理

  • MCP::Transport::Stdio:用于通信的标准I/O传输层

- 消息接收 - 响应传输 - 事件驱动的消息处理

  • MCP::Tool:工具定义和执行处理程序

- 工具名称、描述和输入模式的管理 - 工具逻辑实现 - 执行过程中的参数处理

  • RandomNumberServer:注册和管理工具的服务器实现

- 服务器初始化 - 工具设置 - 服务器执行

协议流

服务器遵循MCP初始化协议:

  1. 客户端发送 initialize 请求协议版本
  2. 服务器以其功能进行响应,并匹配协议版本
  3. 服务器发送 initialized 通知
  4. 然后,客户端可以列出并调用工具

已实现的MCP API

服务器实现了以下MCP API:

  • initialize:服务器初始化和协议版本协商
  • tools/list:列出可用工具及其模式
  • tools/call:使用提供的参数执行工具

安装

克隆存储库:

git clone 
cd mcp-ruby-skeleton

确保服务器脚本可执行:

chmod +x bin/run_server.rb

用法

直接执行

直接运行服务器:

./bin/run_server.rb

与Claude Desktop集成

将以下内容添加到您的Claude Desktop配置中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "random-number": {
      "command": "ruby",
      "args": [
        "/Users/bash/src/mcp-ruby-skeleton/bin/run_server.rb"
      ]
    }
  }
}

将路径替换为您的绝对路径 run_server.rb 您系统上的文件。

配置后,重新启动Claude Desktop并尝试类似“生成1到50之间的随机数”的提示

调试

日志

与MCP服务器相关的Claude应用程序日志可在以下网址获得:

  • macOS: ~/Library/Logs/Claude/mcp*.log
  • 窗户: %APPDATA%\Claude\logs\mcp*.log

要实时查看日志,请执行以下操作:

# On macOS
tail -f ~/Library/Logs/Claude/mcp*.log

# On Windows
type "%APPDATA%\Claude\logs\mcp*.log"

服务器本身会记录到标准错误输出(STDERR),日志级别在初始化时设置 RandomNumberServer 类(目前处于调试级别)。

常见问题

服务器断开连接\ 如果您看到“MCP服务器已断开连接”之类的消息,请检查:

  • 协议版本兼容性
  • JSON-RPC消息格式
  • 正确的初始化顺序
  • 服务器脚本上的文件权限

工具未显示\ 如果随机数工具没有出现在Claude中:

  • 检查服务器是否在配置文件中正确注册
  • 确保服务器脚本具有执行权限
  • 完全重新启动克劳德桌面
  • 检查日志是否有任何错误

发展

添加新工具

您可以通过修改来向服务器添加更多工具 RandomNumberServer 类别:

def setup_tools
  # Existing random number tool
  random_number_tool = MCP::Tool.new(
    "get-random-number",
    "Generate a random number between 1 and the specified maximum value",
    {
      type: "object",
      properties: {
        max: {
          type: "integer",
          description: "Maximum value for the random number (defaults to 100 if not specified)"
        }
      }
    }
  ) do |args|
    max = (args["max"] || 100).to_i
    max = 100 if max <= 0
    
    rand(1..max)
  end

  @server.register_tool(random_number_tool)
  
  # Add your new tool here
  new_tool = MCP::Tool.new(
    "tool-name",
    "Tool description",
    {
      type: "object",
      properties: {
        # Tool parameters
      }
    }
  ) do |args|
    # Tool implementation
  end
  
  @server.register_tool(new_tool)
end

测试

在实现新工具或服务器功能时,建议添加测试。测试应该结合单元测试、集成测试和端到端测试。

测试应验证:

  • 正确定义和登记工具
  • 正确的协议处理
  • 错误处理
  • 输入验证
  • 预期输出确认

错误处理和异常

为了提高MCP服务器的健壮性,实现适当的错误处理和异常处理非常重要:

  1. 在工具执行过程中适当地捕获异常,并向客户端返回有意义的错误消息
  2. 验证无效的输入参数
  3. 正确处理网络和I/O错误
  4. 考虑超时和资源限制

目录标签

目录标签

Ruby服务器框架AI代理Claude本地部署MCP协议LLM工具调用Ruby开发JSON-RPC

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP