Inven MCP Server

Description

The Inven MCP Server gives AI assistants (Claude, Cursor, ChatGPT, and others) direct access to Inven's database of over 20 million private companies, investors, public companies, and M&A / funding deals.

Through natural language alone you can search for companies, retrieve structured financial and operational data, explore your saved Inven lists, and look up detailed profiles for people and deals — all without leaving your AI client.

Features

  • Company search: Translate a natural language description into a structured search across 20M+ private companies. Filter by industry, geography, headcount, revenue, funding stage, ownership type, founding year, and dozens more criteria.
  • Investor search: Discover VCs, PE firms, angels, and family offices by geography, stage focus, portfolio themes, and fund type.
  • Public company search: Build a multiples universe of listed companies by sector, exchange, size, and valuation.
  • Deal search: Find M&A deals and funding rounds by deal type, size, date, acquirer/target characteristics, and geography.
  • People search: Find professionals by current role, title, employer characteristics, past company, or founder background. Returns paginated member preview rows (name, title, employer, location) ready for further enrichment.
  • Contact lookup: Resolve verified emails, phone numbers, LinkedIn URLs, and job titles for contacts — by company domain, by member/experience pair, by LinkedIn URL, or by name + domain, with optional title filtering.
  • Rich data columns: Choose exactly which data fields to retrieve per result — financials, headcount, web traffic, funding history, contacts, and more.
  • Saved lists: Access your existing Inven company, deal, and people lists and enrich them with structured data.
  • Point-lookup: Retrieve detailed profiles for specific companies, people, or deals by name, domain, or ID.
  • Public-company filings: Ask get_company_info for "annual reports", "10-K", "10-Q", "earnings release", or similar and it appends a list of available filings (with directly fetchable external URLs, e.g. SEC EDGAR) for resolved listed companies.
  • Skills (user-authored workflows): Save your own SKILL.md instructions and optional bundled templates (PowerPoint, Excel, PDF, Markdown, …) in the Inven UI once, then retrieve and execute your own workflows from any MCP client.
  • Raw SQL (opt-in): Run paginated Snowflake SELECT statements directly against curated MCP_PUBLIC views (companies, members, member experiences, member metrics, M&A transactions, private financials). Includes a free two-step schema-discovery tool with units and enum hints, plus a free 5-row dry-run for iterating on filters before paying credits. Available only to organisations with the SQL tools package enabled.

Setup

Option A — OAuth 2.1 (recommended for Claude.ai and ChatGPT)

  1. Visit the Anthropic MCP Directory at claude.com/connectors and find Inven.
  2. Click Connect and complete the OAuth sign-in using your existing Inven account.
  3. No additional configuration is required — the client discovers all endpoints automatically.

Option B — Legacy Bearer key (for Claude Desktop, Cursor, and programmatic access)

  1. Obtain an MCP key from your Inven administrator (POST /admin-api/mcp-key).
  2. Add the following block to your MCP client configuration:
{
  "mcpServers": {
    "inven": {
      "type": "streamable-http",
      "url": "https://api.inven.ai/mcp/v1",
      "headers": {
        "Authorization": "Bearer <your-mcp-key>"
      }
    }
  }
}

Authentication

Two authentication methods are supported simultaneously:

OAuth 2.1 (Authorization Code + PKCE)
The server presents itself as an OAuth 2.1 Authorization Server and proxies the flow to Cognito.

Endpoint Description
GET /.well-known/oauth-authorization-server Discovery document
POST /register Dynamic Client Registration
GET /authorize Starts the OAuth flow
GET /auth/callback Cognito redirect target
POST /token Token exchange

Legacy static MCP key
Pass a pre-issued key in every request:

Authorization: Bearer <your-mcp-key>

Examples

Example 1: Search for B2B SaaS companies in the Nordics

User prompt: "Find B2B SaaS companies in the Nordic countries with 50–500 employees that have raised Series A or B funding"

