Because it reads the database rather than the dashboard, it can hand back a failed job's arguments and exception alongside its state history — enough to diagnose without switching windows. Auto-discovery from appsettings means the usual setup is pointing it at the workspace and nothing else.
An MCP server for Hangfire, the .NET background job scheduler. It reads the Hangfire SQL Server database directly, so an assistant can see what failed and why, retry it, and pause or trigger recurring jobs without opening the dashboard. Connection strings are discovered from your project's appsettings files.
- list_jobs and get_job — jobs by state (Enqueued, Processing, Succeeded, Failed and the rest), and one job's arguments and exception detail
- get_job_history — the state history behind a job, so you can see how it got there
- retry_job, requeue_job and delete_job — retry a failure, move a job back to its queue, or remove it
- list_recurring_jobs and get_recurring_job — every recurring job with its cron schedule, and one job's detail
- trigger_recurring_job, pause_recurring_job and resume_recurring_job — run a scheduled job now, or stop and restart its schedule
- get_stats, list_queues and list_servers — succeeded, failed and processing counts, queues with pending totals, and the active Hangfire servers
- configure — set the connection string for the current workspace
Python 3.11 or newer, a SQL Server instance holding the Hangfire database, and ODBC Driver 17 for SQL Server or compatible — it uses pyodbc, so the connection string must be ODBC format, not ADO.NET. Clients run uvx hangfire-mcp over stdio with --workspace pointing at your project. The connection string is taken from --connection-string, then HANGFIRE_CONNECTION_STRING, then any appsettings*.json under the workspace, then a saved user config, then the configure tool.
One command plus a key — pip install hangfire-mcp, then supply credentials
