Pular para o conteúdo

MCP Server

Enrichment inside your AI tools

Connect the SalesQL MCP to Claude, ChatGPT, Gemini or Cursor — authorize once, no key to paste — then prospect, reveal verified emails and check credits without leaving the chat.

Endpointhttps://mcp.salesql.com/mcp
TransportStreamable HTTP
AuthOAuth 2.1 — or an MCP key, if your client can't
Works in

Connect your client

Every client points at the same endpoint, and most of them can authorize themselves against it — you approve a consent screen and never handle a credential. An MCP key stays available under each client's advanced section, for tools that can't do OAuth. Jump to yours:

Claude

OAuth

The easiest path, and no key involved. Claude reaches the server from Anthropic’s cloud, so one connector works on claude.ai, the desktop app and Cowork — and in the mobile apps once it’s added.

  1. Click Add to Claude. It opens Customize → Connectors with the name and URL already filled in — check they read SalesQL and https://mcp.salesql.com/mcp, then click Continue. (By hand: Customize → Connectors → + Add → Add custom connector.)
    Claude’s Add custom connector dialog with the name SalesQL and the URL https://mcp.salesql.com/mcp already filled in, under a notice that the connector was suggested by an external link.
  2. Leave the detected sign-in settings — Sign in now and Register automatically — and click Add. There is no client ID, secret or key to fill in.
    The connector’s sign-in settings in Claude: Authentication set to Sign in now and OAuth client set to Register automatically, both marked Detected.
  3. On the SalesQL connector page that opens, click Connect.
    The SalesQL connector page in Claude, reading “You’re not connected to SalesQL yet”, with a Connect button.
  4. On the SalesQL consent screen, keep the permissions you want Claude to use and click Connect. You can revoke the access at any time from your SalesQL account.
    The SalesQL consent screen titled Connect Claude to SalesQL, with five permissions checked — account status, people search, emails, phones and email verification — and a Connect button.
  5. In a chat, open + → Connectors and make sure SalesQL is switched on.
    Claude’s + menu open on Connectors, with the SalesQL toggle switched on.

On Team and Enterprise, an Owner adds the connector once for everyone (Organization settings → Connectors → Add → Custom → Web); members then just click Connect on it under Customize → Connectors. Free plans can add one custom connector.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · Claude

Help me connect the SalesQL MCP server to Claude. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for Claude specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Only needed if you want a long-lived key instead of a connection you can revoke per client. Claude Desktop reads this file at startup; it bridges to the HTTP server through mcp-remote, which needs Node 18+.

Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "salesql": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://mcp.salesql.com/mcp",
        "--header", "Authorization: Bearer YOUR_MCP_KEY"
      ]
    }
  }
}

Check with node -v and which npx; a stale nvm default is the usual cause of "Server disconnected". Fully quit Claude (Cmd+Q) and reopen after editing.

ChatGPT

Web onlyOAuth

Add SalesQL as a custom MCP server from Plugins. Developer mode is no longer needed — ChatGPT shows a risk warning for each server instead.

  1. In ChatGPT on the web, open Plugins in the sidebar, click Add and choose Add custom MCP server.
    The Add menu on ChatGPT’s Plugins page, open on Add custom MCP server.
  2. Name it SalesQL, paste https://mcp.salesql.com/mcp under Connection and set Authentication to OAuth — there is no need to open Advanced OAuth settings. Tick I understand and want to continue, then click Create as a plugin.
    ChatGPT’s custom MCP server form: name SalesQL, server URL https://mcp.salesql.com/mcp, authentication OAuth, and the I understand and want to continue box ticked above Create as a plugin.
  3. Click Connect SalesQL. (In a Business or Enterprise workspace where an admin has already approved SalesQL, the button reads Continue to SalesQL.)
    ChatGPT’s Connect SalesQL dialog explaining how the app’s data is used, with a Connect SalesQL button.
  4. On the SalesQL consent screen, keep the permissions you want ChatGPT to use and click Connect.
    The SalesQL consent screen titled Connect ChatGPT to SalesQL, with five permissions checked and a Connect button.
  5. In a new chat, type @ (or click +) and pick SalesQL. Pick it again whenever a follow-up needs fresh data — the selection applies to one message.
    The ChatGPT composer with the tool picker open and SalesQL highlighted among the available apps.

Works on personal accounts — Free included — and in workspaces, on ChatGPT on the web only. In a Business or Enterprise/Edu workspace, only admins and owners can add one unless an admin grants you Create plugins with MCPs. Don’t see Plugins yet? Use Settings → Apps → Advanced settings → Developer mode, then Apps → Create.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · ChatGPT

Help me connect the SalesQL MCP server to ChatGPT. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for ChatGPT specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

If you would rather authenticate with a key, pick API key instead of OAuth when you add the server.

