MCP Server

Connect an agent to RepScale

The RepScale MCP server exposes 5 sales-research tools via the Model Context Protocol over HTTP. It runs at https://app.repscale.ai/api/mcp and authenticates via either OAuth 2.0 (recommended for end users) or an API key (recommended for backend agents and one-off scripts).

Quick start — Claude Desktop & other MCP clients

Most MCP clients can self-configure via OAuth. Add the server to your client's config using its URL — the client will discover authentication endpoints automatically and walk you through a sign-in + consent flow in your browser.

{
  "mcpServers": {
    "repscale": {
      "url": "https://app.repscale.ai/api/mcp"
    }
  }
}

On first call, the client will:

  1. Hit /api/mcp and receive a 401 with a discovery pointer
  2. Fetch /.well-known/oauth-protected-resource and the linked authorization-server metadata
  3. Register itself dynamically (RFC 7591) and open a browser tab for you to approve
  4. Exchange the auth code for an access token (PKCE / S256) and start calling tools

You can revoke the connection any time from Settings → Connected Agents.

Quick start — API key (programmatic agents)

For backend agents that don't have a browser, generate a long-lived API key. Same rate limits and quota as OAuth tokens; same tool surface.

  1. Go to Settings → API Keys and click Generate Key
  2. Copy the key (shown once)
  3. Send it as Authorization: Bearer rsk_live_… on every request to /api/mcp

Available tools

ToolWhat it doesCost
research_prospectGenerates a structured brief for a B2B prospect — company snapshot, recent business signals, leadership context, contact-level insights. Cached 7 days per prospect.1 of your daily research quota
get_recommended_angleReturns the recommended sales angle for a brief — hook, pain, proof.Free / cached
explain_confidenceExplains why a brief has its current confidence level and what would raise it.Free / cached
suggest_adjacent_researchSuggests follow-up research the agent might want to do next based on what's in the brief.Free / cached
cite_sourceReturns the source citation for a specific claim made in a brief — the URL, retrieval date, and quote.Free / cached

Call tools/listagainst the server for the full input schemas — they're always served fresh and machine-readable.

Rate limits & quota

MCP usage shares the same daily counter as the web app. A research call from Claude Desktop counts the same as one from the RepScale web UI.

OAuth 2.0 endpoints

Implements MCP 2025-06-18 authorization. PKCE is required (S256 only). Resource Indicators (RFC 8707) are required on both /authorize and /token.

Resource metadata:
  https://app.repscale.ai/.well-known/oauth-protected-resource

Authorization server metadata:
  https://app.repscale.ai/.well-known/oauth-authorization-server

Endpoints:
  POST /api/oauth/register   (RFC 7591 Dynamic Client Registration)
  GET  /api/oauth/authorize  (Clerk-gated consent + PKCE challenge)
  POST /api/oauth/token      (auth_code + refresh_token grants)

Scopes:        mcp:tools
Access TTL:    1 hour
Refresh TTL:   30 days (rotated on every use)

Errors

Tool errors return as JSON-RPC result envelopes (not JSON-RPC errors), so agents can program against them. Every error has the same shape:

{
  "error": "daily_limit_reached",
  "message": "Daily research cap reached (1 per day on the Free tier).",
  "suggested_fix": "Wait for the daily reset at midnight UTC, or upgrade to Pro.",
  "retryable": false
}

Auth failures return HTTP 401 with a WWW-Authenticate header pointing at the resource metadata. OAuth-specific subcodes (error="invalid_token") signal whether the client should refresh and retry vs re-run discovery from scratch.

Support

Stuck? Email software@tbfatl.com with the timestamp of the failing call and the structured error body — that's enough to find the request in the server logs.