Connect your AI Agents to Specter in minutes

Merge lets you securely connect your agents to Specter and thousands of tools instantly

Available tools

find_company_id

Resolve 1-50 company identifiers (domain, website, LinkedIn/Crunchbase/Pitchbook URL, or name) to Specter company IDs. Free. Returns one match group per input, in order. Use this first to get a companyid for getcompany and the other company tools; use enrich_company instead when you want the full record in one paid call.

enrich_company

Look up and return full company records by one known identifier (website, domain, LinkedIn URL or ID, Crunchbase or Pitchbook URL). 1 credit per match; a domain can match several companies; no match returns an empty list. Use getcompany when you already have a companyid, and enrichcompaniesbulk for up to 50 lookups at once.

enrich_companies_bulk

Enrich up to 50 companies in one call, each lookup carrying one known identifier (website, domain, LinkedIn, Crunchbase, Pitchbook). 1 credit per match; unmatched lookups are omitted, so fewer records may come back. Use enrichcompany for a single lookup, or getcompany when you already have a company_id.

get_company

Get the full current Specter record for one company by companyid: profile, HQ, funding, team, web traffic, reviews, socials and traction metrics. 1 credit. Use findcompanyid or searchentities to get a company_id. A merged company raises an error naming the surviving ID.

get_company_latest_revenue

Get a company's latest reported and estimated revenue with low/high range and 1m-2y growth percentages. 1 credit. Use findcompanyid or searchentities to get a companyid; use getcompanyrevenue_signals for the dated history of revenue observations instead.

get_company_latest_valuation

Get a company's latest reported and estimated valuation with low/high range and 1m-2y growth percentages. 1 credit. Use findcompanyid or searchentities to get a companyid; use getcompanyfunding_rounds for per-round pre/post-money valuations.

get_company_funding_rounds

List one company's funding rounds, newest first, with every participating investor and a lead flag; filter by announcement date; paginated (page/limit, max 50). Use findcompanyid or searchentities to get a companyid. Use listfundingrounds for rounds across all companies.

get_company_news

List one company's news signals (articles with detected revenue, funding, deal or traction updates), filter by publication date or major news only; paginated (page/limit, max 50). Use findcompanyid or searchentities to get a companyid.

get_company_revenue_signals

List one company's revenue and profitability signals (ARR/Revenue/GMV observations from news, social and public filings), filter by signal date; paginated (page/limit, max 1000); 2 credits per result. Use findcompanyid to get a companyid; getcompanylatestrevenue for the current estimate.

get_company_acquisitions

List the acquisitions one company is part of, as acquirer or acquiree (each row carries both sides), newest first; filter by deal date; paginated (page/limit, max 50). Use findcompanyid or searchentities to get a companyid; use list_acquisitions for deals across all companies.

get_company_ipos

List one company's IPOs (usually zero or one; dual-listed companies may have more), newest first, with exchange, ticker, share price and amount raised; paginated (page/limit, max 50). Use findcompanyid to get a companyid; use listipos for IPOs across all companies.

get_company_employees

List the founders and employees Specter has for one company, with title, department, seniority and socials; filter by department, founders, CEO or key people; paginated (page/limit, max 50). Use findcompanyid to get a companyid; pass a returned personid to get_person for a full profile.

get_company_competitors

Get the competitive landscape for one company: up to 30 ranked competitors with scores, the market dimensions they split on, and a summary. 1 credit; a never-analysed company is computed on demand and is slower. Use findcompanyid or searchentities to get a companyid.

get_company_interest_signals

List the investor-interest signals about one company (which investors are paying attention), newest first; filter by signal date; paginated (page/limit, max 50). Use findcompanyid to get a companyid; use listinterestsignals for the cross-company feed, getinvestorinterestsignals per investor.

list_talent_signals

List talent signals across all people (founders leaving, new stealth companies, job moves), newest first, each with the person's profile; filter by signal date; paginated (page/limit, max 50); 1 credit per result. Use getpersontalentsignals for one person, gettalentsearchresults for a saved search.

list_interest_signals

List investor-interest signals (investors showing interest in a company or person), newest first, dataset-wide or scoped to a saved searchid (listsavedsearches) or a listid (listcompanylists, listpeoplelists or listinvestorlists); filter by date; optional sort; paginated (page/limit). 1 credit per result.

