Skip to main content

Nerve MCP Tools

Nerve provides MCP (Model Context Protocol) tools for AI assistants to monitor background jobs.

Available Tools

nerve_queues

List queue health and sizes.
{
  "name": "nerve_queues",
  "arguments": {}
}
Response:
{
  "queues": [
    {
      "name": "default",
      "size": 42,
      "latency_seconds": 1.2,
      "status": "healthy",
      "throughput_per_minute": 85
    },
    {
      "name": "mailers",
      "size": 8,
      "latency_seconds": 0.3,
      "status": "healthy",
      "throughput_per_minute": 12
    }
  ],
  "summary": {
    "total_queued": 50,
    "total_workers": 5,
    "overall_status": "healthy"
  }
}

nerve_jobs

List recent jobs and their status.
{
  "name": "nerve_jobs",
  "arguments": {
    "status": "failed",
    "limit": 10
  }
}
Response:
{
  "jobs": [
    {
      "id": "job_abc123",
      "class": "ImportDataJob",
      "queue": "default",
      "status": "failed",
      "error": "ActiveRecord::RecordNotFound",
      "attempts": 3,
      "failed_at": "2024-01-15T10:30:00Z"
    }
  ]
}

nerve_workers

List active workers.
{
  "name": "nerve_workers",
  "arguments": {}
}
Response:
{
  "workers": [
    {
      "id": "worker_xyz",
      "hostname": "web-1",
      "status": "active",
      "queues": ["default", "mailers"],
      "busy_threads": 3,
      "total_threads": 5,
      "memory_mb": 256
    }
  ],
  "summary": {
    "total_workers": 5,
    "active": 4,
    "idle": 1
  }
}

nerve_dead

List dead/failed jobs.
{
  "name": "nerve_dead",
  "arguments": {
    "limit": 10
  }
}
Response:
{
  "dead_jobs": [
    {
      "id": "dead_abc123",
      "class": "SendEmailJob",
      "error_class": "Net::SMTPAuthenticationError",
      "error_message": "Authentication failed",
      "died_at": "2024-01-15T10:30:00Z",
      "attempts": 5
    }
  ],
  "total_dead": 15
}

nerve_retry

Retry a dead job.
{
  "name": "nerve_retry",
  "arguments": {
    "job_id": "dead_abc123"
  }
}
Response:
{
  "success": true,
  "job_id": "dead_abc123",
  "new_job_id": "job_xyz789",
  "message": "Job requeued to 'mailers' queue"
}

Example Conversations

User: “How are the background jobs doing?” Assistant uses: nerve_queues Response: “Your job queues are healthy. The default queue has 42 jobs with 1.2s latency, processing 85 jobs/minute. The mailers queue has 8 jobs waiting.”
User: “Any failed jobs today?” Assistant uses: nerve_jobs with status: "failed" Response: “There are 3 failed jobs today. The most common failure is ImportDataJob with RecordNotFound errors. Would you like me to retry them?”
User: “Yes, retry the ImportDataJob failures” Assistant uses: nerve_retry for each failed job Response: “I’ve retried 3 ImportDataJob failures. They’re now back in the default queue.”

Setup

Add Nerve MCP to your Claude Desktop or Cursor configuration:
{
  "mcpServers": {
    "brainzlab-nerve": {
      "command": "npx",
      "args": ["-y", "@brainzlab/mcp-server"],
      "env": {
        "BRAINZLAB_SECRET_KEY": "your-secret-key",
        "BRAINZLAB_PRODUCTS": "nerve"
      }
    }
  }
}