Sidekiq MCP 服务器使用说明
项目简介
'Sidekiq MCP' 是一个Ruby Gem,它提供了一个Model Context Protocol (MCP) 服务器。该服务器允许大型语言模型(LLMs)通过标准化的JSON-RPC接口,直接与Sidekiq后台任务队列进行交互。通过此集成,LLM能够智能地查询Sidekiq的运行状态、管理作业、监控队列健康等,从而实现更高级别的Sidekiq操作和自动化。
主要功能点
该MCP服务器提供了一系列工具,允许LLM执行以下操作:
- 统计与监控:
- 获取Sidekiq的整体统计信息,包括已处理、失败、繁忙作业数、队列中的作业数等。
- 按作业类别细分作业计数、重试次数和错误率。
- 显示当前运行和繁忙的工作进程数量。
- 提供队列健康状况的启发式分析,判断队列是否积压或健康。
- 队列检查:
- 列出所有Sidekiq队列及其大小和延迟信息。
- 获取特定队列的详细信息,包括其中的作业列表。
- 列出当前正在处理作业的工作进程及其作业详情。
- 作业管理:
- 查询失败作业及其错误详情。
- 列出处于重试集合中的作业(失败但会重试的作业)。
- 列出处于计划集合中的作业。
- 显示处于死作业集合中的作业(已耗尽所有重试机会的作业)。
- 通过作业ID(JID)获取单个作业的详细参数、错误消息和历史记录。
- 作业操作:
- 通过JID重试一个失败的作业。
- 通过JID删除一个失败的作业。
- 通过JID从任何集合(队列/计划/重试/死作业)中移除一个作业。
- 将计划集合中的作业重新安排到新的时间。
- 将重试或计划集合中的作业移至死作业集合。
- 清空特定队列中的所有作业(此操作具破坏性)。
- 实时监控:
- 支持通过Server-Sent Events (SSE) 实时流式传输Sidekiq统计数据。
- 获取所有Sidekiq进程/工作进程的详细信息。
安装步骤
要将'Sidekiq MCP'集成到您的Rails或其他Rack应用程序中,请遵循以下步骤:
-
添加Gem依赖: 在您的应用程序的'Gemfile'中添加以下行:
gem 'sidekiq-mcp' -
安装Gem: 运行以下命令安装Gem:
bundle install -
配置MCP服务器(Rails应用程序): 在Rails应用程序中,创建一个初始化文件 'config/initializers/sidekiq_mcp.rb' 并添加配置:
# config/initializers/sidekiq_mcp.rb Sidekiq::Mcp.configure do |config| config.enabled = true # 是否启用MCP服务器,默认为true config.path = "/sidekiq-mcp" # MCP服务器的访问路径,默认为"/sidekiq-mcp" # 设置认证令牌,LLM客户端在发送请求时需要此令牌。建议从环境变量读取以保护敏感信息。 config.auth_token = Rails.application.credentials.sidekiq_mcp_token config.sse_enabled = true # 是否启用Server-Sent Events (SSE) 实时更新功能,默认为true end -
手动设置(非Rails Rack应用程序): 对于非Rails的Rack应用程序,您需要在Rack堆栈中添加'Sidekiq::Mcp::Middleware':
require 'sidekiq/mcp' # 配置MCP服务器 Sidekiq::Mcp.configure do |config| config.auth_token = "your-secret-token" # 设置您的认证令牌 # 您也可以配置config.path和config.sse_enabled end # 将MCP中间件添加到您的config.ru或自定义中间件堆栈中 use Sidekiq::Mcp::Middleware # 如果您启用了SSE功能,也需要添加SseMiddleware # use Sidekiq::Mcp::SseMiddleware run YourRackApp
服务器配置 (LLM客户端使用)
MCP服务器配置完成后,LLM客户端需要相应的配置信息才能与其建立连接。以下是针对几种常见MCP客户端的配置示例。请将'http://localhost:3000/sidekiq-mcp'替换为您的MCP服务器的实际URL,并将'your-secret-token'替换为您的认证令牌。
Claude Desktop
在您的 'claude_desktop_config.json' 文件中添加以下配置:
{ "mcpServers": { "sidekiq": { "command": "curl", "args": [ "-X", "POST", "-H", "Content-Type: application/json", "-H", "Authorization: Bearer your-secret-token", "http://localhost:3000/sidekiq-mcp" ] } } }
配置说明:
- 'sidekiq': 为您的MCP服务器实例定义的名称,LLM将通过此名称引用您的服务器。
- 'command': 指定用于与MCP服务器通信的命令行工具,这里使用'curl'。
- 'args': 传递给'curl'命令的参数,包括HTTP请求方法('-X POST')、请求头('-H'用于设置'Content-Type'和'Authorization'认证令牌)以及MCP服务器的完整URL。
VS Code with Claude Extension
在您的VS Code设置中('settings.json')添加以下配置:
{ "claude.mcpServers": { "sidekiq": { "url": "http://localhost:3000/sidekiq-mcp", "headers": { "Authorization": "Bearer your-secret-token" } } } }
配置说明:
- 'sidekiq': 为您的MCP服务器实例定义的名称。
- 'url': MCP服务器的完整HTTP/S端点。
- 'headers': 包含HTTP请求头信息的对象,这里用于设置'Authorization'头以进行Bearer Token认证。
Cursor
在您的Cursor配置文件中添加以下配置:
{ "mcp": { "servers": { "sidekiq": { "command": ["curl"], "args": [ "-X", "POST", "-H", "Content-Type: application/json", "-H", "Authorization: Bearer your-secret-token", "http://localhost:3000/sidekiq-mcp" ] } } } }
配置说明:
- 'sidekiq': 为您的MCP服务器实例定义的名称。
- 'command': 用于与MCP服务器通信的命令行工具,这里使用'curl'(以数组形式)。
- 'args': 传递给'curl'命令的参数,与Claude Desktop配置中的'args'类似,用于指定HTTP方法、请求头和服务器URL。
Claude Code
您可以通过Claude Code CLI工具添加服务器,或直接修改其MCP配置文件。
通过CLI添加:
claude mcp add --transport http sidekiq-mcp-server http://localhost:3000/sidekiq-mcp
通过配置文件添加:
{ "sidekiq-mcp": { "endpoint": "http://localhost:3000/sidekiq-mcp", "auth": { "type": "bearer", "token": "your-secret-token" } } }
配置说明:
- 'sidekiq-mcp': 为您的MCP服务器实例定义的名称。
- 'endpoint': MCP服务器的完整HTTP/S端点。
- 'auth': 认证信息,指定认证类型为'bearer',并提供您的'token'。
基本使用方法
一旦Sidekiq MCP服务器成功运行并且LLM客户端已正确配置并连接,您就可以通过自然语言向LLM提问,让它调用Sidekiq MCP服务器提供的工具。例如:
- "Sidekiq当前状态如何?"
- "显示失败的作业及其错误信息。"
- "列出所有队列和它们的健康状况。"
- "哪个作业类的错误率最高?"
- "显示作业ID为 'abc123' 的详细信息。"
- "重试作业 'abc123'。"
- "作业 'abc123' 有什么问题?"
- "重新安排作业 'abc123' 到明天早上9点运行。"
- "清空 'low_priority' 队列中的所有作业。"
- "开始实时统计数据流。"
- "现在有多少个工作进程正在运行和忙碌?"
信息
分类
开发者工具