OnFire MCP Server
The OnFire MCP Server is a bridge between your AI agents and OnFire’s go-to-market data lake and CRM tooling. It exposes a tenant-scoped set of tools over the Model Context Protocol, so any MCP-compatible client — Claude Desktop, Cursor, ChatGPT, Claude Code, Claude Web — can query and act on OnFire data directly from inside a conversation.
Ready to get started? Jump to the client setup or read on for an overview.
How it works
Section titled “How it works”The OnFire MCP Server is hosted by OnFire. You don’t install or run it yourself — you paste one URL into your MCP client and it takes care of the rest:
- A browser tab opens for you to sign in with your OnFire account.
- Your client remembers the connection.
- The tools become available inside that client’s tool / MCP menu.
Once connected, the agent can query the data lake (people, companies, job posts, events, hiring and headcount), run AI prospecting, assemble account research, enrich contacts with verified emails and phones, and read or write your connected CRM and sales engagement platform — all scoped to your OnFire tenant.
Ready to get started
Section titled “Ready to get started”The canonical production URL is:
https://mcp.onfire.ai/v1/mcpPaste it into your MCP client. No headers, no JSON config, no API keys — discovery handles the rest.
-
Open Settings → Connectors.
-
Click Add custom connector.
-
Paste
https://mcp.onfire.ai/v1/mcpinto the URL field and give it a name (e.g. “OnFire”). -
Click Connect. A browser window opens for you to sign in with your OnFire account.
-
Once signed in, the OnFire tools appear in the connectors panel. You’re done.
-
Open Cursor Settings → MCP → Add new MCP server (or edit
~/.cursor/mcp.json). -
Add an entry of type
HTTPwith URLhttps://mcp.onfire.ai/v1/mcp. -
Save. Cursor reloads the MCP panel, a browser window opens, and you sign in with your OnFire account.
-
The OnFire tools appear in Cursor’s tool list.
Add the remote MCP server from the command line:
claude mcp add --transport http onfire https://mcp.onfire.ai/v1/mcpThe first time you invoke an OnFire tool, a browser window will open for you to sign in with your OnFire account.
-
Open ChatGPT → Settings → Connectors → Custom connectors.
-
Click New custom connector.
-
Paste
https://mcp.onfire.ai/v1/mcpinto the URL field. -
Save. ChatGPT will prompt you to sign in with OnFire the next time you invoke an OnFire tool inside a chat.
Any client that implements the MCP spec’s remote-HTTP transport and OAuth 2.1 Dynamic Client Registration can connect. Point the client at:
https://mcp.onfire.ai/v1/mcpThe server publishes standard discovery metadata at
/.well-known/oauth-protected-resource and
/.well-known/oauth-authorization-server, and a JWKS at
/.well-known/jwks.json. A well-behaved MCP client should complete the
OAuth handshake automatically on the first request.
Authentication
Section titled “Authentication”The OnFire MCP Server uses OAuth 2.1 — exactly the same login flow you already use for every other OnFire product.
When you connect a new client:
- Your client fetches discovery metadata from the MCP server.
- It opens a browser window.
- You sign in with your OnFire account (SSO or password, whichever your organisation uses).
- Your client stores a short-lived access token plus a refresh token, and transparently refreshes them in the background.
Things to know:
- Your tenant is derived from your email. There’s no tenant picker. Whichever OnFire tenant your email is associated with, that’s the tenant the agent sees.
- No API keys to manage. Access is tied to your OnFire identity. When you leave an organisation, your MCP access is revoked with it.
- Each client is its own registration. Claude Desktop and Cursor each register separately the first time they connect, so revoking access in one does not affect the others.
Limits and back-pressure
Section titled “Limits and back-pressure”There is no per-user request quota on the MCP server. What bounds usage instead:
- Credits. Result rows from the data tools draw on your tenant’s credit balance. When the balance is exhausted the tool call fails closed with a structured out-of-credits error rather than returning partial data — see Credits and consent.
- Row caps and confirmation gates. Every result-volume tool sizes the result before pulling it; see Context efficiency.
- Circuit breakers. When a downstream service is degraded, the server fails fast with an informative error instead of hanging, and recovers automatically.
- Downstream provider limits. CRM and sales engagement calls are
forwarded to your provider, which applies its own rate limits;
crm_writeinasyncmode parks on those limits and resumes.
If your use case needs more headroom, contact support@onfire.ai.
Available tools
Section titled “Available tools”The published connector serves 25 tenant-scoped tools — see Tools for the full per-tool reference. The main entry points:
ask_onfire— the single structured-query surface over OnFire’s data lake: people, companies, job posts, events, GitHub activity, headcount and more. Pair it withdescribe_onfire_schemafor field names and, optionally,resolve_insightsto look up persona and technology values.ai_prospecting— rank the likely buyers and champions at a target account.account_research— the full account brief in one call: tenant fit, 10-K extracts, employee footprint, intent signals, and scored prospects.match_companyandmatch_person— resolve any starting signal to a verified LinkedIn identity.contact_data_enrichmentandsearch_contact_by_email— verified emails and phones; the contact profile behind a business email address. Both paid, both with a two-phase consent flow above 10 records.detect_warm_intros— alumni and shared-colleague paths into an account or a list of people.- CRM and sales engagement — read and write your own connected systems of record.
- Datasets — list, describe, query, and download the short-lived CSV datasets that large results land in.
Every tool is tenant-scoped: you only see data belonging to your own
tenant. Which tools appear is also per-tenant — the write paths
(crm_write, sales_engagement_write) are deny-by-default and must be granted.
Super-tenant administrators can cross-query other tenants via
target_tenant_id, handled transparently by the server.
Context efficiency
Section titled “Context efficiency”Every tool is designed to keep responses small so your agent’s context window doesn’t fill up:
- Large results from queries, prospecting, filings and account research
land in a short-lived MCP dataset (CSV in S3, 7-day TTL, up to
100,000 rows) — the response carries only a handle plus
preview_rowsandfacets. ask_onfirewith nolimitreturns the match count rather than rows, so volume can be settled before anything is pulled. Above 50 rows a pull needsconfirmed=true; the hard ceiling is 1,000 rows per call.query_datasetscaps inline output at 500 rows; persist larger results as a new dataset.detect_warm_introsreturnsneeds_confirmationabove 50 rows instead of a wall of data.- Enrichment is capped at 20 contacts per call (500 addresses for
search_contact_by_email); larger jobs are chunked after the consent step.
Credits and consent
Section titled “Credits and consent”Result rows from the data tools consume tenant credits — counting is free, rows are not. Two tools are explicitly volume-gated and must confirm with you before a large run:
| Tool | Bills per | Consent step |
|---|---|---|
contact_data_enrichment | enriched contact per data type | Two-phase above 10 contacts |
search_contact_by_email | successful match | Two-phase above 10 emails |
A well-behaved agent shows you the confirmation message verbatim and waits for an explicit yes — the original request is not approval.
Monitoring
Section titled “Monitoring”Every tool call is logged with:
- Your authenticated email (
user_email) and tenant (tenant_id). - The client that made the call —
client_ididentifies the specific Claude Desktop / Cursor / ChatGPT install that connected. - The source IP address and user agent of the request.
- Tool name, timestamp, and duration.
- The arguments the call was made with.
- The first 2 KB of the response.
OnFire uses these logs to investigate support tickets, detect abuse, and build usage dashboards. Data is subject to the standard OnFire privacy policy.
Troubleshooting
Section titled “Troubleshooting”I pasted the URL but nothing happened
Section titled “I pasted the URL but nothing happened”The first connection opens a browser window for OAuth login. Some clients pop it behind your IDE or terminal window. Check your browser’s open tabs.
The login loop keeps re-opening
Section titled “The login loop keeps re-opening”Usually this means your OnFire tenant hasn’t been enabled for MCP access yet. Contact support@onfire.ai with the email address you’re trying to use.
I get “tool not allowed for this tenant”
Section titled “I get “tool not allowed for this tenant””Your OnFire administrator has scoped the tool surface for your tenant. Two possibilities:
- The tool is intentionally disabled for your tenant. Contact your admin.
- A rollout hasn’t completed yet. Contact support@onfire.ai.
I get a “temporarily unavailable” error
Section titled “I get a “temporarily unavailable” error”A downstream service the tool depends on is degraded. The server uses circuit breakers so you get a fast, informative error instead of a long timeout. Retry in a minute; if it persists, contact support.
I get an “out of credits” error
Section titled “I get an “out of credits” error”Your tenant’s credit balance is exhausted, so the call failed closed before returning any rows. Contact your OnFire administrator to top up.
The enrichment call says “confirmation token expired”
Section titled “The enrichment call says “confirmation token expired””The token is only valid for about 5 minutes. Re-run the consent step to get a fresh one, then resume batching.
Feedback & support
Section titled “Feedback & support”The OnFire MCP server is actively developed. If you hit something missing, broken, or confusing, email support@onfire.ai. Include:
- The email you’re authenticated as.
- The MCP client you’re using (Claude Desktop, Cursor, …).
- A minimal reproduction — the prompt you gave, the tool call it triggered, the response you got.
- The timestamp (UTC) when the call was made.