What happens:

  • build_company_search translates the description into a structured search and returns a search_id with an estimated result count.
  • build_company_columns selects relevant columns (company name, country, headcount, funding stage, last round date).
  • run_company_search executes the search and returns a paginated table of matching companies.

Example 2: Look up financials (and filings) for a list of known companies

User prompt: "Get the latest revenue, EBITDA, and headcount for Stripe, Klarna, and Revolut"

What happens:

  • get_company_info resolves each company name against the Inven database, calls an LLM to select the relevant data fields, and returns structured rows for all three companies in a single call — no search or column selection step needed.
  • If the data description mentions filings (e.g. "annual report", "10-K", "10-Q", "earnings release"), the response also appends a list of available public-company filings (with directly fetchable external URLs) for any resolved listed companies. This requires the profile_public_financials permission.

Example 3: Explore recent fintech M&A deals

User prompt: "Show me European fintech acquisitions from 2023 and 2024 with deal values above €50M, including buyer names and deal size"

What happens:

  • build_deal_search translates the deal criteria into a structured deal search and returns a search_id.
  • build_deal_columns selects the requested columns (buyer name, target name, deal size, close date).
  • run_deal_search executes the search and returns a paginated table of matching deals.

Example 4: Enrich a saved Inven list

User prompt: "Take my 'Pipeline Q2' company list and give me the headcount trend and last funding round for each company"

What happens:

  • get_company_lists returns all of the user's saved lists with IDs and names.
  • get_company_list_domains fetches the website domains of all positively-marked companies on the chosen list.
  • get_company_info (called in batches of up to 100 domains) retrieves headcount and funding data for every company and returns the results as a structured table.

Example 5: Find European growth-stage VCs focused on climate tech

User prompt: "Find European VCs that invest in climate tech or cleantech at Series A and B stage"

What happens:

  • build_investor_search translates the description into a structured investor search.
  • build_company_columns selects overview columns (fund name, country, focus areas, AUM).
  • run_company_search returns a paginated list of matching investors.

Example 6: Find CFOs and finance leaders at European fintechs

User prompt: "Find current CFOs and VPs of Finance at European fintech companies with 100–1000 employees"

What happens:

  • build_people_search translates the description into a structured people search and returns a search_id.
  • run_people_search executes the search and returns paginated rows with name, title, employer domain, and location — no column selection step needed.
  • Optionally, pass the returned member_id/experience_id pairs to get_people_info for full profile data.

Example 7: Look up CEO contacts for a short list of companies

User prompt: "Find verified email addresses and phone numbers for the CEOs of stripe.com, klarna.com, and revolut.com"

What happens:

  • get_company_contacts is called with domains and a titles=["CEO"] filter. Common abbreviations are expanded server-side (so "CEO" also matches "Chief Executive Officer").
  • The tool returns the top contacts per domain with verified email, phone, LinkedIn URL, job title, and location. One contact credit is deducted per newly-resolved contact.

You can also resolve contacts for specific people instead of (or in addition to) domains:

  • people: member_id/experience_id pairs from run_people_search or get_people_list.
  • linkedin_urls: objects with the required key linkedin_url (not url), e.g. {"linkedin_url": "https://linkedin.com/in/jane", "name": "Jane Smith"}.
  • named_people: a person name + company domain for fuzzy matching (falls back to Inven people data if contact providers miss the name).

Up to 10 total lookups per call across all input modes combined.

Example 8: Quantitative analysis directly against the Inven data warehouse (SQL tools)

User prompt: "What's the median headcount growth over the last 12 months for SaaS companies in the Nordics with 50–500 employees?"

What happens (requires the SQL tools package to be enabled for the organisation):

  • get_sql_schema() returns the available schema selection groups (companies, people, deals, private-financials) without column metadata.
  • get_sql_schema(selections=["companies"]) returns column metadata, units, and known enum values for just the requested groups.
  • dry_run_sql(sql) runs the candidate Snowflake SELECT capped at 5 rows for free, so the query can be iterated on without paying credits.
  • run_sql(sql, limit, offset) runs the full paginated query (1 screening credit per call + 1 export credit per returned row, ≤1000 rows/page, 60-second timeout).

