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
{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| event_id | string (uuid) | Yes | The event id, as returned by search_events or create_event. |
Input schema as JSON Schema
{
"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
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_event_audio_status",
"arguments": {
"event_id": "7c1f3a2e-9b4d-4e61-8f0a-2d5c6b7e8a91"
}
}
}With curl
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.
{
"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.
| Message | When |
|---|---|
| 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
- The operator-facing description of this action: Check audio status on an event.
- Machine-readable schema: tools.json.