MCP Server
FitSignal is a product-market fit measurement platform with a hosted MCP (Model Context Protocol) server. Connect any MCP client — Claude, Cursor, VS Code — and query your PMF data in natural language.
Connection
The FitSignal MCP server is hosted — there is nothing to install or run yourself.
| Endpoint | https://www.fitsignal.com/api/mcp |
| Transport | Streamable HTTP |
| Authentication | API key (Bearer) |
| Coverage | Full parity with the REST v1 API |
Authentication
The MCP server uses the same API keys as the REST v1 API. Create a key at Dashboard → Settings → API keys (starts with fs_live_ or fs_test_). The key needs the API scope.
Send the key in the Authorization header:
Authorization: Bearer fs_live_your_keyThe X-FitSignal-Key: fs_live_your_key header also works if your client cannot set an Authorization header.
Client Setup
Configuration for the most common MCP clients. In each snippet, replace fs_live_your_key with your own API key.
Claude Code
Add the server from your terminal:
claude mcp add --transport http fitsignal https://www.fitsignal.com/api/mcp --header "Authorization: Bearer fs_live_your_key"Claude Desktop / claude.ai
Custom connectors need OAuth
The claude.ai and Claude Desktop connector settings only support OAuth, and the FitSignal MCP server is API-key only today (OAuth support is planned). Until then, use Claude Code above — or bridge Claude Desktop through mcp-remote below.
Claude Desktop can connect via the mcp-remote bridge in claude_desktop_config.json:
{
"mcpServers": {
"fitsignal": {
"command": "npx",
"args": [
"mcp-remote",
"https://www.fitsignal.com/api/mcp",
"--header",
"Authorization: Bearer fs_live_your_key"
]
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"fitsignal": {
"url": "https://www.fitsignal.com/api/mcp",
"headers": {
"Authorization": "Bearer fs_live_your_key"
}
}
}
}VS Code
Add to .vscode/mcp.json:
{
"servers": {
"fitsignal": {
"type": "http",
"url": "https://www.fitsignal.com/api/mcp",
"headers": {
"Authorization": "Bearer fs_live_your_key"
}
}
}
}ChatGPT
Not supported yet
ChatGPT connectors require OAuth; the FitSignal MCP server is API-key only today. OAuth support is planned.
Available Tools
Every tool maps 1:1 to a REST v1 endpoint, with the same inputs and outputs.
| Tool | REST equivalent | Description |
|---|---|---|
| fitsignal_list_customers | GET /v1/customers | List customers with filters and pagination |
| fitsignal_get_customer | GET /v1/customers/:id | Get one customer by id or externalId |
| fitsignal_create_customer | POST /v1/customers | Create or update a customer (upsert by email) |
| fitsignal_update_customer | PATCH /v1/customers/:id | Update customer fields |
| fitsignal_delete_customer | DELETE /v1/customers/:id | Soft-delete a customer |
| fitsignal_bulk_upsert_customers | POST /v1/customers/bulk | Upsert up to 100 customers |
| fitsignal_list_surveys | GET /v1/surveys | List surveys in the project |
| fitsignal_get_survey | GET /v1/surveys/:id | Survey with questions and settings |
| fitsignal_send_survey | POST /v1/surveys/:id/send | Email invitations to up to 100 customers (paid plans) |
| fitsignal_list_responses | GET /v1/responses | List responses (lean rows; include_answers opt-in) |
| fitsignal_get_response | GET /v1/responses/:id | One response with full answers |
| fitsignal_get_pmf_score | GET /v1/analytics/pmf | PMF score, distribution, confidence, 40% benchmark |
| fitsignal_get_pmf_trends | GET /v1/analytics/trends | PMF score over time (weekly/monthly) |
Clients discover tools automatically at connect time, so the list may grow without any configuration changes on your side.
Example Prompts
Once connected, try asking your MCP client things like:
- "What's our PMF score trending this quarter?"
- "Which customers answered 'very disappointed' last month?"
- "Add jane@acme.com to FitSignal and send her the onboarding survey."
- "How many responses came in through the widget vs email?"
- "Summarize the answers from last week's responses."
- "List surveys that are still collecting responses."
Rate Limits
The MCP server shares one rate limit pool with the REST v1 API: 100,000 requests per hour per API key, measured over a sliding window. REST calls and MCP tool calls draw from the same budget — an agent making many tool calls draws down the same allowance as your REST integration.
Every response includes the standard headers:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Total requests allowed in the window |
| X-RateLimit-Remaining | Requests left in the current window |
| X-RateLimit-Reset | When the window resets |
Troubleshooting
401 Unauthorized
- The
Authorizationheader is missing or malformed — it must be exactlyBearer fs_live_your_key - The key has been revoked
- The key lacks the API scope
429 Too Many Requests
You are over the hourly window. Back off until the time in the X-RateLimit-Reset header before retrying.
Tools not appearing
- Check the exact URL:
https://www.fitsignal.com/api/mcp - The transport must be HTTP (Streamable HTTP), not SSE
- Restart the client after config changes