
Retain So
io.github.retain-soPublished by GitHub account retain-sov0.1.2Updated Oct 24, 2026
Model Context Protocol server for Retain: let AI agents query churn risk and act on retention.
Overview
Retain MCP server lets an AI assistant query churn risk, customer health, MRR at risk and alerts in Retain, and mark or archive alerts.
- What you can do
- Query at-risk customers by risk level, ordered by MRR, and pull a single customer's full profile by id or name. Read MRR at risk with active-alert counts by risk level, and list active alerts by priority with risk factors and outreach state. Summarize churn metrics: churn rate, MRR churned, expansion/contraction and net revenue retention. Act on alerts by marking one as contacted or archiving a resolved one (requires a read and write key).
- When to use it
- Useful for customer success, support or revenue teams already using Retain who want to ask an agent in natural language who is about to churn, how much MRR is at risk, and to log outreach without opening the dashboard.
- Requirements
- Runs locally via npx from the npm package @retain-so/mcp-server, so Node.js is needed. Requires a Retain agent key passed in the RETAIN_API_KEY environment variable, created under Settings → Agent keys; choose read for query-only or read & write to allow actions. Network access to the Retain API is required; RETAIN_API_URL can override the API base URL.
Installation
In SourceWeft
- Open Retain So in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Retain MCP Server
Let your AI agent see who is about to churn, and do something about it.
@retain-so/mcp-server connects Retain to any MCP client (Claude Code, Claude Desktop, Cursor, Windsurf, and friends). Ask in natural language which customers are at risk, pull a customer's full health profile, check MRR at risk, and log outreach, all without opening the dashboard.
Retain is an AI-first churn prevention and customer analytics platform. This server is the bridge between your agent and your Retain data.
What you can ask your agent to do
Read:
- "Which customers are at critical risk this week?"
- "Show me my high-risk customers ordered by MRR."
- "What's my total MRR at risk, broken down by risk level?"
- "Pull the full profile for Acme Inc."
- "List the active alerts I haven't contacted yet."
- "Summarize this month's churn metrics and net revenue retention."
Act (needs a read+write key):
- "Mark the alert for Globex as contacted."
- "Archive the resolved alert for Initech."
Setup (under 5 minutes)
- In Retain, go to Settings → Agent keys and create a key. Pick read for query-only, or read & write to let the agent take actions. Copy it (it is shown once).
- Add the snippet for your client below.
- Restart the client and ask your first question.
Claude Code
Claude Desktop (claude_desktop_config.json)
Cursor / Windsurf (.cursor/mcp.json or ~/.codeium/windsurf/mcp_config.json)
Tools
Coming soon: send_retention_email (trigger a templated retention email).
Example conversation
You: Who's about to churn and how much money is on the line?
Agent: (calls
get_mrr_at_risk, thenget_at_risk_customers) You have $4,200 MRR at risk across 7 active alerts. The two biggest are Acme Inc ($900, critical, 18 days inactive) and Globex ($650, high).You: I emailed Acme today, mark their alert as contacted.
Agent: (calls
mark_alert_contacted) Done. Acme's alert is now marked as contacted.
Configuration
Development
The server holds no business logic and no database. It only translates MCP tool calls into HTTP requests against Retain's public /agent/* API. Contributions and new tools are welcome.
License
MIT
Source: README.md at commit 627800e
Tools
0Version history
1- v0.1.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts