Connect a client
You need a Postlyra API token. Create one under your profile, then API tokens. See Authentication.
Claude Code
claude mcp add --transport http postlyra https://mcp.postlyra.com \
--header "Authorization: Bearer YOUR_TOKEN"Check it connected:
claude mcp listThen, in a session:
> List my Postlyra brands.Claude calls list_brands and shows the brand ids. Keep the one you want, and mention it when a request could be ambiguous.
Any bearer-token client
The server speaks streamable HTTP MCP at the root of its host. Anything that can send an Authorization header works.
| Setting | Value |
|---|---|
| URL | https://mcp.postlyra.com |
| Transport | HTTP (streamable) |
| Header | Authorization: Bearer YOUR_TOKEN |
Optionally send X-Postlyra-Brand: <brand-id> to pin every call from that client to one brand, so you never have to pass the brand argument.
Confirm it works
Ask the agent to call list_brands. A correct response looks like:
{
"brands": [
{ "brand_id": "0f8fad5b-d9cb-469f-a165-70867728950e", "name": "My Brand" }
]
}If that works, everything else will.
Troubleshooting
Every call fails with an auth error. The token is wrong or revoked. Create a new one and re-add the server. Note that the token has to be a Postlyra token, not an Anthropic key.
"This account has N brands." Pass the brand argument, or set the X-Postlyra-Brand header on the connection. See Brands.
"No profile configured for this team yet." The brand has no content profile, so there is no voice or pillars to ground anything in. Create one in Studio first. See Content profiles.
A hosted connector (claude.ai, ChatGPT) will not add the server. Expected. Those need OAuth discovery this server does not advertise yet. Use a client that accepts a bearer token.