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.

Endpointhttps://www.fitsignal.com/api/mcp
TransportStreamable HTTP
AuthenticationAPI key (Bearer)
CoverageFull 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_key

The 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.

ToolREST equivalentDescription
fitsignal_list_customersGET /v1/customersList customers with filters and pagination
fitsignal_get_customerGET /v1/customers/:idGet one customer by id or externalId
fitsignal_create_customerPOST /v1/customersCreate or update a customer (upsert by email)
fitsignal_update_customerPATCH /v1/customers/:idUpdate customer fields
fitsignal_delete_customerDELETE /v1/customers/:idSoft-delete a customer
fitsignal_bulk_upsert_customersPOST /v1/customers/bulkUpsert up to 100 customers
fitsignal_list_surveysGET /v1/surveysList surveys in the project
fitsignal_get_surveyGET /v1/surveys/:idSurvey with questions and settings
fitsignal_send_surveyPOST /v1/surveys/:id/sendEmail invitations to up to 100 customers (paid plans)
fitsignal_list_responsesGET /v1/responsesList responses (lean rows; include_answers opt-in)
fitsignal_get_responseGET /v1/responses/:idOne response with full answers
fitsignal_get_pmf_scoreGET /v1/analytics/pmfPMF score, distribution, confidence, 40% benchmark
fitsignal_get_pmf_trendsGET /v1/analytics/trendsPMF 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:

HeaderDescription
X-RateLimit-LimitTotal requests allowed in the window
X-RateLimit-RemainingRequests left in the current window
X-RateLimit-ResetWhen the window resets

Troubleshooting

401 Unauthorized

  • The Authorization header is missing or malformed — it must be exactly Bearer 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