返回 MCP 目录
public公开dns本地运行

sidekiq-mcp

Sidekiq MCP是一个Sidekiq插件,提供模型上下文协议(MCP)服务器,使LLM能够通过标准化接口与Sidekiq队列、统计数据和失败作业进行交互。

article

README

🚀 Sidekiq MCP

Sidekiq MCP 是一款 Sidekiq 插件,它提供了一个 MCP(模型上下文协议)服务器,使大语言模型(LLMs)能够通过标准化接口与 Sidekiq 队列、统计信息和失败任务进行交互,为任务管理和监控提供了便捷的途径。

🚀 快速开始

安装

将以下代码添加到你的应用程序的 Gemfile 中:

gem 'sidekiq-mcp'

然后执行以下命令:

bundle install

使用

Rails 集成

该 gem 会自动与 Rails 应用程序集成。你可以在初始化文件中进行配置:

# config/initializers/sidekiq_mcp.rb
Sidekiq::Mcp.configure do |config|
  config.enabled = true
  config.path = "/sidekiq-mcp"
  config.auth_token = Rails.application.credentials.sidekiq_mcp_token
  config.sse_enabled = true # 启用服务器发送事件以实现实时更新
end

MCP 服务器将在配置的路径下可用(默认:/sidekiq-mcp)。

手动设置(非 Rails)

对于非 Rails 应用程序,将中间件添加到你的 Rack 堆栈中:

require 'sidekiq/mcp'

# 配置
Sidekiq::Mcp.configure do |config|
  config.auth_token = "your-secret-token"
end

# 添加到你的 config.ru 或中间件堆栈
use Sidekiq::Mcp::Middleware

身份验证

MCP 服务器支持两种身份验证方法:

  1. Bearer Token:在请求头中包含 Authorization: Bearer your-token
  2. HTTP 基本身份验证:使用任意用户名,将令牌作为密码。

以下是不同 MCP 客户端的配置示例:

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"
      ]
    }
  }
}

带有 Claude 扩展的 VS Code

在你的 VS Code 设置中进行配置:

{
  "claude.mcpServers": {
    "sidekiq": {
      "url": "http://localhost:3000/sidekiq-mcp",
      "headers": {
        "Authorization": "Bearer your-secret-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"
        ]
      }
    }
  }
}

Claude Code

通过命令行界面进行配置:

claude mcp add --transport http sidekiq-mcp-server http://localhost:3000/sidekiq-mcp

或者将以下内容添加到你的 MCP 配置中:

{
  "sidekiq-mcp": {
    "endpoint": "http://localhost:3000/sidekiq-mcp",
    "auth": {
      "type": "bearer",
      "token": "your-secret-token"
    }
  }
}

✨ 主要特性

可用工具

MCP 服务器提供了以下工具:

统计与监控

  • sidekiq_stats - 获取 Sidekiq 的常规统计信息(已处理、失败、忙碌、排队的任务数量)。
  • job_class_stats - 按任务类列出任务数量、重试次数和错误率。
  • workers_count - 显示正在运行和忙碌的工作进程数量。
  • queue_health - 评估队列是否积压或健康。

队列检查

  • list_queues - 列出所有队列及其大小和延迟。
  • queue_details - 获取特定队列的详细信息,包括任务。
  • busy_workers - 列出当前忙碌的工作进程及其任务详情。

任务管理

  • failed_jobs - 列出失败的任务及其错误详情。
  • list_retry_jobs - 列出重试集中的任务(失败但将重试的任务)。
  • list_scheduled_jobs - 列出调度集中的任务。
  • dead_jobs - 显示死亡集中的任务(已耗尽所有重试次数的任务)。
  • job_details - 按任务 ID(JID)显示任务的参数、错误消息和历史记录。

任务操作

  • retry_job - 按任务 ID(JID)重试失败的任务。
  • delete_failed_job - 按任务 ID(JID)删除失败的任务。
  • remove_job - 按任务 ID(JID)从任何集合(队列/调度/重试/死亡)中移除任务。
  • reschedule_job - 将调度集中的任务重新安排到新的时间。
  • kill_job - 将任务从重试/调度集移动到死亡集。
  • clear_queue - 清除特定队列中的所有任务(破坏性操作)。

实时监控

  • stream_stats - 开始流式传输实时 Sidekiq 统计信息(与服务器发送事件一起使用)。
  • process_set - 获取所有 Sidekiq 进程/工作进程的详细信息。

示例提示

配置完成后,你可以向大语言模型提问:

  • "Sidekiq 的当前状态如何?"
  • "显示失败的任务及其错误消息。"
  • "列出所有队列及其健康状态。"
  • "哪些任务类的错误率最高?"
  • "显示任务 abc123 的详细信息。"
  • "重试 JID 为 abc123 的任务。"
  • "当前正在运行哪些任务?"
  • "是否有队列积压或不健康?"
  • "目前有多少工作进程忙碌?"
  • "清除 'low_priority' 队列中的所有任务。"
  • "将任务 abc123 重新安排到明天上午 9 点运行。"
  • "将这个失败的任务移动到死亡集。"
  • "开始流式传输实时统计更新。"

🛠️ 开发

检出仓库后,运行 bin/setup 安装依赖项。然后,运行 rake test 运行测试。example/ 目录包含一个示例 Rails 应用程序,展示了集成方法。

🤝 贡献

欢迎在 GitHub(https://github.com/andrew/sidekiq-mcp)上提交错误报告和拉取请求。

📄 许可证

该 gem 以开源形式提供,遵循 MIT 许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端