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 a topic (plain words about what you built or changed) or a commit_sha from the GitHub repo connected in growth-loop, exactly one. Optional format (update, launch, feedback, milestone, story), note (your own words, the only source of personal details) and must_include (links or phrases kept verbatim). Returns the draft id, text and share link.
  • list_posts — recent posts with id, status, text and links. Optional limit.
  • 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