Docs ← Back to dashboard
Get API key

MCP Server

The MCP server lets an AI app that supports MCP find local businesses, run one search across many places, export the results, look up websites you already have and check your credits, all from a chat. It uses the same credits as the dashboard and the Prospecting API.


Server URL

url
https://showfirst.app/api/mcp

The server address is https://showfirst.app/api/mcp. It uses the Streamable HTTP transport. Every request is a POST.

Connect in claude.ai

  1. Open Settings, then Connectors, then Add custom connector.
  2. Paste the server URL, https://showfirst.app/api/mcp, and click Add.
  3. Click Connect. Sign in to ShowFirst and press Allow.

No API key is needed. After you sign in, Claude acts as your account and uses your credits.


Authentication

There are two ways to connect.

Sign in. ChatGPT, claude.ai and other apps that support MCP sign-in ask you to sign in to ShowFirst and press Allow. No API key is needed. The app then acts as your account.

API key. Other apps send your API key as a bearer token on every request:

text
Authorization: Bearer YOUR_API_KEY

Keys start with lgen_. To create one, open API Keys in your dashboard, type a name in the Key label box, and click + Create New Key. The full key is shown once. Treat it like a password: do not paste it into a shared file or a public repository.

A missing, unknown or revoked key, or an expired sign-in, gets 401. The 401 says where to sign in, so apps that support sign-in start it on their own.


Connect Claude Code

Run this in a terminal:

shell
claude mcp add --transport http showfirst https://showfirst.app/api/mcp --header "Authorization: Bearer YOUR_API_KEY"

Connect Claude Desktop

Open Settings, then Developer, then Edit Config. Add this to claude_desktop_config.json and restart Claude Desktop. It needs Node.js installed.

json
{
  "mcpServers": {
    "showfirst": {
      "command": "npx",
      "args": ["mcp-remote", "https://showfirst.app/api/mcp",
               "--header", "Authorization: Bearer YOUR_API_KEY"]
    }
  }
}

Connect Cursor

Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in one project:

json
{
  "mcpServers": {
    "showfirst": {
      "url": "https://showfirst.app/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Connect ChatGPT

In ChatGPT's settings, turn on developer mode and add a connector. Paste the server URL and choose OAuth as the authentication. ChatGPT opens ShowFirst; sign in and press Allow.


Tools

These find local businesses, the same searches as the Search and Campaigns tabs. Searches started from a chat show in those tabs too. A search or campaign holds lead credits while it runs, 1 for each business it may return; credits it does not use come back when it finishes. Call search_businesses and create_campaign without confirm first: nothing starts, and the reply says how many lead credits it would hold. The Prospecting API has the same operations over REST.

ToolWhat it doesCredits
check_creditsShows the credits left on your account.None
find_locationLooks up a city, county or state and returns its location_code.None
search_businessesFinds businesses of one kind in one place. Takes keyword, location_code or location as text, depth (100, 300, 500 or 700), optional radius_miles (10, 25, 50 or 100) and confirm. Returns a job_id.Holds depth lead credits (100, 300, 500 or 700). You pay 1 per business found that has a website or phone; the rest come back. Without confirm: none
search_statusShows a search's progress. Poll until status is completed, failed or no_results.None
get_resultsReturns a page of a finished search's businesses (offset, limit up to 100). Filters: has_website, has_email, has_phone, has_mobile_phone, has_verified_email.None
export_resultsReturns a finished search as CSV: simple, advanced, ghl, instantly or batch.None
create_campaignPlans one search across many places: keyword, location_codes or locations, depth_per_location, optional max_leads and name. With confirm: true it starts.Holds places × depth, or max_leads if lower. You pay 1 per business found that has a website or phone; the rest come back. Without confirm: none
start_campaignStarts a new campaign with the same fields, or resumes a paused one by campaign_id.Same as create_campaign. Resuming uses none
pause_campaignPauses a running campaign.None
stop_campaignStops a campaign for good. Businesses found so far stay available.None; unused credits come back
get_campaign_leadsShows a campaign's progress and a page of the businesses found so far. Each call also starts the campaign's next places, so a campaign only moves forward while something calls this.None new; the hold was placed at the start
export_campaignReturns a campaign's businesses as CSV, same formats as export_results.None
enrich_domainsLooks up 1 to 10 websites you already have: emails, phones, social links and a website check. Returns a job_id for search_status and get_results.1 per website, at most 10; any not used come back

Credits

The MCP server uses the same credits as the dashboard and the API. An invalid request does not use a credit. Ask the AI to tell you the credit cost before it starts anything that uses credits.

Errors

A tool that fails returns the same error message as the matching API route, for example You're out of lead credits. See the Prospecting API for the full list.

CodeMeaning
-32001The API key is missing, unknown or revoked, or the sign-in expired. Sent with HTTP 401.
-32602The tool name is unknown, or the tool is not available.
-32601The method is not supported.
-32700The request body is not valid JSON.