Usual Subagent
Usual Subagent is how your own AI agent runs your subscriptions: an MCP server built into Usual. Connect Claude, Cursor or any MCP client and your agent can look up subscriptions, explain what happened, handle a customer's cancel request, fix failed payments, and make changes, each one previewed first and recorded.
| Address | https://regular-subs.fly.dev/mcp (Streamable HTTP) |
| Sign-in | An Agent key from Usual → Developers, sent as Authorization: Bearer <key> |
Use an Agent key rather than an API key: agent keys always get a plan first, must say why, and need a person's approval for riskier or bigger changes (see Approvals). Give it only the permissions the job needs.
Claude Code
claude mcp add --transport http usual https://regular-subs.fly.dev/mcp \
--header "Authorization: Bearer $USUAL_KEY"Cursor
In ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"usual": {
"url": "https://regular-subs.fly.dev/mcp",
"headers": { "Authorization": "Bearer usk_..." }
}
}
}VS Code
In .vscode/mcp.json:
{
"servers": {
"usual": {
"type": "http",
"url": "https://regular-subs.fly.dev/mcp",
"headers": { "Authorization": "Bearer ${input:usual-key}" }
}
},
"inputs": [{ "id": "usual-key", "type": "promptString", "description": "Usual agent key", "password": true }]
}Claude Desktop and other clients
Clients that only run local servers can connect through mcp-remote:
{
"mcpServers": {
"usual": {
"command": "npx",
"args": ["mcp-remote", "https://regular-subs.fly.dev/mcp", "--header", "Authorization: Bearer ${USUAL_KEY}"],
"env": { "USUAL_KEY": "usk_..." }
}
}
}Connecting from Claude.ai or ChatGPT with a "sign in to your store" button is coming soon.
What your agent sees
The server tells the agent how to work when it connects, so you don't need to explain it. In short:
- Look things up with
get_overview,find_subscriptionsandget_subscription. - See what it may change with
list_commands: every command its key allows, with the input schema, risk and whether it can be undone. - Preview with
plan_change. Nothing changes yet. The plan says exactly what would change. - Apply with
apply_plan, after showing you the plan if you're there. If it needs approval, it tells you and waits; you approve it in Usual → Activity. - Explain or reverse with
list_activityandundo_change.
All the tools are listed in MCP tools.
Try asking
- "How are subscriptions doing this month? Anything broken?"
- "Which payments are failing, and why? Send card-update emails to the ones with expired cards."
- "Maria wants to cancel because she has too much coffee. What can we offer her?"
- "Pause every subscription for the Cold Brew Pack until the new batch arrives."
- "What changed yesterday, and who did it?"
- "We're moving from Recharge. Walk me through it."