What Trodo stores for MCP
| Surface | Stored | Retention |
|---|---|---|
| OAuth client registrations | client_id, hashed client_secret, redirect_uris | until revoked |
| Auth codes | hashed | 60 seconds |
| Access tokens | hashed | 1 hour |
| Refresh tokens | hashed (rotation chain) | 30 days |
| API keys (direct) | hashed | until revoked |
| Per-token rate counters | hash + minute bucket | 2 hours, then pruned |
What gets sent to the AI client
For every tool call the response contains:- A short text summary (
content[0].text). - The structured projection of the tool’s data (
structuredContent) — same as your dashboard sees, minus internal fields like raw SQL or embeddings. - Hard cap of 80,000 characters per response. Larger payloads are truncated with a marker.
get_user_profile, find_users, get_user_journey, get_user_agent_runs) return:
distinct_id(often an email)primary_wallet_addressfirst_location_country,last_location_countrydevice_type,browser_name,os- session counts and timestamps
mcp:user:read_pii scope which is off by default. They are also subject to a per-team daily quota of 100 calls.
What the AI client does with the data
Once data leaves Trodo, it’s subject to the AI client’s data policy:- Claude.ai / Claude Desktop / Claude Code — processed by Anthropic. See Anthropic’s usage policy.
- Cursor — see Cursor privacy.
- Custom clients — your responsibility.
Disconnecting
- OAuth grants — Integrations → MCP → revoke the grant. Effective within 60 seconds.
- Direct API keys — Integrations → MCP → revoke the key. Effective within 60 seconds.