⭐ Start here — MCP is the recommended way for an agent to read live activity. If your agent can’t speak MCP, there’s an optional REST API that returns the exact same data — but reach for MCP first. You never need both.
🔌 Connect to the server
| Endpoint | https://event-connector-luda.onrender.com/mcp/ |
| Transport | Streamable HTTP — the transport your client must select |
| Auth | Authorization: Bearer YOUR_UNKEY_TOKEN |
YOUR_UNKEY_TOKEN is the same Unkey token from your Quickstart product registration.
- Invalid or missing token → the tool call fails with “Invalid or missing API key”.
- Token valid but scoped to another product → it fails with “API key does not match product_id”. The key’s
external_idmust equal theproduct_idyou pass to the tool, so a key for product A can’t read product B.
🛠️ The get_live_user_activity tool
The server exposes one tool today.
Parameters
| Parameter | Type | Default | Meaning |
|---|---|---|---|
product_id | string | — | Your Autoplay product id (YOUR_PRODUCT_ID). Must match the Bearer key’s external_id. |
user_id | string | — | The stable user identifier — the same id you pass to posthog.identify(...). See the identity note below. |
limit | integer | none | Max recent actions to return. Omitted or <= 0 falls back to the configured cap (50). |
actions ordered oldest → newest:
type, title, description, timestamp_start, timestamp_end, raw_url, canonical_url, and index. (The user_id lives on the envelope, not inside each action.)
🤖 Connect any MCP client
Point any MCP client at the server with the Streamable HTTP transport and the Bearer header. Exact config keys vary by client, but the three values are always the same — URL, transport,Authorization header. A typical client config looks like:
Test it with the MCP Inspector
The quickest way to confirm the server is reachable and your token works:- Set Transport Type to Streamable HTTP.
- Set URL to
https://event-connector-luda.onrender.com/mcp/. - Under request headers, add
Authorization=Bearer YOUR_UNKEY_TOKEN. - Click Connect. The
get_live_user_activitytool appears in the tool list. - Call it with a real
product_idand auser_idyou’ve identified — you should get the activity envelope back.
💬 Using it with Intercom Fin
Intercom Fin is one MCP client among many. To wire Fin to this server (and set up the Messenger JWT identity verification Fin needs to pass a trusteduser_id), follow the dedicated recipe:
See the Intercom Fin recipe for the full Fin setup — data connector, this MCP server, and the Messenger JWT identity step.
Identity — the user_id must match
This is the linchpin everywhere activity is read. The store keys activity by user_id, so a client only gets useful results when it asks for the same user_id that activity was stored under — the id you pass to posthog.identify(...) in your frontend.
For agents that carry their own user identity (like Fin behind Intercom’s Messenger JWT), make sure that verified identity equals the PostHog identify id. See the identity guidance in the Fin recipe and the “identity must match across all three layers” note in the Quickstart.
Retention — this is short-lived “live” memory, not an archive:
- 24-hour TTL (
ACTIVITY_TTL_S=86400) — activity older than a day expires. - 50 actions max per user (
ACTIVITY_MAX_EVENTS=50) — older ones are trimmed.