list_revenue_signals

List revenue and profitability signals across all companies (ARR/Revenue/GMV figures from news, social and public filings), newest first; filter by signal date; paginated (page/limit, max 5000); 2 credits per result. Use getcompanyrevenue_signals for a single company.

list_funding_rounds

List funding rounds across all companies, newest first, each with amount, valuations and every investor (lead flagged); filter by announcement date; paginated (page/limit, max 50). Use getcompanyfundingrounds or getinvestorfundingrounds to scope to one company or investor.

get_funding_round

Get one funding round by fundingroundid: the raising company, amount, pre/post-money valuation and every participating investor with a lead flag. 1 credit. Use listfundingrounds, getcompanyfundingrounds or getinvestorfundingrounds to find a fundingroundid.

list_acquisitions

List acquisitions across all companies, newest first, each with both acquirer and acquiree (company IDs, domains), deal type and price; filter by deal date; paginated (page/limit, max 50). Use getcompanyacquisitions to scope to one company, get_acquisition for one deal.

get_acquisition

Get one acquisition by acquisitionid, covering both sides of the deal (acquirer and acquiree with company IDs and domains), deal type, price and date. 1 credit. Use listacquisitions or getcompanyacquisitions to find an acquisition_id.

list_ipos

List IPOs across all companies, newest first, with exchange, ticker, share price, valuation and amount raised plus the issuing companyid; filter by listing date; paginated (page/limit, max 50). Use getcompanyipos for one company, getipo for one IPO.

get_ipo

Get one IPO by ipoid: exchange, ticker, listing date, share price, valuation, amount raised and the issuing company's companyid and domain. 1 credit. Use listipos or getcompanyipos to find an ipoid; pass the companyid to getcompany for the issuer.

find_investor_id

Resolve 1-50 investor websites and/or names to Specter investor IDs with candidate details (website, HQ, founded year) to disambiguate. Free; one match group per input, in order. Use this to get an investorid for getinvestor; use enrich_investor to get full records in one paid call.

enrich_investor

Look up investors by website (domain), name, or both and return full investor records: profile, activity counts, stage/industry targeting, funds and portfolio. 1 credit per match; may return several. Use getinvestor when you already have an investorid; enrichinvestorsbulk for up to 50.

enrich_investors_bulk

Enrich up to 50 investors in one call, each lookup carrying a website and/or name, returning full investor records. 1 credit per match; unresolved lookups are omitted and order is not guaranteed. Use enrichinvestor for a single lookup or getinvestor when you already have an investor_id.

get_investor

Get the full Specter record for one investor by investorid: profile, activity counts, stage and industry targeting, funds and portfolio company IDs. 1 credit. Use findinvestorid or searchentities to get an investorid; pass portfolio IDs to getcompany.

get_investor_funding_rounds

List the funding rounds one investor took part in, newest first, each with the raising company and all co-investors; filter by announcement date; paginated (page/limit, max 50). Use findinvestorid or searchentities to get an investorid; use listfundingrounds for all rounds.

get_investor_interest_signals

List the investor-interest signals one investor generated (the companies and people it is paying attention to), newest first; filter by signal date; paginated (page/limit, max 50). Use findinvestorid to get an investorid; getcompanyinterestsignals for signals about a company.

list_company_lists

List the company lists reachable from your API key (created via the API, shared to the API, or global lists curated by Specter) with id, name, sharing and member count. Free. Use this to get a listid for getcompanylist, updatecompanylist, deletecompanylist or getcompanylistresults.

create_company_list

Create a new company list shared with the API, optionally seeded with companies IDs (use findcompanyid or searchentities to get them), and return its listid. A duplicate name raises a conflict (LISTALREADYEXISTS). Free. Add or remove members later with updatecompanylist.

get_company_list

Get one company list by listid: name, sharing settings, timestamps and the IDs of the companies in it with when each was added. Free. Use listcompanylists to get a listid; use getcompanylist_results for the members' records (lean by default; pass fields=['all'] for full records).

update_company_list

Add and/or remove companies in an existing company list in one call (adds run first, so an ID in both ends up removed). Free. Use listcompanylists to get the listid and findcompanyid or searchentities for IDs to add; use getcompanylist to see current members.

