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

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_gallery_link",
    "arguments": {
      "event_id": "b84d2e07-5c3a-4f19-a6e2-91f0c3d7b2e4"
    }
  }
}

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_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.

json
{
  "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.

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.

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