Connector action
get_gallery_link
ReadIdempotent
Get the gallery link
The share link for one gallery, on the operator's own domain when it is verified, plus whether guests need a share code to open it. The code itself is never returned.
What the client is told
The description an MCP client receives from tools/list, word for word:
The share link for one event's gallery (your own domain when it is verified, otherwise the Happy Hear Audio one) and whether guests need a share code to open it. Never the code itself.
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_gallery_link",
"arguments": {
"event_id": "b84d2e07-5c3a-4f19-a6e2-91f0c3d7b2e4"
}
}
}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_gallery_link","arguments":{"event_id":"b84d2e07-5c3a-4f19-a6e2-91f0c3d7b2e4"}}}'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\":\"b84d2e07-5c3a-4f19-a6e2-91f0c3d7b2e4\",\"event_name\":\"Nguyen Wedding\",\"gallery_url\":\"https://audio.northlightbooths.com/g/nguyen-wedding\",\"share_code_required\":true,\"note\":\"Guests need the share code to open it. The code is shown only in your dashboard, never here.\",\"status\":\"active\",\"unlocked\":true,\"gallery_sent\":false,\"downloads_enabled\":true,\"dashboard_url\":\"https://www.happyhearaudio.com/dashboard/events/b84d2e07-5c3a-4f19-a6e2-91f0c3d7b2e4\"}"
}
],
"structuredContent": {
"event_id": "b84d2e07-5c3a-4f19-a6e2-91f0c3d7b2e4",
"event_name": "Nguyen Wedding",
"gallery_url": "https://audio.northlightbooths.com/g/nguyen-wedding",
"share_code_required": true,
"note": "Guests need the share code to open it. The code is shown only in your dashboard, never here.",
"status": "active",
"unlocked": true,
"gallery_sent": false,
"downloads_enabled": true,
"dashboard_url": "https://www.happyhearaudio.com/dashboard/events/b84d2e07-5c3a-4f19-a6e2-91f0c3d7b2e4"
}
}
}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. |
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
- This reads a link; it does not send the gallery. Delivery to the client still happens from the event page.
- The note field is present only when a share code is set.
See also
- The operator-facing description of this action: Get the gallery link.
- Machine-readable schema: tools.json.