delete_company_list

Permanently delete a company list and all its data; it is removed from users' lists and cannot be undone. Only lists shared with the API can be deleted. Free. Use listcompanylists to get the list_id.

get_company_list_results

Read the companies in a company list; paginated (page/limit, max 5000). Returns a lean field set by default; pass fields=['all'] for full records or a field list to select more. 1 credit per result. Use listcompanylists to get a listid; use getcompany_list for the cheaper member-ID view.

list_investor_lists

List the investor lists reachable from your API key (created via the API, shared to the API, or global lists curated by Specter) with id, name, sharing and member count. Free. Use this to get a listid for getinvestorlist, updateinvestorlist, deleteinvestorlist or getinvestorlistresults.

create_investor_list

Create a new investor list shared with the API, optionally seeded with investors IDs (use findinvestorid or searchentities to get them), and return its listid. A duplicate name raises a conflict (LISTALREADYEXISTS). Free. Add or remove members later with updateinvestorlist.

get_investor_list

Get one investor list by listid: name, sharing settings, timestamps and the IDs of the investors in it with when each was added. Free. Use listinvestorlists to get a listid; use getinvestorlist_results for the members' records (lean by default; pass fields=['all'] for full records).

update_investor_list

Add and/or remove investors in an existing investor list in one call (adds run first, so an ID in both ends up removed). Free. Use listinvestorlists to get the listid and findinvestorid or searchentities for IDs to add; use getinvestorlist to see current members.

delete_investor_list

Permanently delete an investor list and all its data; it is removed from users' lists and cannot be undone. Only lists shared with the API can be deleted. Free. Use listinvestorlists to get the list_id.

get_investor_list_results

Read the investors in an investor list; paginated (page/limit, max 5000). Returns a lean field set by default; pass fields=['all'] for full records or a field list to select more. 1 credit per result. Use listinvestorlists to get a listid; use getinvestor_list for the cheaper member-ID view.

list_people_lists

List the people lists reachable from your API key (created via the API, shared to the API, or global lists curated by Specter) with id, name, sharing and member count. Free. Use this to get a listid for getpeoplelist, updatepeoplelist, deletepeoplelist or getpeoplelistresults.

create_people_list

Create a new people list shared with the API, optionally seeded with people IDs (use findpersonid or searchentities to get them), and return its listid. A duplicate name raises a conflict (LISTALREADYEXISTS). Free. Add or remove members later with updatepeoplelist.

get_people_list

Get one people list by listid: name, sharing settings, timestamps and the IDs of the people in it with when each was added. Free. Use listpeoplelists to get a listid; use getpeoplelist_results for the members' records (lean by default; pass fields=['all'] for full records).

update_people_list

Add and/or remove people in an existing people list in one call (adds run first, so an ID in both ends up removed). Free. Use listpeoplelists to get the listid and findpersonid or searchentities for IDs to add; use getpeoplelist to see current members.

delete_people_list

Permanently delete a people list and all its data; it is removed from users' lists and cannot be undone. Only lists shared with the API can be deleted. Free. Use listpeoplelists to get the list_id.

get_people_list_results

Read the people in a people list; paginated (page/limit, max 5000). Returns a lean field set by default; pass fields=['all'] for full records or a field list to select more. 1 credit per result. Use listpeoplelists to get a listid; use getpeople_list for the cheaper member-ID view.

list_network_people

List everyone your team is connected to on LinkedIn, deduped across teammates, with which teammates hold each connection and the person's current companyid; paginated (page/limit, max 50); 1 credit per page. Needs the LinkedIn integration. Use listnetwork_companies for a by-company view.

list_network_companies

List the companies where people in your team's LinkedIn network currently work, most connections first, with the connected person IDs; filter by minimum connections; paginated (page/limit, max 50). Use getnetworkconnections for who you know at one company.

get_network_connections

Get your team's connections at one company: who you know there, their roles, and which teammates are linked to them; paginated (page/limit, max 50). Raises not-found when you have no contacts there. Use listnetworkcompanies or findcompanyid to get a company_id.

list_organization_members

List the active members of your Specter team with userid, role (admin or member), name and email; paginated (page/limit, max 1000). Free. Use this to see who owns saved searches (ownerid) or which teammates hold network connections.