ChatGPT · custom MCP server
# Plugins → Add → Add custom MCP server
Name:  SalesQL
URL:   https://mcp.salesql.com/mcp
Auth:  Bearer YOUR_MCP_KEY

Claude Code

OAuth

One command, then authorize in the browser. Keep --transport http — it is the only transport that carries OAuth — and --scope user, so SalesQL is there in every project instead of just this folder.

Claude Code · terminal
claude mcp add --transport http --scope user salesql https://mcp.salesql.com/mcp
  1. Run the command above.
  2. Type /mcp inside Claude Code, pick salesql, and choose Authenticate.
    Claude Code’s /mcp panel for the salesql server: status needs authentication, URL https://mcp.salesql.com/mcp, and the Authenticate option selected.
  3. Approve the scopes in the browser tab that opens.

Already added SalesQL on claude.ai? If you sign in to Claude Code with that Claude account, the connector shows up there on its own. Tokens are stored securely and refresh by themselves; the same /mcp panel has Clear authentication when you want to disconnect.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · Claude Code

Help me connect the SalesQL MCP server to Claude Code. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for Claude Code specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Pass the key as a header instead of authorizing — useful in CI, or on a machine with no browser.

Claude Code · terminal
claude mcp add --transport http --scope user salesql \
  https://mcp.salesql.com/mcp \
  --header "Authorization: Bearer YOUR_MCP_KEY"

Codex

OAuth

Register the server once and sign in from the terminal. The Codex CLI, the IDE extension and the desktop app all read the same ~/.codex/config.toml, so this covers all three.

Codex · terminal
codex mcp add salesql --url https://mcp.salesql.com/mcp
codex mcp login salesql
  1. Run the first command to add SalesQL to ~/.codex/config.toml.
  2. Run codex mcp login salesql and approve the scopes in the browser tab that opens.
  3. Start a new Codex session — the SalesQL tools are available.

Prefer clicking? In the desktop app open Settings → MCP servers, or in the IDE extension the gear menu → MCP servers; choose Add server → Streamable HTTP, paste the URL, save and restart.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · Codex

Help me connect the SalesQL MCP server to Codex. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for Codex specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Read the key from an environment variable so it never lands in the config file.

Codex · ~/.codex/config.toml
[mcp_servers.salesql]
url = "https://mcp.salesql.com/mcp"
bearer_token_env_var = "SALESQL_MCP_KEY"

Then export SALESQL_MCP_KEY=YOUR_MCP_KEY in the shell that starts Codex.

Cursor

OAuth

Point Cursor at the endpoint and let it handle the handshake — OAuth 2.1 with PKCE, registering itself as it goes.

Cursor · ~/.cursor/mcp.json
{
  "mcpServers": {
    "salesql": {
      "url": "https://mcp.salesql.com/mcp"
    }
  }
}
  1. Add the block above to ~/.cursor/mcp.json — or .cursor/mcp.json to scope it to one project.
  2. Open Customize → MCPs (in Cursor before 3.9: Settings → MCP) and click Connect next to salesql.
  3. Approve the scopes in the browser.

No client ID or secret to fill in: the server registers Cursor dynamically.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · Cursor

Help me connect the SalesQL MCP server to Cursor. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for Cursor specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Header auth, for a machine that can’t open a browser.

Cursor · ~/.cursor/mcp.json
{
  "mcpServers": {
    "salesql": {
      "url": "https://mcp.salesql.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_MCP_KEY" }
    }
  }
}

VS Code

OAuth

For GitHub Copilot agent mode. VS Code notices the server wants OAuth and opens a browser to sign you in — the file holds no secret, so you can commit it.

VS Code · .vscode/mcp.json
{
  "servers": {
    "salesql": {
      "type": "http",
      "url": "https://mcp.salesql.com/mcp"
    }
  }
}
  1. Save the block above as .vscode/mcp.json — or run MCP: Add Server from the Command Palette, choose HTTP and paste the URL.
  2. Start salesql from MCP: List Servers, or just ask Copilot for a SalesQL tool.
  3. Approve the scopes in the browser window VS Code opens. The sign-in then lives in the Accounts menu.

Because there is no key in it, this file is safe to commit — every teammate authorizes with their own SalesQL account.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · VS Code

Help me connect the SalesQL MCP server to VS Code. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for VS Code specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Header auth works too, but it puts a live credential in a file people commit by accident.

VS Code · .vscode/mcp.json
{
  "servers": {
    "salesql": {
      "type": "http",
      "url": "https://mcp.salesql.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_MCP_KEY" }
    }
  }
}

Gemini CLI

OAuth

Add the server with one command, then authorize once from inside the CLI. No token in your settings file.

Gemini CLI · terminal
gemini mcp add --transport http --scope user salesql https://mcp.salesql.com/mcp
  1. Run the command above. It writes the server to ~/.gemini/settings.json (without --scope user, only to this project).
  2. Run /mcp auth salesql inside the CLI.
  3. Approve the scopes in the browser.

