MCP server · install guide
Connect growth-loop to your AI
Three steps: get a key, add the server to the tool you already use, ask for a post. After that your agent drafts, edits and publishes posts about what you ship — without leaving the editor.
Step 1 · Get your agent key
On the MCP page, copy any command — it mints an agent key (sk_live_*) and fills it into the command for you. Installing from this page instead? Replace sk_live_… in the snippets with your key.
The agent key can draft and publish posts, so keep it out of your website. The pk_live_* key in your site snippet is a different, public tracking key, and the MCP server refuses it.
Step 2 · Add the server — pick your tool
Cursor
On the MCP page → Cursor → “Add to Cursor”. It opens Cursor’s own install dialog with everything pre-filled — approve and done. (Under the hood it’s a cursor:// deeplink carrying the config below.)
Claude Code
One command in your terminal, any directory. Nothing is installed — Claude Code talks to the hosted server over HTTP, so Node and npm are not involved:
claude mcp add --transport http growth-loop https://api.growth-loop.dev/v1/mcp \ --header "Authorization: Bearer sk_live_…"
There is no one-click install link for Claude Code the way there is for Cursor — no claude:// scheme exists. The npm package @growth-loop/mcp-server still works if you prefer a local process; it reaches the same endpoint.
Claude Desktop
Settings → Developer → Edit Config opens claude_desktop_config.json. Add this and restart the app:
{
"mcpServers": {
"growth-loop": {
"command": "npx",
"args": ["-y", "@growth-loop/mcp-server"],
"env": {
"GROWTH_API_KEY": "sk_live_…",
"GROWTH_HOST": "https://api.growth-loop.dev"
}
}
}
}Config lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows.
claude.ai (web & desktop connectors)
No install at all — we host the server. In Settings → Connectors → Add custom connector, enter:
URL: https://api.growth-loop.dev/v1/mcp Authentication: Bearer Token Token: sk_live_…
growth-loop then shows up alongside Figma / Gmail / Drive in the connectors panel.
Step 3 · Ask for a post
Talk to it in plain words, anywhere the server is connected:
- “Draft a post about what I just shipped” → the agent sums up your change and calls
draft_post - “Make it shorter and keep the link” → calls
edit_post - “Publish it” → calls
publish_post, which posts to your connected Telegram channel - “What did I post this week?” → calls
list_posts
Drafts are written from your project brief and your past posts, in your voice. Nothing is invented: no numbers, quotes or stories beyond what you tell it. A draft is only a draft until you say publish.
Reference — everything the server exposes
draft_post— drafts a post from atopic(plain words about what you built or changed) or acommit_shafrom the GitHub repo connected in growth-loop, exactly one. Optionalformat(update, launch, feedback, milestone, story),note(your own words, the only source of personal details) andmust_include(links or phrases kept verbatim). Returns the draft id, text and share link.list_posts— recent posts with id, status, text and links. Optionallimit.edit_post— replaces the text of a saved post.publish_post— publishes a saved post to the Telegram channel connected on Promote & posts. With no channel connected it publishes nothing and says so.
The key belongs to one project and only reaches that project’s posts.
Troubleshooting
- Tools don’t appear — restart the client (Desktop needs a full restart after config edits). In Claude Code, check
claude mcp list. - 401 / unauthorized — the key is wrong, revoked, or a
pk_live_*tracking key. Mint an agent key on the MCP page and update the env / token. - “Not published” — no Telegram channel is connected yet. Connect one on Promote & posts and ask again.
- npx can’t find the package — needs Node 18+; check
node -v.
Pin a version
npx pulls the latest release every run. To pin the server so a new version never surprises you mid-session, install it and point your MCP config at the binary:
npm install -g @growth-loop/mcp-server@<version> which growth-mcp