https://github.com/andrew/sidekiq-mcp

A Sidekiq plugin that provides an MCP (Model Context Protocol) server for LLMs to interact with Sidekiq queues, stats, and failed jobs

https://github.com/andrew/sidekiq-mcp

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

A Sidekiq plugin that provides an MCP (Model Context Protocol) server for LLMs to interact with Sidekiq queues, stats, and failed jobs

Basic Info
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 12 months ago · Last pushed 12 months ago
Metadata Files
Readme Changelog Code of conduct

README.md

Sidekiq MCP

Gem Version License

A Sidekiq plugin that provides an MCP (Model Context Protocol) server, enabling LLMs to interact with Sidekiq queues, statistics, and failed jobs through a standardized interface.

Available Tools

The MCP server provides the following tools:

Statistics & Monitoring

  • sidekiq_stats - Get general Sidekiq statistics (processed, failed, busy, enqueued counts)
  • job_class_stats - Breakdown of job counts, retries, and error rates by class
  • workers_count - Show how many workers are running and busy
  • queue_health - Heuristics on whether queues are backed up or healthy

Queue Inspection

  • list_queues - List all queues with sizes and latency
  • queue_details - Get detailed info about a specific queue including jobs
  • busy_workers - List currently busy workers and their job details

Job Management

  • failed_jobs - List failed jobs with error details
  • list_retry_jobs - List jobs in the retry set (jobs that failed but will be retried)
  • list_scheduled_jobs - List jobs in the scheduled set
  • dead_jobs - Show jobs in the dead set (jobs that have exhausted all retries)
  • job_details - Show args, error message, and history for a job by JID

Job Actions

  • retry_job - Retry a failed job by JID
  • delete_failed_job - Delete a failed job by JID
  • remove_job - Remove a job from any set (queue/schedule/retry/dead) by JID
  • reschedule_job - Reschedule a job in the scheduled set to a new time
  • kill_job - Move a job from retry/scheduled set to the dead set
  • clear_queue - Clear all jobs from a specific queue (destructive operation)

Real-time Monitoring

  • stream_stats - Start streaming real-time Sidekiq statistics (use with SSE)
  • process_set - Get detailed information about all Sidekiq processes/workers

Example Prompts

Once configured, you can ask your LLM:

  • "What's the current status of Sidekiq?"
  • "Show me the failed jobs and their error messages"
  • "List all queues and their health status"
  • "Which job classes have the highest error rates?"
  • "Show me details for job abc123"
  • "Retry the job with JID abc123"
  • "What jobs are currently running?"
  • "Are any queues backed up or unhealthy?"
  • "How many workers are busy right now?"
  • "Clear all jobs from the 'low_priority' queue"
  • "Reschedule job abc123 to run tomorrow at 9 AM"
  • "Move this failed job to the dead set"
  • "Start streaming live stats updates"

Installation

Add this line to your application's Gemfile:

ruby gem 'sidekiq-mcp'

And then execute: bash bundle install

Usage

Rails Integration

The gem automatically integrates with Rails applications. Configure it in an initializer:

```ruby

config/initializers/sidekiq_mcp.rb

Sidekiq::Mcp.configure do |config| config.enabled = true config.path = "/sidekiq-mcp" config.authtoken = Rails.application.credentials.sidekiqmcptoken config.sseenabled = true # Enable Server-Sent Events for real-time updates end ```

The MCP server will be available at the configured path (default: /sidekiq-mcp).

Manual Setup (Non-Rails)

For non-Rails applications, add the middleware to your Rack stack:

```ruby require 'sidekiq/mcp'

Configure

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

Add to your config.ru or middleware stack

use Sidekiq::Mcp::Middleware ```

Authentication

The MCP server supports two authentication methods:

  1. Bearer Token: Include Authorization: Bearer your-token header
  2. HTTP Basic Auth: Use any username with your token as the password

Example configuration for different MCP clients:

