Integrations
Connect to Claude.ai
Tandem connects to Claude.ai as an MCP (Model Context Protocol) server. Once connected, you can manage your entire book of business through natural language — no tab switching, no copy-pasting.
What you can do
Ask Claude things like:
- "Show me my Acme plan" — pull the full plan including phases, milestones, tasks, and stakeholders
- "What are my biggest risks this week?" — search signals across your entire portfolio and surface critical blockers
- "Create a plan for Globex — 500-person SaaS, 6-month implementation" — spin up a new plan in seconds
- "Mark the SCIM provisioning task complete on Acme and add a security review milestone" — update plans directly from your conversation
- "What's on my brief today?" — get your daily morning brief with key items, risks, and recommended actions
- "Add Dev Kulkarni as a stakeholder on the Acme plan — he's the IT lead" — manage stakeholders without leaving Claude
Why it matters
Works in any conversation. No context switching. Ask Claude about your accounts while drafting emails, prepping for QBRs, or analysing data.
Full portfolio awareness. Claude can see all your plans, risks, and signals — and reason across your entire book of business.
Actions, not just answers. Claude can create plans, complete tasks, add stakeholders, and log notes — directly from the conversation.
Set up in 3 steps
SS-027 · Settings Claude Connector page with MCP URL and setup steps
-
Open Claude.ai Settings → Connectors (or Integrations)
Click "Add connector" and paste your MCP Server URL. You can find the URL in Tandem at Settings → Claude Connector. -
Authorise Tandem
You'll be redirected to Tandem to approve access. Sign in if needed, then click "Allow access". -
Start a conversation
Claude now has access to your plans in every conversation. Try "show me my plans" to start.
Your MCP server URL is: https://www.tandemplan.xyz/api/mcp
SS-028 · Claude.ai conversation showing Tandem tool response
Available tools
| Tool | Description | Scope |
|---|---|---|
list_plans | List all your plans with status, health, and key timestamps | read |
get_plan | Full plan detail — phases, tasks, stakeholders, signals, health | read |
search_signals | Search risks/alerts/opportunities; filter by plan, severity, rule, date | read |
get_portfolio_summary | Single-call portfolio rollup — health/status counts, signals, overdue tasks, upcoming go-lives | read |
get_morning_brief | Today's pre-generated brief — curated items and recommended actions | read |
create_plan | Create a new customer success plan | write |
update_plan_metadata | Update account, go-live date, lifecycle status, or health | write |
archive_plan | Soft-delete a plan (reversible via restore_plan) | write |
restore_plan | Return an archived or completed plan to active | write |
add_phase | Add a phase to a plan | write |
add_milestone | Add a milestone to a phase | write |
update_milestone | Update milestone fields | write |
add_task | Add a task to a milestone | write |
update_task | Update task fields | write |
complete_task | Mark a task done (records who and when) or reopen it | write |
add_stakeholder | Add a stakeholder to a plan | write |
update_stakeholder | Update stakeholder details | write |
dismiss_signal | Dismiss a signal (reversible — sets dismissed_at, doesn't delete) | write |
log_note | Add a free-form note to a plan's activity log | write |
Plan status vs. health
update_plan_metadata exposes two independent fields:
status— lifecycle state, set explicitly by you. One ofactive,complete,archived. Controls whether a plan appears in the active portfolio or the archived list.health— the CSM traffic light, your assessment of how the engagement is going. One ofhealthy,watch,at_risk,unset. An active plan can beat_risk; passunsetto clear a previously-set health.
Both fields are optional and can be updated together. Examples:
- "Mark Acme as at-risk" →
update_plan_metadata(plan_id='…', health='at_risk') - "Archive the Globex plan" →
archive_plan(plan_id='…') - "Wrap Acme up — complete and back to healthy" →
update_plan_metadata(plan_id='…', status='complete', health='healthy')
Example prompts
| Ask Claude | Tool used |
|---|---|
| "What's the state of my portfolio?" | get_portfolio_summary |
| "What's at risk this week?" | search_signals(severity='critical', since='…') |
| "What's on Globex?" | get_plan(account_name='Globex') |
| "Set Acme to at-risk" | update_plan_metadata(health='at_risk') |
| "Archive the Stark plan" | archive_plan |
| "Dismiss the stale-health signal on Acme" | dismiss_signal |
| "Add a security review milestone to Acme's onboarding phase" | get_plan → add_milestone |
| "What's on my brief today?" | get_morning_brief |
Tool naming conventions
list_*/get_*— read operationssearch_*— filtered/paginated readscreate_*— new top-level entities (plans, etc.)add_*— new child entities (phase, milestone, task, stakeholder)update_*— modify an existing entity in placecomplete_*/archive_*/restore_*/dismiss_*— reversible state transitions
What's UI-only (not exposed via MCP)
Some operations are intentionally available only in the Tandem UI to prevent destructive AI-mediated mistakes:
- Hard delete of plans, phases, milestones, tasks, or stakeholders. Use
archive_plan(reversible) when the user wants a plan out of their active list. - Reordering of phases/milestones — low-stakes but adds little value via natural-language interfaces.
- Reviews and exports — generated through dedicated UI flows.
If a user asks for one of these, point them to the Tandem UI rather than attempting a workaround.
Security & privacy
- OAuth 2.1 with PKCE — standard secure authorisation, no passwords shared
- Tokens expire after 1 hour and rotate on refresh
- All tool calls are logged to your plan activity feed
- Revoke access at any time from Settings → Claude Connector
- Rate limited: 200 read calls / hour, 30 write calls / hour
Tandem only shares data from plans you own. Claude never sees your password.
Troubleshooting
Connection appears to fail after clicking "Allow access"
Make sure you're signed in to Tandem before starting the OAuth flow. If the connection shows as "expired" immediately, try disconnecting and reconnecting from Claude.ai.
Claude can't see my plans
Verify the connection is active at Settings → Claude Connector. If no active connections are listed, reconnect from Claude.ai.
Rate limit errors
Read operations are limited to 200/hour and write operations to 30/hour per user. When the limit is hit Tandem returns a structured 429 response so Claude can explain what happened and decide whether to wait:
{
"error": "rate_limit_exceeded",
"message": "You've used all 30 write operations this hour. Limit resets at … (NN minutes from now).",
"limit_type": "writes_per_hour",
"limit": 30,
"operations_used": 30,
"operations_remaining": 0,
"retry_after_seconds": NN,
"reset_at": "…"
}
If you hit limits frequently as a power user, contact support — trusted users can be granted higher caps.
Tool call fails with "Plan not found"
Ensure the plan name or ID you're referencing belongs to your account. Claude is scoped to your plans only.
Related
Was this helpful?
Last updated May 6, 2026