MCP Quickstart
Use this path when the caller is an AI agent, not your own backend. The MCP server exposes Clocktower protocol tools so an agent can discover subscriptions, inspect accounts, and request prepared transactions through a standard tool interface.
Connect any MCP-compatible client to mcp.clocktower.finance. Access uses the same free rate limits and optional developer API keys (ctk_…) as REST — see REST authentication and rate limits. Protocol tools take optional chainId (default Base). See MCP chain selection.
Endpoint
https://mcp.clocktower.finance
The client connects to the subdomain root — no /mcp path suffix.
Requirements
- MCP-compatible client with Streamable HTTP (or equivalent) transport
- Optional developer API key (
ctk_…) for higher limits - Wallet for signing prepared transactions
Add the server
Point your MCP client at the endpoint. Example config used by many clients (free tier):
{
"mcpServers": {
"clocktower": {
"url": "https://mcp.clocktower.finance"
}
}
}
To use a developer key, add "headers": { "Authorization": "Bearer ctk_…" } on that server entry. Then list tools (your client will show names such as get_protocol_state and search_subscriptions) and call them with the JSON arguments below.
Example: read protocol state
Tool: get_protocol_state
{ "chainId": 8453 }
Tool: list_chains
{}
Tool: search_subscriptions
{ "first": 10 }
Example: read subscription
Tool: get_subscription
{ "id": "0x..." }
Create a subscription
amount is a human-readable token string (e.g. "10"), not protocol wei.
frequency is 0 weekly, 1 monthly, 2 quarterly, 3 yearly.
details.url and details.description may be empty strings.
Tool: prepare_create_subscription
{
"from": "0xProviderAddress",
"amount": "10",
"token": "0x...",
"details": { "url": "https://example.com/", "description": "Premium" },
"frequency": 1,
"dueDay": 15
}
Subscribe
Tool: prepare_subscribe_by_id
{
"from": "0xYourAddress",
"id": "0x...",
"readinessOnly": true
}
Full prepare returns unsignedTransactions, signingMode, instructions, and requestId. Sign and broadcast from your wallet, then:
Tool: get_transaction_status
{ "txHash": "0x..." }
Write workflow
check_*_readiness (optional) → prepare_* → sign → broadcast → get_transaction_status
See MCP write workflow and Subscribe workflow.