get_credit_balance

Get your organization's API credit balance for the current billing window: limit, used, remaining, unlimited flag, and the daily cap and usage when one is set. Free and readable even when credits are spent. Check it before large paid jobs or after an out-of-credits error.

list_api_logs

List the Specter API calls your organization made, newest first, with path, method, status, credits consumed and request ID; filter by a time window; paginated (page/limit, max 5000) with a total. Free. Use this to audit credit usage; use getcreditbalance for the remaining balance.

get_health

Check whether the Specter API is up and can reach its databases: status 'OK', or 'ERROR' when a backing database is unreachable. Free; needs no credits. Use this to tell a Specter outage apart from a credential problem (validatecredential) or credit exhaustion (getcredit_balance).

find_person_id

Resolve 1-50 LinkedIn identifiers (profile URL, vanity ID, numeric ID or URN) to Specter person IDs. Free; one match group per input, in order; unknown profiles get an empty match list and are not enriched. Use this to get a personid for getperson; use enrich_person to fetch a profile Specter lacks.

enrich_person_by_email

Resolve one email address to the most likely Specter person and return the full profile plus a match score (1-10; 7+ is reliable). 2 credits per match; found=false when nothing matches. Use enrichpeoplebyemailbulk for up to 50 emails, or getperson when you already have a personid.

enrich_people_by_email_bulk

Resolve up to 50 email addresses to Specter people in one call; each match is a full profile echoing the email it matched plus a score. 2 credits per match; unmatched emails are omitted and order is not guaranteed. Use enrichpersonby_email for a single address.

get_person

Get the full professional profile for one person by personid: career history, education, skills, languages, socials and signal IDs. 1 credit. Use findpersonid, searchentities or getcompanyemployees to get a personid; use enrichperson when you only have a LinkedIn identifier.

get_person_email

Get a contactable email for a person via a multi-provider waterfall, optionally only a personal or professional one. 2 credits per match; found=false when none of that type is on file. Use findpersonid or searchentities to get a personid.

enrich_person

Look up and enrich one person by a LinkedIn identifier (URL, vanity ID, numeric ID or URN). Returns the profile with status 'found', or status 'queued' when Specter starts enrichment (ready within ~24h; not charged). 1 credit per match. Use getperson when you already have a personid.

enrich_people_bulk

Enrich up to 50 people by LinkedIn identifier in one call. Rows come back in input order, each 'found' with the profile or 'queued' when enrichment started (not charged). 1 credit per match. Use enrichperson for one lookup, or getperson when you already have a person_id.

get_person_talent_signals

List one person's talent signals (job moves, new companies, stealth starts), newest first, with the profile at signal time; filter by signal date; paginated (page/limit, max 50). Use findpersonid or searchentities to get a personid; use listtalentsignals for the cross-person feed.

list_saved_searches

List the saved searches shared with the API across every product, each with id, name, producttype (company, people, investors, talent, stratintel, fundingrounds, acquisition, ipo), queryid and counts. Free. Use this to get a searchid, then call the get*searchresults tool matching producttype.

create_saved_search

Save an aisearch query under a name so its results can be re-read later. Call aisearch first and pass its query_id. The product comes from the query; the search is shared with your team and owned by an admin. Free. A duplicate name fails with a conflict. Returns the new search id.

delete_saved_search

Permanently delete a saved search and its data; it disappears from users' saved searches and cannot be undone. Only searches shared with the API (and admin-owned) can be deleted. Free. Use listsavedsearches to get the search_id.

get_company_search

Get count-level details of one saved company search: name, queryid, owner and the number of companies matched and newly added (newcount). Free. Use listsavedsearches to get a searchid whose producttype is 'company'; use getcompanysearch_results to read the matching companies.

get_company_search_results

Read the companies matching a saved company search, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Returns a lean field set by default; pass fields=['all'] for full records or a field list to select more. Use listsavedsearches to get a searchid with producttype 'company'.

get_investor_search

Get count-level details of one saved investor search: name, queryid, owner and the number of investors matched. Free. Use listsavedsearches to get a searchid whose producttype is 'investors'; use getinvestorsearchresults to read the matching investors.

get_investor_search_results