Tools

Company search

Tool Annotation Description
build_company_search destructive Persist a natural language company search to history. Returns search_id.
preview_company_search read-only Preview a company search without saving.
refine_company_search destructive Refine an existing search; saves as a new entry.
build_company_columns destructive Select data columns via natural language. Returns column_selection_id.
refine_company_columns destructive Add columns to an existing column selection.
get_available_company_columns read-only Browse all available field categories and names.
run_company_search read-only Execute a search and return paginated company rows.
get_company_info destructive Retrieve structured data for up to 100 specific companies by name or domain. When the data description mentions filings (e.g. "annual report", "10-K", "10-Q", "earnings release"), also appends available public-company filings (with fetchable external URLs) for resolved listed companies — requires the profile_public_financials permission.

Deal search

Tool Annotation Description
build_deal_search destructive Persist a natural language deal search. Returns search_id.
preview_deal_search read-only Preview a deal search without saving.
refine_deal_search destructive Refine an existing deal search; saves as a new entry.
build_deal_columns destructive Select deal data columns via natural language. Returns column_selection_id.
get_available_deal_columns read-only Browse all available deal field names.
run_deal_search read-only Execute a deal search and return paginated deal rows.
get_deal_info destructive Retrieve structured data for specific deal IDs.

Investor & public company search

Tool Annotation Description
build_investor_search destructive Persist a natural language investor search. Returns search_id (use with run_company_search).
preview_investor_search read-only Preview an investor search without saving.
refine_investor_search destructive Refine an existing investor search.
build_public_company_search destructive Persist a listed-company search. Returns search_id.
preview_public_company_search read-only Preview a public company search without saving.
refine_public_company_search destructive Refine an existing public company search.

People search

Tool Annotation Description
build_people_search destructive Persist a natural language people search. Returns search_id.
preview_people_search read-only Preview a people search without saving.
refine_people_search destructive Refine an existing people search; saves as a new entry.
run_people_search read-only Execute a people search and return paginated member preview rows. No column selection needed.

Saved lists

Tool Annotation Description
get_company_lists read-only List the user's Inven company lists with IDs and names.
get_company_list_domains read-only Return website domains of positively-marked companies on a list.
get_deal_lists read-only List the user's Inven deal lists.
get_deal_list_ids read-only Return deal IDs of positively-marked entries on a list.
get_people_lists read-only List the user's Inven people lists.
get_people_list read-only Return member/experience ID pairs of positively-marked people on a list.
get_people_info destructive Load full profile data for specific member/experience pairs.

Contacts

Tool Annotation Description
get_company_contacts destructive Resolve verified emails, phone numbers, LinkedIn URLs, and job titles for up to 10 lookups per call. Input modes: domains (optional titles filter and max_contacts_per_domain), people (member_id/experience_id pairs from people search), linkedin_urls (objects with required key linkedin_url, not url; optional name/title/company_name hints), or named_people (name + company domain, with Inven people DB fallback). At least one input mode required. Costs one contact credit per newly-resolved contact (already-resolved contacts are not charged again).

Skills (user-authored workflows)

Skills are the user's own reusable workflows, authored and saved by the user themselves in the Inven UI under MCP workflows (bottom-left account menu). The SKILL.md inside each workflow is content the user wrote — their personal instructions for how to complete a recurring task. Inven stores the file on the user's behalf; the content is entirely user-authored and private to the creator by default. The creator can share a workflow with the rest of their organisation, in which case each org member opts in by toggling the workflow on in their own list.

Tool Annotation Description
list_workflows read-only List the authenticated user's own saved workflows, plus opted-in org-shared workflows. Returns lightweight metadata: skill_id, name, title, description (trigger condition — written by the user), owner, organisation, and bundled file paths with mime_type / size_bytes.
get_workflow read-only Load one of the user's own saved workflows. Without file_path, returns the user's SKILL.md content inline. With file_path for a small text file (≤ 64 KB), returns the user's file contents inline. With file_path for a binary template the user bundled, returns a short-lived presigned download_url the agent fetches with curl. Templates ≤ 4 KB are also returned inline as inline_blob_base64 for a single-call delivery on every client.

