MCP Server
The GrowPanel MCP Server lets AI assistants like Claude.ai, ChatGPT, Claude Desktop, Cursor, and Windsurf access your subscription analytics through natural language. Ask "What's my current MRR?" or "Show me last quarter's churn by plan" directly in your AI client — the assistant talks to the GrowPanel API on your behalf.
It's built on the Model Context Protocol (MCP), an open standard for connecting AI assistants to external data sources.
What you can ask
Once connected, your AI assistant has access to 14 tools spanning analytics, customer data, settings, billing, team management, and more — plus a generic API passthrough so any new GrowPanel API feature is immediately available without updating the server.
A few realistic prompts:
- "What was my MRR in Q1, broken down by plan?"
- "Show me my top 20 customers by MRR."
- "Which customers churned in the last 90 days with more than $500 MRR?"
- "Pull the cohort retention matrix for customers who started in 2025."
- "Find subscribers in the EU on monthly billing — export that as CSV."
- "What's my current churn rate? How does it compare to last quarter?"
The full tool list is at the bottom of this page.
Quick start
There are three ways to connect, in order of ease:
- Claude.ai or ChatGPT (one-click OAuth) — paste a single URL, click Allow on the consent screen. No API key, no config files. Recommended for any client that supports remote MCP custom connectors.
- Hosted with API key — for clients that support remote MCP servers but require a Bearer token in the connector config (older versions, some IDEs).
- Self-hosted (local) — run the open-source
growpanel-mcp-serverpackage on your machine. Useful if your client only supports local stdio MCP, or if you want everything inside your own network.
All three options expose the exact same 14 tools.
Option 1 — Claude.ai or ChatGPT (one-click OAuth) — recommended
The hosted server at https://mcp.growpanel.io supports OAuth 2.1 with Dynamic Client Registration. From your point of view, that means: paste the URL, click Connect, log in to GrowPanel as you normally do, click Allow. Done.
Steps
- Open your AI client's connector settings:
- Claude.ai: claude.ai/settings/connectors → "Add custom connector"
- ChatGPT: Settings → Connectors → "Add custom connector"
- Paste the URL:
https://mcp.growpanel.io - Click Connect
- You'll be redirected to GrowPanel. If you're not already logged in, sign in with whatever method you normally use (Google, Microsoft, email/password)
- If you have access to multiple GrowPanel accounts, choose which one to connect
- Review the consent screen and click Allow
- You're redirected back to your AI client. Connected.
No API key, no client ID, no copy/paste of any credentials.
What the AI client can do
The connection grants the AI client access to your selected GrowPanel account on your behalf — same as if you'd generated an admin-level API key. It can read all reports, list and modify customers/plans/data sources, manage settings and integrations, and use the generic api_request tool to hit any endpoint.
If you have access to multiple GrowPanel accounts, your AI client will only have access to the one specific account you chose during the consent flow. To connect another account, repeat the flow — each grant becomes its own entry in your connections list.
Managing and revoking access
Visit Settings → Connections in GrowPanel to:
- See every AI client currently connected to your account, and which GrowPanel account each grant is scoped to
- See when each connection was created and last used
- Revoke a connection — the AI client loses access immediately and the underlying API key is deleted
You can also revoke from the AI client's side (e.g. delete the connector in Claude.ai) — both methods work; either way the underlying access is gone.
Verify it's working
In a new chat, ask:
Can you list the GrowPanel tools you have available?
Your assistant should respond with the 14 tools (get_report, list_customers, etc.). If it doesn't, see Troubleshooting.
Option 2 — Hosted with API key
For AI clients that support remote MCP servers but require a Bearer token in the connector config (some IDE plugins, older client versions). The hosted server lives at https://mcp.growpanel.io — give your AI client that URL plus your API key as a Bearer token.
Prerequisites
- A GrowPanel API key. Generate one in Settings → API Keys. Copy it — you'll need it in a moment.
Configure your client
Add a custom connector / remote MCP server with:
- URL:
https://mcp.growpanel.io - Authentication: Bearer token (header
Authorization: Bearer your-api-key-here)
The exact menu varies by client — look for "Connectors", "Custom MCP", "Remote MCP server", or similar in your AI client's settings.
For clients that only support local MCP (config file with command + args)
Use the mcp-remote bridge, which presents a remote MCP server as a local stdio server:
{
"mcpServers": {
"growpanel": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.growpanel.io",
"--header",
"Authorization:Bearer your-api-key-here"
]
}
}
}Save the file, restart your AI client, and you're connected. No GrowPanel-specific install — mcp-remote is a generic bridge maintained by the MCP community.
Option 3 — Self-hosted (local)
Run the open-source server locally. Requires Node.js 20 or newer (node --version; install from nodejs.org if missing).
Add the server to your client config
The fastest setup uses npx, which downloads and runs the server on demand — no install step needed.
{
"mcpServers": {
"growpanel": {
"command": "npx",
"args": ["-y", "growpanel-mcp-server"],
"env": {
"GROWPANEL_API_KEY": "your-api-key-here"
}
}
}
}Replace your-api-key-here with the API key you copied earlier. Save the file and restart your client.
Install globally (skip the npx download on each start)
If you'd rather have the server installed permanently:
npm install -g growpanel-mcp-serverThen change command from npx to growpanel-mcp and remove the args line:
{
"mcpServers": {
"growpanel": {
"command": "growpanel-mcp",
"env": {
"GROWPANEL_API_KEY": "your-api-key-here"
}
}
}
}Re-run npm install -g growpanel-mcp-server to update when a new version ships.
Run from source
For development or to inspect the code:
git clone https://github.com/growpanel/growpanel-mcp-server.git
cd growpanel-mcp-server
npm install
npm run buildThen point command at the local build path and provide the API key as before.
Available tools
The server exposes 14 tools. Your AI assistant decides which to call based on your question.
Analytics
| Tool | What it does |
|---|---|
get_report | Fetches any analytics report by name — mrr, summary, cohort, leads, cashflow, churn-scheduled, customer-concentration, and ~25 more. New reports added to the API work automatically. |
Customers and plans
| Tool | What it does |
|---|---|
list_customers | Lists customers with MRR, subscription status, plan, country, and other identifying metadata. |
get_customer | Detailed view of one customer, including current subscriptions and recent movements. |
resync_customer | Triggers a fresh data sync from the billing provider for one customer. |
list_plans | Returns all plans and plan groups. |
Data management
| Tool | What it does |
|---|---|
manage_data | Create, read, update, delete: customers, plans, plan groups, data sources, invoices. |
export_csv | Exports customers or MRR movements as a CSV file. |
Settings and integrations
| Tool | What it does |
|---|---|
manage_settings | Read or update account and integration settings (currency, churn recognition, Slack, HubSpot, etc.). |
manage_webhooks | List, create, verify, and delete webhook subscriptions. |
Account, billing, team
| Tool | What it does |
|---|---|
manage_account | Read or update your GrowPanel account record. |
manage_billing | Billing details, invoices, subscriptions, payment methods on your GrowPanel account. |
manage_team | List team members, invite new ones, edit roles, or remove access. |
manage_api_keys | List, create, update, or delete API keys. |
Generic passthrough
| Tool | What it does |
|---|---|
api_request | Call any GrowPanel API endpoint directly — method, path, params, body. New API features are available immediately without updating the MCP server. |
How it works
When you ask your AI assistant a question:
- The assistant decides which tool(s) to call.
- The MCP server — either the hosted one at
mcp.growpanel.ioor your local copy — receives the call with your authentication. - The server forwards an authenticated request to
api.growpanel.iowith the credentials for your selected GrowPanel account. - The response goes back to your AI assistant in a structured format.
- The assistant interprets the data and replies in plain language.
In hosted mode the server runs on GrowPanel's infrastructure (Cloudflare Workers, same account that hosts the rest of GrowPanel). In self-hosted mode it runs on your machine. Either way, your credentials only travel to GrowPanel — never to Anthropic, OpenAI, Cursor, or any other third party.
OAuth specifics (Option 1)
The hosted server implements OAuth 2.1 with PKCE (proof key for code exchange) and supports Dynamic Client Registration (RFC 7591), Protected Resource Metadata (RFC 9728), and Authorization Server Metadata (RFC 8414). That's why "Add custom connector" needs no manual config: your AI client auto-discovers the OAuth endpoints, registers itself, and walks you through the flow.
When you click Allow on the consent screen, GrowPanel issues your AI client an access token bound to one (user, account, client) triple. The token expires after 30 days; refresh tokens last 90 days and rotate on each use. The MCP server internally maps that token to a real GrowPanel API key for that account, so the rest of the API needs no changes.
Revoking a connection (via the Connections page or from the AI client's side) deletes both the OAuth token and the underlying API key.
Filtering and parameters
All tools accept the same filters and parameters as the GrowPanel REST API. Common ones:
| Parameter | Format | Example |
|---|---|---|
date | yyyyMMdd-yyyyMMdd (range) or yyyyMMdd (single) | date=20260101-20260331 |
interval | day, week, month, quarter, year | interval=month |
region | Region key or country code | region=europe |
plan | Plan id | plan=plan_pro |
currency | ISO 4217 lowercase | currency=usd |
Multi-value OR depends on the filter:
region(which accepts both region keys and country codes) is space-separated, e.g.region=gb+fr(+is URL-encoded space) orregion=europe+us.- All other filters (
plan,billing_freq,currency,custom_<name>, etc.) use~~, e.g.plan=pro~~enterprise.
Multi-filter AND just uses separate keys.
You don't need to remember these — your AI assistant will translate natural language ("last quarter for EU customers") into the correct parameters.
Troubleshooting
OAuth flow: "No GrowPanel account access"
You're logged in but your user has no GrowPanel accounts. Check that you've completed signup and joined or created an account at app.growpanel.io, then retry.
OAuth flow: stuck on the GrowPanel app after login
If clicking Connect sends you to GrowPanel and you end up on the dashboard instead of returning to your AI client, the OAuth intent cookie didn't propagate. Try the flow once more — it should pick up automatically. If it persists, sign out of GrowPanel completely, then start the connector flow fresh.
Tool calls return "401 Unauthorized" after connecting
Your access token has expired or been revoked. Disconnect the connector in your AI client and reconnect — that triggers a fresh OAuth flow.
"growpanel-mcp not found" or "command not found" (self-hosted)
You're using the global install but Node's binary directory isn't on your PATH. Either switch to the npx config above (recommended), or run npm bin -g to find the path and add it to your shell's PATH.
Server connects but the AI client can't see tools
- Restart your AI client completely. Some clients only re-read MCP config on full restart, not on reload.
- Check the config file syntax. A missing comma or quote in your client's MCP config silently breaks all MCP servers. Paste it through a JSON validator if unsure.
- Check your client's MCP logs. Most AI clients write MCP server logs to a known location — search the client's docs for "MCP logs". The log shows whether the server connected and which method calls failed.
Hosted server with API key: "401 Unauthorized" from mcp.growpanel.io
The Bearer token isn't reaching us, or it's invalid:
- Test the URL with curl:
A 200 response with a list of tools means the URL and key both work — the issue is in your client's connector config.curl -X POST https://mcp.growpanel.io \
-H "Authorization: Bearer your-api-key-here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' - For
mcp-remote-bridged clients, double-check the--headerargument has no extra spaces around:.
Self-hosted authentication errors ("401 Unauthorized")
Your API key isn't being read or is invalid:
- Make sure the key is set under
envin the config, not somewhere else. - Verify the key works by testing with
curl:curl -H "Authorization: Bearer your-api-key-here" \
https://api.growpanel.io/v2/account - Generate a fresh key at Settings → API Keys if needed.
"Node version too old" (self-hosted)
The server needs Node 20+. Check with node --version. If you have an older version, update via nodejs.org or use a version manager like nvm.
npx is slow on first run (self-hosted)
That's normal — npx downloads the package the first time. Subsequent starts use the cached copy and are instant. If you find this annoying, switch to the global-install option.
Tools return empty results
Check the date range. Many GrowPanel reports default to a recent window; if your account's data is historical, ask your assistant to widen the range explicitly ("for all of 2025" rather than "for the last 30 days").
Still stuck
Use the support widget on this site, or reach out at [email protected]. Include your AI client name, the exact error, and a snippet of your config (with credentials redacted).
Security
- Credentials only travel between you, GrowPanel, and (in hosted mode)
mcp.growpanel.io— never to Anthropic, OpenAI, Cursor, or any other third party. The hosted MCP server is a thin protocol adapter operated by GrowPanel; it forwards your authentication toapi.growpanel.ioper request. - OAuth (Option 1) issues per-grant tokens. Each AI client gets a separate token scoped to one specific GrowPanel account. Tokens rotate (refresh tokens live 90 days, access tokens 30 days). Revoking a connection from Settings → Connections deletes both the OAuth token and the underlying API key the server held on your behalf.
- API keys (Options 2 and 3) are scoped to your account. Use a read-only key (Settings → API Keys → role: Read-only) if you only need to query data without making changes.
- Rotate keys periodically. If you suspect an API key has been exposed, revoke it in Settings → API Keys and generate a new one.
- Self-hosted mode keeps everything local. If even the hosted relay is too much exposure, run the local server — your key never leaves your machine.
Source code
The MCP server is open source: github.com/growpanel/growpanel-mcp-server. Issues and PRs welcome.
Related
- REST API documentation — full reference for the underlying API
- Authentication — API key creation and scoping
- GrowPanel CLI — the command-line equivalent if you'd rather script directly