Read the investors matching a saved investor search, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Returns a lean field set by default; pass fields=['all'] for full records or a field list to select more. Use listsavedsearches to get a searchid with producttype 'investors'.

get_people_search

Get count-level details of one saved people search: name, queryid, owner and the number of people matched. Free. Use listsavedsearches to get a searchid whose producttype is 'people'; use getpeoplesearchresults to read the matching people.

get_people_search_results

Read the people matching a saved people search, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Returns a lean field set by default; pass fields=['all'] for full records or a field list to select more. Use listsavedsearches to get a searchid with producttype 'people'.

get_talent_search

Get count-level details of one saved talent signal search: name, queryid, owner and the number of talent signals matched. Free. Use listsavedsearches to get a searchid whose producttype is 'talent'; use gettalentsearchresults to read the matching talent signals.

get_talent_search_results

Read the talent signals matching a saved talent signal search, filter by signal date, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Returns a lean field set by default; pass fields=['all'] for full records or a field list to select more. Use listsavedsearches to get a searchid with producttype 'talent'.

get_interest_search

Get count-level details of one saved investor-interest search: name, queryid, owner and the number of investor-interest signals matched. Free. Use listsavedsearches to get a searchid whose producttype is 'stratintel'; use getinterestsearchresults to read the matching investor-interest signals.

get_interest_search_results

Read the investor-interest signals matching a saved investor-interest search, filter by signal date, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Use listsavedsearches to get a searchid with producttype 'stratintel'.

get_funding_round_search

Get count-level details of one saved funding round search: name, queryid, owner and the number of funding rounds matched. Free. Use listsavedsearches to get a searchid whose producttype is 'fundingrounds'; use getfundingroundsearchresults to read the matching funding rounds.

get_funding_round_search_results

Read the funding rounds matching a saved funding round search, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Use listsavedsearches to get a searchid with producttype 'funding_rounds'.

get_acquisition_search

Get count-level details of one saved acquisition search: name, queryid, owner and the number of acquisitions matched. Free. Use listsavedsearches to get a searchid whose producttype is 'acquisition'; use getacquisitionsearchresults to read the matching acquisitions.

get_acquisition_search_results

Read the acquisitions matching a saved acquisition search, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Use listsavedsearches to get a searchid with producttype 'acquisition'.

get_ipo_search

Get count-level details of one saved IPO search: name, queryid, owner and the number of IPOs matched. Free. Use listsavedsearches to get a searchid whose producttype is 'ipo'; use getiposearchresults to read the matching IPOs.

get_ipo_search_results

Read the IPOs matching a saved IPO search, or only those added since newresultsafter (poll for new matches); paginated (page/limit, max 5000); 1 credit per result. Use listsavedsearches to get a searchid with producttype 'ipo'.

search_entities

Fuzzy-search one name across companies, people and investors in one free call; matches are grouped by type with a matchconfidence and carry the companyid, personid or investorid other tools take. Use this when you only have a name; use ai_search for descriptive queries like 'fintech in Germany'.

ai_search

Search Specter with a plain-English query (e.g. 'Series A climate startups in Europe'); returns matching companies, people, investors, signals or transactions plus a queryid and total. Pass the queryid to createsavedsearch to save it. 1 credit per 5 results. Use search_entities for a name lookup.

validate_credential

Validate the Specter API key by reading the organization's credit balance, a free authenticated call. Returns success and a message. Use this first to confirm the key works before running other tools; use getcreditbalance to read the balance itself.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Specter  MCP server

FAQs on using Merge's Specter  MCP server

Explore other MCP servers built and managed by Merge

smartrecruiters
SmartRecruiters
smartsheet
Smartsheet
snowflake
Snowflake
sonarqube_cloud
SonarQube Cloud
splunk
Splunk
spotify
Spotify
sprout_social
Sprout Social
square
Square
statsig
Statsig
straker
Straker
stripe
Stripe
stripe_link
Stripe Link Agent Wallet
supabase
Supabase
tavily
Tavily
teamcity
TeamCity
teamwork
Teamwork.com
terraform
Terraform
ticketmaster
Ticketmaster
tiktok
TikTok
tiktok_business
TikTok for Business
tinyfish
TinyFish
tinypng_api
TinyPNG
trello
Trello
tripadvisor
TripAdvisor

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now