{
  "markdown": "# Coresignal MCP v2\n\nThe official [Model Context Protocol](https://modelcontextprotocol.io) server for [Coresignal](https://coresignal.com) — bring fresh B2B data on **895M+ employees**, **70M+ companies**, and **468M+ job postings** straight into your AI assistant.\n\n```bash\nhttps://mcp.coresignal.com/mcp/v2\n```\n\nSearch in plain natural language, pull full records, enrich contacts with verified emails, and export large result sets as downloadable files — all from Claude, Cursor, Codex, VS Code, or any other MCP-compatible client.\n\n---\n\n## Features\n\n- **OAuth 2.1 authentication** — sign in with your Coresignal dashboard account; no API keys in config files.\n- **Natural-language search** with match evidence in every result row, so you can see *why* each record matched.\n- **Cost transparency** — every response reports `credits_consumed`, and expensive calls ask for confirmation before spending.\n- **Field discovery** — `entity_fields` finds the right field names by keyword, free, without loading the full 300+ field vocabulary into context.\n- **File downloads** — large result sets are stored server-side and returned as a download link instead of flooding the chat.\n- **`artifact_read`** pages delivered files back into the conversation for free — works even in clients with no filesystem access.\n\n## Prerequisites\n\n- A [Coresignal account](https://dashboard.coresignal.com) with an active subscription (credits) and a team API key provisioned in the dashboard. The MCP server resolves your team's key automatically after sign-in — you never paste it into a config file. No subscription yet? Start with the **7-day free trial** — it includes **2,000 credits**. See the [plan comparison](https://coresignal.com/pricing/#plan-comparison).\n\nOn first connection your client opens a browser window to sign in to the Coresignal dashboard. That's the whole setup — no environment variables, no secrets.\n\n---\n\n## Client setup\n\n<details>\n<summary><b>Claude Desktop</b></summary>\n\nClaude Desktop supports remote MCP servers natively via **Connectors**:\n\n1. Open **Settings → Connectors → Add custom connector**.\n2. Name: `Coresignal`, URL: `https://mcp.coresignal.com/mcp/v2`.\n3. Click **Add**, then **Connect** — a browser window opens to sign in to your Coresignal dashboard account.\n\n> **Important — enable file downloads:** Claude Desktop blocks downloads from domains it doesn't know. To download result files (large fetches are delivered as links), add `mcp.coresignal.com` to the **Domain allowlist** in Claude Desktop settings (on Team/Enterprise plans your admin manages this). Without it, download links from the server will be blocked — though you can always read the data back in-chat with the free `artifact_read` tool instead. See [File downloads](#file-downloads--the-domain-allowlist).\n\n</details>\n\n<details>\n<summary><b>Claude Code</b></summary>\n\n```bash\nclaude mcp add --transport http coresignal https://mcp.coresignal.com/mcp/v2\n```\n\nThen inside a session run `/mcp`, select **coresignal**, and complete the browser sign-in. Re-run `/mcp` any time you need to re-authenticate.\n\n</details>\n\n<details>\n<summary><b>Codex (OpenAI Codex CLI)</b></summary>\n\n```bash\ncodex mcp add coresignal --url https://mcp.coresignal.com/mcp/v2\n```\n\nA browser window opens to sign in to your Coresignal dashboard account.\n\n</details>\n\n<details>\n<summary><b>Cursor</b></summary>\n\nAdd to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"coresignal\": {\n      \"url\": \"https://mcp.coresignal.com/mcp/v2\"\n    }\n  }\n}\n```\n\nCursor detects that the server requires authentication and shows a **Needs login** prompt — click it to complete the browser sign-in.\n\n</details>\n\n<details>\n<summary><b>OpenCode</b></summary>\n\nAdd Coresignal MCP:\n\n```bash\nopencode mcp add coresignal --url https://mcp.coresignal.com/mcp/v2\n```\n\nAuthenticate:\n\n```bash\nopencode mcp auth coresignal\n```\n\nA browser window opens to sign in to your Coresignal dashboard account.\n\n</details>\n\n<details>\n<summary><b>Visual Studio Code</b></summary>\n\nRun **MCP: Add Server** from the Command Palette, choose **HTTP**, and enter the URL — or add to `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"coresignal\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.coresignal.com/mcp/v2\"\n    }\n  }\n}\n```\n\nVS Code prompts you to authorize the server on first use and handles the OAuth flow in your browser.\n\n</details>\n\n<details>\n<summary><b>Cline</b></summary>\n\nAdd to `~/.cline/data/settings/cline_mcp_settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"coresignal\": {\n      \"type\": \"streamableHttp\",\n      \"url\": \"https://mcp.coresignal.com/mcp/v2\",\n      \"disabled\": false\n    }\n  }\n}\n```\n\nOpen Cline MCP interface:\n\n```bash\ncline mcp\n```\n\nFrom menu select **Authorize OAuth** and select **coresignal**. Cline will handle the OAuth flow in your browser.\n\n</details>\n\n---\n\n## File downloads & the domain allowlist\n\nLarge results (and any call with `delivery=\"url\"`) are not dumped into the chat to save LLM input tokens. Instead the server stores the rows as a file and returns a **signed HTTPS download link** that expires after **1 hour**:\n\n```json\n{\n  \"delivery\": \"url\",\n  \"url\": \"https://mcp.coresignal.com/mcp/v2/artifacts/…?exp=…&sig=…\",\n  \"artifact_name\": \"employee_fetch-baf941dd4f8c4dfe.jsonl\",\n  \"count\": 500,\n  \"credits_consumed\": 10000\n}\n```\n\nFrom here, the agent gets at the data in one of three ways:\n\n1. **The agent downloads the file itself** — in clients with shell access, the agent will typically `curl` the link to disk and analyze the file locally with `grep`/`jq`/pandas.\n2. **The agent reads it back in-chat** — in clients with no shell and no filesystem, the agent calls `artifact_read(artifact_name, offset, limit)` instead, paging through the file in slices over the MCP session. This is **free** and works everywhere, so nothing floods the chat.\n3. **You download it manually** — if the agent itself isn't allowed to fetch the link (domain not allowlisted, sandbox without network access), click the link, save the file, and tell the agent where it is: *\"I've downloaded the file to ~/Downloads/employee_fetch-….jsonl — analyze it from there.\"* Works in any client that can read local files.\n\n> **Prefer the download when your client supports it.** `artifact_read` is free in Coresignal credits, but not in LLM tokens: every page it returns becomes part of the conversation and is re-billed as input tokens on each subsequent turn. Each page is also trimmed to a fixed token budget — a full employee record is ~8k tokens, so a single page carries only a handful of full records regardless of the `limit` you ask for. Reading a large file that way takes hundreds of calls and can exhaust the context window before you reach the end. A downloaded file costs essentially no tokens — the assistant can filter thousands of rows locally with `grep`/`jq` and surface only the answer. That's why it pays to get downloads working up front (domain allowlist, sandbox network access) and keep `artifact_read` for clients that can't download or for eyeballing a few rows.\n\n**If downloads are blocked, nothing is lost:** the records are already stored and paid for — read them with `artifact_read`. Never re-run a fetch to \"recover\" a file; that bills every record a second time.\n\n---\n\n## Tools\n\n| Tool | What it does | Cost |\n| --- | --- | --- |\n| `entity_search` | Natural-language search over employees, companies, or jobs | 20 credits per search (flat) |\n| `entity_fields` | Keyword search over an entity's ~300 field names | Free |\n| `entity_fetch` | Pull full (JSONL) or projected records, by search handle or by id | 20 credits per employee/company record, 1 per job record |\n| `email_enrich` | Verified business emails for employee ids (CSV) | 10 credits per email **found** (misses are free) |\n| `artifact_read` | Page rows back out of a delivered file | Free |\n\n### `entity_search`\n\nSearches `employee`, `company`, or `job` records with a plain-language query:\n\n> *\"Senior Python developers at fintech companies in French\"*\n\nEvery call costs a flat **20 credits** and returns:\n\n- `total_count` — the exact number of records the query matched,\n- up to 20 preview rows (`limit=0` returns just the count), each showing the fields the query matched on — the *evidence* for why each result is there,\n- a `cache_id` — a 1-hour handle to the search that **saves credits and time**: pass it to `entity_fetch` and the matched records are collected straight away — no need to re-run (and re-pay for) the search, and resolving the `cache_id` itself is free. Record ids stay server-side, so nothing bulky ever passes through the conversation.\n\n### `entity_fields`\n\nFree, instant lookup of field names by meaning — `\"salary\"` finds the compensation fields, `\"current job title and seniority\"` finds `active_experience_title`, `experience.position_title`, etc. Use it to build the `fields` list for a custom-scope fetch without ever loading the full field vocabulary into context.\n\n### `entity_fetch`\n\nCollects records — either up to 20 hand-picked ids from search results, or up to **1,000 records per call** via a `cache_id`. Billing is per record found: **20 credits** for employees/companies, **1** for jobs.\n\n### `email_enrich`\n\nVerified, deliverable business emails for up to 1,000 employee ids — **10 credits per email found**; not-found ids are free. EEA/UK contacts are not accessible (GDPR).\n\n### `artifact_read`\n\nReads a delivered file back over the authenticated MCP session, a page at a time — **free**, since the records were billed when they were fetched. This is what makes file delivery work everywhere, including chat clients that can't open a link or touch a filesystem.\n\n---\n\n## Example prompts\n\n### Market scan\n\n> *\"Find B2B SaaS companies in the Nordics with 50–200 employees that raised funding in the last two years.\"*\n\n### Build a lead list with verified emails\n\n> *\"Search for heads of data at US companies with 500+ employees. Fetch 20 full profiles to a file with verified emails.\"*\n\n### Deep-dive a single company**\n\n> *\"Pull the full record for flo.health — funding rounds, headcount growth, and current job openings.\"*\n\n...\n\n---\n\n## Credits & billing\n\n| Action | Credits |\n|---|---|\n| `entity_search` (any `limit`, including 0) | 20 per search |\n| `entity_fetch` — employee or company | 20 per record found |\n| `entity_fetch` — job | 1 per record found |\n| `email_enrich` | 10 per email found; misses free |\n| `entity_fields`, `artifact_read` | Free |\n\nEvery response includes `credits_consumed` — the actual billed amount, so a discrepancy (sent 1,000 ids, billed for 950 records) tells you exactly how many ids weren't found. The server never spends silently: fetches confirm field scope with you first, and a fetch that can't be delivered fails *before* any credits are spent.\n\nCredits are drawn from your team's Coresignal subscription — manage keys and billing in the [dashboard](https://dashboard.coresignal.com). New to Coresignal? The **7-day free trial comes with 2,000 credits** — that's 100 searches, or 100 employee/company records, or a mix — see the [plan comparison](https://coresignal.com/pricing/#plan-comparison).\n\n## Links\n\n- [Coresignal](https://coresignal.com) — data coverage, plans, and pricing\n- [Coresignal dashboard](https://dashboard.coresignal.com) — account, team, API keys, credits\n- [API documentation](https://docs.coresignal.com/api) — the underlying data APIs\n\n[![smithery badge](https://smithery.ai/badge/coresignal/coresignal)](https://smithery.ai/servers/coresignal/coresignal)\n",
  "bytes": 11520,
  "sha": "0186140290fcb9f6bcb50be43870622cc758a592dda964550ac5c0cafae5637b",
  "repo_slug": "coresignal-com/coresignal-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_coresignal_mcp_dac52bfe/readme"
}