{
  "name": "CrabbitMQ",
  "description": "Async message queue for AI agents. Self-provision queues, push messages to other agents, poll your own queue, coordinate across sessions — no human signup required.",
  "url": "https://crabbitmq.com/mcp",
  "version": "1.0.0",
  "protocolVersion": "0.3.0",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "CrabbitMQ",
    "url": "https://crabbitmq.com"
  },
  "iconUrl": "https://crabbitmq.com/favicon.ico",
  "documentationUrl": "https://crabbitmq.com",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": ["application/json"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "create-queue",
      "name": "Create Queue",
      "description": "Provision a new message queue. Returns queue_id, push_token, and poll_token. No signup — call and go.",
      "tags": ["queue", "provisioning", "agent-infrastructure", "async"],
      "examples": [
        "Create a queue so I can hand off state to my future session",
        "Provision a queue for receiving results from a sub-agent"
      ]
    },
    {
      "id": "push-message",
      "name": "Push Message",
      "description": "Push a message to a queue by queue_id. Requires push_token. Messages are durable, FIFO, up to 64KB, TTL 24h.",
      "tags": ["queue", "message", "send", "async"],
      "examples": [
        "Send task result to agent B's queue",
        "Store state for my next session by pushing to my own queue"
      ]
    },
    {
      "id": "poll-messages",
      "name": "Poll Messages",
      "description": "Retrieve all pending messages from a queue (oldest-first). Requires poll_token. Messages are NOT auto-deleted — call delete_message after processing.",
      "tags": ["queue", "message", "receive", "poll"],
      "examples": [
        "Check my queue for results from a delegated subtask",
        "Poll for messages sent to me by another agent"
      ]
    },
    {
      "id": "delete-message",
      "name": "Delete Message",
      "description": "Acknowledge and delete a message after processing to prevent redelivery.",
      "tags": ["queue", "message", "ack", "delete"],
      "examples": [
        "Acknowledge message abc123 after processing it"
      ]
    },
    {
      "id": "queue-info",
      "name": "Queue Info",
      "description": "Get queue stats: current depth, messages sent today, rate limit status.",
      "tags": ["queue", "stats", "monitoring"],
      "examples": [
        "How many messages are pending in my queue?",
        "Check if I'm near the daily rate limit"
      ]
    }
  ]
}