Gemini CLI discovers the OAuth endpoints from the server itself. Tokens are cached in ~/.gemini/mcp-oauth-tokens.json and refreshed automatically — re-run /mcp auth if they ever expire.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · Gemini CLI

Help me connect the SalesQL MCP server to Gemini CLI. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for Gemini CLI specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Send the key as a header instead. Anything in this file is stored in plain text, so prefer OAuth on a shared machine.

Gemini CLI · ~/.gemini/settings.json
{
  "mcpServers": {
    "salesql": {
      "httpUrl": "https://mcp.salesql.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_MCP_KEY" }
    }
  }
}

Perplexity

Pro & upOAuth

Add SalesQL as a custom remote connector and let Perplexity discover the rest.

  1. Open Plugins in the sidebar (older layout: Customize → Connectors), then Add custom → Connector → Add MCP connector, and choose Remote.
  2. Name it SalesQL, paste https://mcp.salesql.com/mcp as the MCP Server URL, and set Authentication to OAuth and Transport to Streamable HTTP.
  3. Tick the acknowledgement and click Add.
  4. Click the SalesQL card to sign in and approve the consent screen.

Leave Client ID and Client Secret empty — the server supports dynamic registration, so Perplexity registers itself. Remote connectors need a Pro, Max or Enterprise plan; on Enterprise an admin may have to allow custom connectors first.

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · Perplexity

Help me connect the SalesQL MCP server to Perplexity. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for Perplexity specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Choose API key instead of OAuth when you add the connector.

Perplexity · connector
# Plugins → Add custom → Connector → Add MCP connector → Remote
Name:  SalesQL
URL:   https://mcp.salesql.com/mcp
Auth:  Bearer YOUR_MCP_KEY

Any client

OAuth

Any client that speaks Streamable HTTP and the MCP authorization spec can connect unaided: the server publishes its own metadata and accepts dynamic client registration, so there is nothing to pre-register and no secret to exchange.

Any MCP client · OAuth
Endpoint:   https://mcp.salesql.com/mcp
Transport:  Streamable HTTP
Auth:       OAuth 2.1 — authorization code + PKCE (S256)
Discovery:  https://mcp.salesql.com/.well-known/oauth-protected-resource/mcp

Or let your assistant do it

Paste this in and it will walk you through authorizing, then read your plan and credits back so you know the connection works.

Connect prompt · Any client

Help me connect the SalesQL MCP server to Any client. The server URL is https://mcp.salesql.com/mcp and it uses OAuth, so there is no API key to paste anywhere. Walk me through it step by step for Any client specifically, including where to approve the SalesQL consent screen. When it reports connected, call get_account_status and read back my plan, remaining credits and next refresh date so we know the connection really works. Then run one free search_people query as a smoke test — don't spend credits.

Manual setup with an MCP key (advanced)

Or send a key on every request.

Any MCP client · Streamable HTTP
Endpoint:  https://mcp.salesql.com/mcp
Header:    Authorization: Bearer YOUR_MCP_KEY

Prompt library

Copy a playbook, or open it straight in your assistant. Searching is free, so most of these start by shaping a list before spending a single credit.

Build an ICP

"Here is my website: acme.com. Propose an ideal customer profile — job titles, industries, company sizes and countries — then resolve those filters with lookup and show me how many people match."

Search then enrich

"Find 25 Heads of Talent at software companies with 51–200 employees in Spain who have a verified work email. Show them first, and only enrich the ones I pick."

Map a team

"Map the marketing team at acme.com — group them by job title, most senior first. Enrich only the top two."

Size before spending

"How many VPs of Sales are there in fintech companies in Germany with 201–500 employees and a direct phone on file? Just the count and a sample — don’t spend credits yet."

Tenure signals

"Find RevOps leaders who started their current role less than 12 months ago at US SaaS companies — new leaders are the ones changing tools."

Alumni play

"Find people who used to work at Stripe and are now heads of engineering somewhere else in Europe."

Enrich & write

"Enrich linkedin.com/in/jane-doe and draft a short intro email in my voice."

Find a dial

"Find the direct dial and verified email for Acme's VP of Marketing."

Bulk list

"Enrich these 40 LinkedIn URLs with verified emails and export as CSV."

Company intel

"Enrich acme.com — give me size, industry and the key decision-makers."

Reverse email

"Who is behind jane.doe@acme.com? Give me their full name, title, company and LinkedIn."

Credits

"How many enrichment credits do I have left this month, and when do they refresh?"

Available tools

Person enrichment consumes credits. Searching, company enrichment and account checks are free, so you can search and size a list before spending anything:

