Connector action

get_event_audio_status

ReadIdempotent

Check audio status on an event

The cheapest way to answer "is the audio ready?" for one event: counts by state, a yes/no all_audio_ready flag and one short line per message. Smaller than get_event when you do not need durations or sources.

What the client is told

The description an MCP client receives from tools/list, word for word:

Answers "does it have audio ready?" for one event: message counts by state (ready, cleaning, waiting, needs attention, video) and one line per message, "Message N: state". No file names, no audio, no words, no guest details.

Annotations

json
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}

Parameters

ParameterTypeRequiredDescription
event_idstring (uuid)YesThe event id, as returned by search_events or create_event.
Input schema as JSON Schema
inputSchema
{
  "type": "object",
  "properties": {
    "event_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "event_id"
  ]
}

Example

Request

tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_event_audio_status",
    "arguments": {
      "event_id": "7c1f3a2e-9b4d-4e61-8f0a-2d5c6b7e8a91"
    }
  }
}

With curl

bash
curl -X POST https://www.happyhearaudio.com/api/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_event_audio_status","arguments":{"event_id":"7c1f3a2e-9b4d-4e61-8f0a-2d5c6b7e8a91"}}}'

Response

Fake data in a real shape. content[0].text is the same object as a JSON string for clients that read text only.

json
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"event_id\":\"7c1f3a2e-9b4d-4e61-8f0a-2d5c6b7e8a91\",\"event_name\":\"Rivera 50th Anniversary\",\"total\":4,\"counts\":{\"ready\":2,\"cleaning\":1,\"waiting\":0,\"needs_attention\":1,\"video\":0},\"all_audio_ready\":false,\"messages\":[\"Message 1: ready\",\"Message 2: ready\",\"Message 3: cleaning\",\"Message 4: needs attention\"],\"dashboard_url\":\"https://www.happyhearaudio.com/dashboard/events/7c1f3a2e-9b4d-4e61-8f0a-2d5c6b7e8a91\"}"
      }
    ],
    "structuredContent": {
      "event_id": "7c1f3a2e-9b4d-4e61-8f0a-2d5c6b7e8a91",
      "event_name": "Rivera 50th Anniversary",
      "total": 4,
      "counts": {
        "ready": 2,
        "cleaning": 1,
        "waiting": 0,
        "needs_attention": 1,
        "video": 0
      },
      "all_audio_ready": false,
      "messages": [
        "Message 1: ready",
        "Message 2: ready",
        "Message 3: cleaning",
        "Message 4: needs attention"
      ],
      "dashboard_url": "https://www.happyhearaudio.com/dashboard/events/7c1f3a2e-9b4d-4e61-8f0a-2d5c6b7e8a91"
    }
  }
}

Errors

Each of these comes back as a normal JSON-RPC result with isError: true and the message as its single text item. Arguments the schema rejects are a JSON-RPC -32602 error instead. See Errors for the HTTP-level refusals that happen before any tool runs.

MessageWhen
Could not read that event right now.A database read failed. Retry after a short wait.
No event with that id in your account.The id is not an event in the signed-in account, or the event was deleted.
Could not read the messages on that event right now.A database read failed. Retry after a short wait.

Limits

  • 60 requests per minute per operator across all actions, answered with HTTP 429 and a Retry-After header past that.
  • No daily cap. Read actions are not logged and not counted.

Worth knowing

  • all_audio_ready is true only when there is at least one message and none is cleaning or waiting. A needs_attention message does not block it.
  • Video messages never enter the audio pipeline, so they count separately.

See also