Claude Desktop

Add to your claude_desktop_config.json:

json { "mcpServers": { "sidekiq": { "command": "curl", "args": [ "-X", "POST", "-H", "Content-Type: application/json", "-H", "Authorization: Bearer your-secret-token", "http://localhost:3000/sidekiq-mcp" ] } } }

VS Code with Claude Extension

Configure in your VS Code settings:

json { "claude.mcpServers": { "sidekiq": { "url": "http://localhost:3000/sidekiq-mcp", "headers": { "Authorization": "Bearer your-secret-token" } } } }

Cursor

Add to your Cursor configuration:

json { "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

Configure via CLI:

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

Or add to your MCP configuration:

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

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests.

The example/ directory contains a sample Rails application demonstrating the integration.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/andrew/sidekiq-mcp.

License

The gem is available as open source under the terms of the MIT License.

Owner

  • Name: Andrew Nesbitt
  • Login: andrew
  • Kind: user
  • Location: Bristol, UK
  • Company: @ecosyste-ms and @octobox

Working on mapping the world of open source software @ecosyste-ms and empowering developers with @octobox

GitHub Events

Total
  • Watch event: 1
  • Push event: 3
  • Create event: 1
Last Year
  • Watch event: 1
  • Push event: 3
  • Create event: 1

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 8
  • Total Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 8
  • Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Andrew Nesbitt a****z@g****m 8

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • rubygems 275 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
rubygems.org: sidekiq-mcp

A Sidekiq plugin that provides an MCP (Model Context Protocol) server for LLMs to interact with Sidekiq queues, stats, and failed jobs

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 275 Total
Rankings
Dependent packages count: 14.3%
Dependent repos count: 43.9%
Average: 50.3%
Downloads: 92.8%
Maintainers (1)
Last synced: 11 months ago

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v4 composite
  • ruby/setup-ruby v1 composite
example/sidekiq_mcp_demo/Dockerfile docker
  • base latest build
  • docker.io/library/ruby $RUBY_VERSION-slim build
Gemfile rubygems
  • irb >= 0
  • minitest ~> 5.16
  • rake ~> 13.0
Gemfile.lock rubygems
  • base64 0.3.0
  • bigdecimal 3.2.2
  • bundler 2.7.1
  • concurrent-ruby 1.3.5
  • connection_pool 2.5.3
  • date 3.4.1
  • dry-configurable 1.3.0
  • dry-core 1.1.0
  • dry-inflector 1.2.0
  • dry-initializer 3.2.0
  • dry-logic 1.6.0
  • dry-schema 1.14.1
  • dry-types 1.8.3
  • erb 5.0.2
  • io-console 0.8.1
  • irb 1.15.2
  • json 2.13.2
  • logger 1.7.0
  • minitest 5.25.5
  • pp 0.6.2
  • prettyprint 0.2.0
  • psych 5.2.6
  • rack 3.2.0
  • rack-test 2.2.0
  • rake 13.3.0
  • rdoc 6.14.2
  • redis-client 0.25.1
  • reline 0.6.2
  • sidekiq 8.0.6
  • sidekiq-mcp 0.2.0
  • stringio 3.1.7
  • zeitwerk 2.7.3
example/sidekiq_mcp_demo/Gemfile rubygems
  • brakeman >= 0 development
  • rubocop-rails-omakase >= 0 development
  • bootsnap >= 0
  • kamal >= 0
  • puma >= 5.0
  • rails ~> 8.0.2
  • sidekiq >= 0
  • sidekiq-mcp >= 0
  • solid_cable >= 0
  • solid_cache >= 0
  • solid_queue >= 0
  • sqlite3 >= 2.1
  • thruster >= 0
sidekiq-mcp.gemspec rubygems
  • rack-test >= 0 development
  • base64 >= 0
  • dry-schema ~> 1.13
  • rack >= 2.0
  • sidekiq >= 6.0