lookupsearch_peopleenrich_organizationenrich_organization_bulkget_account_status
Tool What it does Cost
lookupResolve the exact filter values (company_size, company_type, industry, country, region) that search_people expects. Always pass the returned `value`, never the human-readable `label`.Free
search_peopleProspect for people by job title, industry, location, company and contact availability. Pass at least one filter — an empty request is rejected. Emails and phones come back obfuscated, so you can size and refine a list before spending anything — enrich a match with its linkedin_url to reveal the real contact data.Free
enrich_personReveal a contact’s work email, phone, job title, company and LinkedIn. Prefer a LinkedIn URL; otherwise name + company.1 credit
enrich_person_bulkEnrich up to 100 people in a single request. Each item takes a LinkedIn URL, an email, or a name + organization.1 credit
enrich_organizationEnrich a company: domain, industry, size, location, logo and LinkedIn. Prefer a LinkedIn URL, then a domain, then a name.Free
enrich_organization_bulkEnrich up to 100 companies in a single request. Each item takes a LinkedIn URL, a domain, or a name.Free
get_account_statusReturn the current plan, available credits, next refresh date, role and rate limits for the authenticated key.Free

Scopes

One list, two ways of granting it: an OAuth connection asks you to approve scopes on the consent screen, and an MCP key carries the ones you tick when you create it. Approve only what the client needs — searching and enrichment are separate grants. The enrichment tools accept either enrich scope; the one you grant decides whether emails, phones or both come back. verify:verify exists for API keys but no MCP tool uses it yet.

account:readget_account_statusPlan, credit balance, refresh date and rate limits. Live
search:readsearch_peoplelookupProspect for people and resolve the filter values a search needs. Live
enrich:emailsenrich_personenrich_person_bulkenrich_organizationenrich_organization_bulkReveal verified work and personal email addresses. Live
enrich:phonesenrich_personenrich_person_bulkenrich_organizationenrich_organization_bulkReveal direct dials and mobile numbers. Live
campaigns:readRead outbound campaigns and their stats. Later
campaigns:writeCreate and edit outbound campaigns. Later
campaigns:sendSend outbound campaigns. Later

Connected clients

Every OAuth connection is its own grant, listed under Connectors → MCP → Connected clients in the dashboard, with the scopes it was approved for and who approved it.

Disconnecting a client revokes that grant immediately and only that one — your other connected tools keep working. Reconnecting is the same consent screen again.

A client that can’t prove which product it is shows as Unverified: the name is self-reported by whatever software connected. Treat an Unverified entry you don’t recognise as something to disconnect.

Rate limits & credits

Unified API & MCP quota · shared

The MCP runs on the same access as the SalesQL API: it’s available on the Professional and Premium plans. The Basic plan and free accounts can’t connect it yet.

The MCP and REST API draw on one shared credit balance and rate limit — across all your API keys, MCP keys and connected clients, based on your plan. Bursts above your plan’s per-minute limit return 429 — back off and retry.

Person enrichment spends 1 credit per matched contact. These tools are free — lookup, search_people, enrich_organization, enrich_organization_bulk, get_account_status — so you can search, size a list, enrich companies and check your balance without spending anything. Ask get_account_status for your live balance, plan and limits.

Troubleshooting

The consent screen refuses, or every tool fails right after connecting
The MCP runs on the same access as the SalesQL API: the Professional and Premium plans. Check which account the browser is signed into before you approve — approving with a personal free account is the usual cause. On the Basic plan the consent screen may let you through and the tools still refuse, because the two checks are not the same one.
The client can’t connect
Confirm the transport is Streamable HTTP and the URL ends in /mcp. Opening that URL in a browser is not the connection test — a plain GET is refused by design (405 today), so “it doesn’t open” tells you nothing either way. Let the client connect instead.
A tool answers “This MCP key lacks a required scope”
The connection was approved without that capability. For an OAuth connection, disconnect it under Connectors → MCP → Connected clients and reconnect, approving every scope you need. For an MCP key, edit its scopes in the same screen.
“Your OAuth connection has no backing SalesQL API key”
The connection outlived the key minted for it — usually because that key was revoked. Reconnect SalesQL from your client’s settings and the connection is rebuilt.
Tools return “insufficient credits”
Ask for get_account_status: it reports your plan, remaining credits and the next refresh date, and costs nothing. Person enrichment spends credits; searching, company enrichment and status checks never do.
Enrichment returns no match
Unmatched lookups don’t spend credits. Prefer the linkedin_url from a search_people result — it’s the most reliable identifier — and drop match_if_direct_email / match_if_direct_phone if you set them.
Claude Desktop: “Server disconnected” or npm errors (E405)
That’s the mcp-remote bridge, which only the MCP-key path uses, and it needs Node 18+. Run node -v and which npx; a stale nvm default is the usual cause. The OAuth connector needs none of this — switch to it and the problem disappears.