Example messaging agents
Poke

Orchid

Tomo

The expected flow
- Create your organization and OAuth client. Install the admin CLI, create your org, and register an OAuth client — that gives you your client ID and secret.
- Authenticate each user. Two ways, both ending in a per-user MCP credential:
- A browser moment is fine → hand them a Connect with Agentcard link in the conversation. They verify by email and approve once — you get their access and refresh tokens.
- Fully headless (phone-first) → use phone authentication: your organization session creates the cardholder and mints them a 30-day buy token; they prove the number with a one-time code in the chat.
- Implement the MCP server in your agent. Point your agent’s MCP client at the Agentcard MCP server and register every tool it advertises.
- Make requests with the user’s token. Each tool call carries that user’s credential (OAuth access token or buy token) — the cards your agent creates are isolated to your app and that user, funded from their own wallet.
Start from the template
imessage-agent-template
The open-source template for exactly this product: text a number, the agent shops and pays. Photon (spectrum-ts) transport, in-thread SMS-code sign-in (standard OAuth under your pinned client, no browser moment), and a Claude tool-use loop that binds every tool the MCP server advertises. The safety rails ship built in: the user’s token never reaches the model, card secrets are redacted, and money-moving tools hold until the user confirms. Clone it, add three env vars, text your agent.