Recommended flow: list_workflows → pick the workflow whose description matches the user's request → get_workflow(skill_id) to load SKILL.md → get_workflow(skill_id, file_path=...) per template the SKILL.md tells you to use.

The tools are named list_workflows / get_workflow (rather than list_skills / get_skill) to avoid a name collision with Claude Desktop / Claude Web's native built-in Skills feature, which silently swallows MCP tools sharing those names.

If your organisation has uploaded its own template at the same path as an Inven-shipped default (for example a customised templates/tearsheet.pptx), only your organisation's version is surfaced — the Inven default is hidden for the whole org until the override is removed in the Inven UI, so every caller in your organisation receives the same template bytes.

Raw SQL (opt-in, organisation-gated)

Available only to organisations with the SQL tools package enabled. Targets curated MCP_PUBLIC_DB.MCP_PUBLIC.* Snowflake views (COMPANIES, MEMBERS, MEMBER_EXPERIENCES, MEMBER_METRICS, MNA_TRANSACTIONS, plus private-financial views). All statements run with a 60-second server-side timeout; multi-statement scripts are rejected and trailing semicolons are stripped. Only SELECT / WITH statements are allowed.

Recommended flow: get_sql_schema() (free; lists selection groups) → get_sql_schema(selections=[...]) (free; columns for the requested groups) → dry_run_sql(sql) (free, 5-row preview) → run_sql(sql, limit, offset) for paginated results. Always include an ORDER BY when paginating so page boundaries stay stable.

Tool Annotation Description
get_sql_schema read-only List available schema selection groups (companies, people, deals, private-financials) when called with no selections, or return live INFORMATION_SCHEMA.COLUMNS metadata for the requested groups, augmented with curated per-column descriptions (units, format conventions, ARRAY / VARIANT notes) and enum_values for known categorical columns. Free.
dry_run_sql read-only Run a Snowflake SELECT against the MCP_PUBLIC views, capped at 5 rows. Free; surfaces Snowflake errors (syntax, timeout, etc.) via the error field. Use for fast iteration on filters before calling run_sql.
run_sql read-only Run a paginated Snowflake SELECT against the MCP_PUBLIC views (≤1000 rows/page). Costs 1 screening credit per call plus 1 export credit per returned row (no export credits charged on error). Errors are surfaced via the error field.

Utility

Tool Annotation Description
status_tool read-only Health check — verify the server is reachable and the auth token is valid.
get_credit_balance read-only Return current export_credits, contact_credits, and ai_enrichment_credits balances for the authenticated user.

Claude Cowork limitations (workflow templates)

Claude Desktop's local-agent ("Cowork") sandbox enforces a network egress allowlist that blocks *.amazonaws.com and api.inven.ai, so the presigned download_url returned by get_workflow can fail inside Cowork. Cowork also applies size caps to its local file tools. Workarounds:

  • Recommended: install the Inven plugin — a one-time setup that fixes both walls at once. Download the plugin zip from app.inven.ai under MCP workflows and install it in Claude Desktop. The plugin ships every enabled workflow's SKILL.md plus its bundled templates as local files, so the agent reads them straight from disk with no URL fetch or inline transport.
  • Small templates (≤ 4 KB): every get_workflow response also carries the entire file inline as inline_blob_base64. If curl is blocked, the agent base64-decodes the inline blob directly — no human action required.
  • Larger templates without the plugin: the response directive tells the agent to relay the presigned URL to you so you can download it in your browser (outside the sandbox) and drag the file into the chat as an attachment, which the agent picks up natively.
  • Other clients: Claude Code CLI, Cursor, and Claude.ai web all fetch the presigned URL without restriction.

Privacy policy

See our privacy policy at https://www.inven.ai/privacy-policy.