mcp-gtm-suite
mcp-gtm-suite is an MCP server exposing 21 Apify-backed GTM account-intelligence tools for resolving, enriching, monitoring, scoring, and activating company/contact data.
Resolve and enrich companies: canonical identity, LinkedIn URL, legal entity, firmographics, social profiles, and contact titles/departments/seniority.
Detect buying and GTM signals: GTM hiring, tech stack, job-board keywords, funding/press events, company changes, AI tooling, outbound infrastructure, publication cadence, event presence, public awards, and indexed LinkedIn posts.
Score and aggregate: composite GTM signal scores, ICP fit scores/tiers with explanations, and contact classification.
Audit readiness: check whether AI agents can read a site via llms.txt, robots.txt AI policy, structured data, render mode, and machine-readable endpoints.
Activate leads: push enriched leads to Instantly or Smartlead campaigns with field mapping, ICP-score gating, deduplication, and dry-run support.
Operate safely: every tool accepts a per-call
max_charge_usdspending cap; all tools read public data exceptpush_leads_to_sequencer, which writes unlessdry_runis true; requires anAPIFY_TOKENand consumes Apify credits.
Uses OpenAI's language models to score companies against an ideal customer profile via the score_icp_fit tool.
Mamba Labs GTM Suite MCP Server
One MCP server that exposes the Mamba Labs GTM Suite. Install a single package and get all twenty one account-intelligence tools in your MCP client, each wrapping a Mamba Labs actor on Apify and returning Clay-ready flat JSON.
What's Inside
Related MCP server: mcp-icp-fit-scorer
What it does
This server gives an AI client twenty one account-intelligence tools in one place, covering the full GTM workflow: resolve identity, enrich the account, detect buying signals, score fit, and push the survivors into a sequencer.
Identity and enrichment
resolve_company_identity: reconcile name, domain, and LinkedIn URL into one canonical identity with confidence scoresenrich_company_firmographics: enrich a domain into employee band, industry, HQ, founded year, revenue, logo, and descriptionmap_company_social_presence: map a domain to LinkedIn, X, Instagram, Facebook, and YouTube URLs and follower countsresolve_linkedin_url: resolve a domain or name to a LinkedIn company URL
Signals
scan_gtm_hiring_signals: detect GTM hiring activity from career pagesdetect_gtm_tech_stack: detect CRM, sequencer, and marketing automation toolsscan_job_board_keywords: scan job boards for roles in any categoryget_funding_press_signals: scan news and PR wires for funding, exec moves, launches, and acquisitionsget_company_changes: monitor a domain and return only what changed since the last run; choose the sources to watch and a severity floordetect_ai_tooling: determine whether a company declares, deploys, or charges for AIfingerprint_outbound_infrastructure: determine whether a company runs cold outbound, on what stack, and from which lookalike sending domainstrack_publication_cadence: how much long-form work a company publishes per month, and whether that rate is rising or falling
Scoring
aggregate_gtm_signals: combine hiring and tech-stack signals, plus funding, events, or workplace on request, into one composite scorescore_icp_fit: score a company against your ideal customer profile
Entity and record resolution
resolve_legal_entity: resolve a domain to its registered legal entity in Companies House, GLEIF or SEC EDGARclassify_contact: turn a job title into a department, a seniority level and a sortable rank, by deterministic rule
Reach and readiness
audit_agent_accessibility: whether an AI agent can read a site, and what the site's policy says about itmap_company_event_presence: the third-party conferences a company publicly says it attendsmonitor_public_awards: the companies that won work in a public award register, one row per winnercapture_linkedin_posts_and_commenters: the LinkedIn posts a search engine has indexed for profiles and company pages, with no request to LinkedIn (commenters removed 2026-10-12)
All of the work runs on Apify. This package is a thin client that routes each tool call to the right actor and hands back the result.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config:
{
"mcpServers": {
"mamba-gtm-suite": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-gtm-suite"],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}Get your token at https://console.apify.com/account/integrations, paste it in, and restart Claude Desktop. All twenty one tools will be available.
Prerequisites
Node.js 18 or newer
An Apify account with an API token
Example prompts
"Profile stripe.com: firmographics, hiring signals, tech stack, and an overall GTM score."
"Resolve the canonical identity for Deel, then enrich its firmographics and social presence."
"Find figma.com's LinkedIn URL, then score it against my ICP."
"Any funding or exec moves at openai.com recently, and what CRM do they use?"
"What changed at datadoghq.com since last week?"
Tools and inputs
Each tool maps to one Apify actor. Every input each tool accepts is listed below, generated from the server's own tool list. Where a tool marks nothing required, it still needs one identifier: the tool says which when you call it without one.
scan_gtm_hiring_signals(8 inputs): requireddomain; optionalrole_filter,ats_slug,mode,include_role_details,previous_gtm_role_count,previous_run_date,max_charge_usddetect_gtm_tech_stack(7 inputs): optionaldomain,company_domain,url,crawl_additional_pages,skipCache,technologies,max_charge_usdaggregate_gtm_signals(5 inputs): requiredcompany_domain; optionalinclude_summary,explain_mode,sources,max_charge_usdscan_job_board_keywords(7 inputs): requiredcompany_domain,role_categories; optionalcustom_keywords,enable_fallback,previous_roles_detected,previous_run_date,max_charge_usdresolve_linkedin_url(6 inputs): optionalcompany_domain,company_name,includeFirmographics,skipCache,minConfidenceScore,max_charge_usdscore_icp_fit(44 inputs): requiredcompany_domain; optionalcompany_name,template,scoring_config,icp_description,llm_api_key,llm_provider,fetch_signals,include_explanation,tier_thresholds,funded_within_days,min_score_to_output,previous_score,gtm_hiring_signal,gtm_role_count,uses_hubspot,uses_salesforce,uses_clay,crm_detected,seq_tool_detected,tech_stack,headcount,headcount_min,headcount_max,headcount_in_range,employee_band,revenue_estimate,hq_location,founded_year,recently_funded,last_funding_date,latest_funding_date,latest_funding_amount,funding_stage,industry,industry_match,target_industries,social_platforms_found,total_followers,has_linkedin,has_twitter,job_count,keyword_match_count,max_charge_usdresolve_company_identity(6 inputs): optionalcompany_name,domain,linkedin_url,skipCache,minLinkedinConfidence,max_charge_usdenrich_company_firmographics(6 inputs): optionaldomain,company_name,domains,batchSize,skipCache,max_charge_usdmap_company_social_presence(6 inputs): optionalcompany_domain,company_name,platforms,includeFollowerCounts,skipCache,max_charge_usdget_funding_press_signals(5 inputs): requireddomain; optionalcompany_name,signal_types,lookback_days,max_charge_usdget_company_changes(7 inputs): requireddomain; optionalcompany_name,previous_snapshot,sub_actor_timeout_secs,sources,min_severity,max_charge_usddetect_ai_tooling(7 inputs): optionaldomain,domains,check_pricing,skipCache,request_timeout_ms,vendors,max_charge_usdfingerprint_outbound_infrastructure(10 inputs): optionaldomain,domains,scan_sending_domains,sending_domain_depth,check_deliverability,skipCache,max_sending_domain_probes,request_timeout_ms,dns_timeout_ms,max_charge_usdtrack_publication_cadence(9 inputs): optionaldomain,domains,max_pages_to_date,domain_time_budget_ms,skipCache,page_concurrency,max_sitemap_fetches,request_timeout_ms,max_charge_usdpush_leads_to_sequencer(11 inputs): requiredsequencer,campaign_id; optionalapi_key,leads,dataset_id,min_icp_score,deduplicate,dry_run,field_mapping,custom_variables,max_charge_usdaudit_agent_accessibility(6 inputs): requireddomain; optionalcheck_endpoints,check_structured_data,skipCache,checks,max_charge_usdclassify_contact(9 inputs): requiredjob_title; optionalfull_name,company_domain,verify_position,use_llm_fallback,llm_provider,llm_model,skipCache,max_charge_usdmap_company_event_presence(7 inputs): requireddomain; optionalcompany_name,years,include_own_events,max_queries,skipCache,max_charge_usdresolve_legal_entity(9 inputs): requireddomain,sec_requester_name,sec_requester_email; optionallegal_name_hint,jurisdiction_hint,match_strictness,validate_vat,skipCache,max_charge_usdmonitor_public_awards(8 inputs): requiredregister; optionalwindow_days,min_award_value,max_entities,exclude_government_recipients,resolve_domains,domain_confidence_floor,max_charge_usdcapture_linkedin_posts_and_commenters(4 inputs): optionalprofile_urls,company_urls,posted_since,max_charge_usd.
Every tool also accepts max_charge_usd, an optional spending cap in USD for that call: the actor stops before any charge that would take the run past it and keeps every row already charged.
push_leads_to_sequencer is the only tool here that writes: it adds leads to your campaign unless dry_run is true.
Pricing
Each tool runs its actor on your own Apify account and is billed there, pay per event. Every run also carries Apify's actor start event at $0.00005 per GB of memory. Prices below are read from each actor's live pricing record on 2026-10-16; the Apify page of each actor carries the current price.
Tool | Events and price per event (USD) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A pricing change takes effect on 2026-10-26 for company-firmographic-enricher, company-identity-resolver, domain-to-linkedin-url-resolver: the charge moves to a result event. Check the actor's Apify page after that date.
How each call runs
Each call starts the actor run, polls it until it finishes, then reads the dataset. A run is allowed 1,800 seconds. If the run is still going when this call stops waiting, the call returns the run id and a console link instead of a timeout, so the result is never lost.
Full actor documentation
For the complete input and output reference, pricing, and run history of each actor, see the Mamba Labs Apify Store page:
Mamba Labs GTM Suite
This is the umbrella server for the Mamba Labs GTM Suite: twenty one account-intelligence tools for go-to-market signal intelligence, each backed by a dedicated Apify actor and also published as its own standalone MCP server. The Mamba Labs fleet has 127 public actors; the brand presence mappers, the influencer suite, Expert Witness Directory, and the other actors outside this list are available as their own servers under @mambalabsdev on npm.
Tool | Actor | Immutable Actor ID |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
The Domain Deliverability Checker actor is published as a standalone MCP server but is intentionally not bundled here: it audits email-sending infrastructure (SPF, DKIM, DMARC, blacklists) rather than account intelligence, so it sits outside this suite's scope.
Built by Mamba Labs | npm | Apify Store | mambabuilt.com
License
MIT
Built by Mamba Labs. https://apify.com/mambalabs
Available Tools
21 toolsaggregate_gtm_signalsAggregate GTM SignalsAIdempotent
Aggregate a company's GTM signals into one composite score. Runs hiring and tech-stack detection by default, plus funding, events, or workplace when named in sources, in one call and returns a composite score, recommended action, and optional summary as a flat, Clay-ready JSON row. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: company_domain (required), sources, explain_mode, max_charge_usd, +1 more.
audit_agent_accessibilityAudit Agent AccessibilityAIdempotent
Give it a domain and it returns whether an AI agent can read that site, and what the site's policy says, as one flat row of 42 fields across five families: the llms.txt family including llms-full.txt and ai.txt, robots.txt AI crawler policy including the newer Content Signal directives, structured data presence and health across JSON-LD, microdata, Open Graph and canonical, render mode, and machine readable endpoint discovery covering sitemap, OpenAPI, well known files and feeds. Every field is a fact read off a fetch. No model is called at any point, so the same domain returns the same row today and next month unless the site actually changed. Twelve requests per domain, typically 2 to 4 seconds. Built for a technical SEO or growth engineer preparing a site for AI crawlers, or an agency selling that work and needing a before and after audit across a client list. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
Inputs: domain (required), checks, skipCache, max_charge_usd, +2 more.
capture_linkedin_posts_and_commentersCapture LinkedIn Posts and CommentersAIdempotent
Point it at LinkedIn person profiles or company pages and it returns the posts a search engine has indexed for each one, as flat rows: permalink, author, a text excerpt, and the publish date decoded from the post id. No request is sent to LinkedIn and no cookie or account is used. A result counts only when its permalink names the source, so posts are never attributed to the wrong author. Coverage is what the search index holds: posts appear days or weeks after publishing and many never appear. Commenters, reaction counts, comment counts and media are no longer returned (removed 2026-10-12, they came only from LinkedIn pages). Rows carry row_type post or notice; filter on row_type before loading a table. post_id is the activity URN and is stable across runs. Every row carries degraded and degradation_reason. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
Inputs: company_urls, posted_since, profile_urls, max_charge_usd.
classify_contactClassify ContactAIdempotent
One contact in, one classified row out. Give it a job title and it returns the department, the seniority level, a seniority_rank from 1 to 12 you can filter with a comparison, and classification_rule, the named rule that fired, so every decision is auditable. The classification is a deterministic rule table: it needs no API key, calls no model, and returns the same answer for the same title every time. Only job_title is required. full_name and company_domain are read only when verify_position is on, which checks whether the person is still listed on their employer's own website and adds roughly 3 seconds and 9 requests per contact. The optional LLM fallback for titles the rules cannot place runs on your own key, set as the LLM_API_KEY secret environment variable on your own copy of the actor, and only the title is ever sent, never the person's name. With no key set those titles come back null rather than failing the row. This actor does not discover people: the name and title come from you. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
Inputs: job_title (required), full_name, llm_model, skipCache, +5 more.
detect_ai_toolingDetect AI ToolingAIdempotent
Given a company domain, determine how far that company has gone with AI. Returns an ai_maturity tier of none, declared (says AI but nothing observable is running), deployed (AI tooling is live on the site), or commercialized (the pricing page charges for AI via credits, tokens, an add-on, an AI-named plan, or a per-outcome price), plus the detected AI vendors, validated llms.txt status, robots.txt AI-crawler policy, and the evidence behind the verdict. A domain behind a bot challenge returns blocked=true at low confidence rather than a false negative. Returns flat, Clay-ready JSON. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per domain analyzed.
Inputs: domain, domains, vendors, skipCache, +3 more.
detect_gtm_tech_stackDetect GTM Tech StackAIdempotent
Detect which GTM tools a company uses from its public website. Returns CRM, sequencer, and marketing automation signals with per-tool boolean flags as a flat, Clay-ready JSON row. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: url, domain, skipCache, technologies, +3 more.
enrich_company_firmographicsEnrich Company FirmographicsAIdempotent
Enrich a company domain into structured firmographics: employee band, industry, HQ, founded year, revenue estimate, logo, and description, with source provenance. Parsed from the company's schema.org/Organization JSON-LD and HTML meta tags and returned as a flat, Clay-ready JSON row with a source_signals array and a data_completeness score. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: domain, domains, batchSize, skipCache, +2 more.
fingerprint_outbound_infrastructureFingerprint Outbound InfrastructureAIdempotent
Given a company domain, determine whether that company runs cold email outbound and on what stack. Returns a runs_outbound verdict of program (a deliberate cold outbound setup), light (one weak signal), none, or unknown, with the evidence behind it. The strongest signal is the lookalike sending domains a real program leaves behind: domains like getcompany.com or company-mail.com that carry their own mail and redirect back to the primary site. Also returns the inbox provider (Google Workspace, Microsoft 365 and others) for the primary domain and each sending domain, any detected sending platform (Outreach, Salesloft, Lemlist, Instantly, Smartlead, Apollo and more), registration clusters showing sending domains bought on the same day, cold email infrastructure vendors, and SPF, DKIM and DMARC posture. Sending platform recall is partial by design: sequencers that connect over OAuth to a customer's own mailbox leave no DNS trace, so an empty sending_platforms means little while a populated one is solid. Public DNS and HTTP redirects only. Returns flat, Clay-ready JSON. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per domain analyzed.
Inputs: domain, domains, skipCache, dns_timeout_ms, +6 more.
get_company_changesGet Company ChangesA
Monitor a company domain for changes across hiring, tech stack, funding, firmographics, and social since the last run. Returns only what changed as typed change events in flat, Clay-ready JSON. Pass sources to watch fewer than all five sources and min_severity to drop minor changes; each source left out is one fewer sub actor run on the bill. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: domain (required), sources, company_name, min_severity, +3 more.
get_funding_press_signalsGet Funding and Press SignalsAIdempotent
Scan Google News and PR wires for funding rounds, executive moves, product launches, and acquisitions at any company domain. Returns deduplicated, dated events in flat Clay-ready JSON. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: domain (required), company_name, signal_types, lookback_days, +1 more.
map_company_event_presenceMap Company Event PresenceAIdempotent
Give it a company domain. It returns the third party conferences and trade shows that company publicly says it attends, with a year for each where one can be resolved, as one flat row. The search runs against the company's own domain, which is what stops a brand collision returning another company's events. The company's own conference is reported separately and is never mixed into the attendance list. It finds events for roughly 2 companies in 10, and an empty row is an honest empty row rather than a guess: read coverage, fetch_status and queries_failed to tell a company with no published events apart from a search that could not see. Events dated outside the years you ask for are still returned and flagged, so filter on event year rather than assuming the input filtered for you. This is not an events database and not an exhibitor list: it takes a company and reports what that company publishes. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
Inputs: domain (required), years, skipCache, max_queries, +3 more.
map_company_social_presenceMap Company Social PresenceAIdempotent
Map a company's social media presence across LinkedIn, X, Instagram, Facebook, and YouTube. Returns profile URLs and follower counts in flat Clay-ready JSON. Profiles are discovered from the company's own homepage links, a web search fallback, and pattern guessing, then validated against the company. Follower counts are extracted where public; X is URL-only (its count needs login) and Instagram and Facebook counts are best-effort. Provide at least one of company_domain or company_name. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: platforms, skipCache, company_name, company_domain, +2 more.
monitor_public_awardsMonitor Public AwardsAIdempotent
Pick a public award register and a time window and it returns the companies that won public work in it, one flat row per winning company rather than one per award, with award count, total value, largest award, awarding body, award date, a deep link to the source record, and a resolved company domain. Five registers are covered: US federal contracts and US federal grants from USASpending, NIH SBIR and STTR from NIH RePORTER, and UK Contracts Finder and UK Find a Tender. This reports awards that have already been made, so it is not a tender feed and will not tell you what is open to bid on. US federal data lags about two days, so a one day window on a US register returns little or nothing. Winners are sorted by total award value and max_entities is the hard cap on billed rows. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
Inputs: register (required), window_days, max_entities, max_charge_usd, +4 more.
push_leads_to_sequencerPush Leads to SequencerA
Push enriched lead rows into an existing Instantly or Smartlead campaign. Maps common Clay column names onto each sequencer's own field names, optionally drops leads below a minimum ICP score, optionally deduplicates against the leads already in the destination campaign, and sends the rest in batches. Returns one flat summary row: how many leads were received, dropped for having no usable email, dropped by the ICP gate, dropped as duplicates, eligible, actually created by the sequencer, skipped by the sequencer, and failed, plus the vendor's own error message per failed address. The campaign must already exist; this does not create campaigns or write sequence copy. Set dry_run true to get back the exact request payload that would be sent without creating a single lead and without being charged, which is the safe way to check a mapping against a new campaign. Billing is per lead the sequencer confirms it created, so gated, duplicate, skipped, failed and dry-run leads are all free. Instantly uses API v2 and needs a v2 key; Smartlead uses API v1. Requires an APIFY_TOKEN and consumes Apify credits. This WRITES to your sequencer campaign unless dry_run is true.
Inputs: sequencer (required), campaign_id (required), leads, api_key, +7 more.
resolve_company_identityResolve Company IdentityAIdempotent
Resolve any combination of company name, domain, or LinkedIn URL into one canonical company identity: the name, primary domain, and LinkedIn company URL, each with a 0-100 confidence score plus an overall score and a match method. Cross-checks the inputs you give it, resolves the ones you do not, and flags conflicts (a domain and a LinkedIn slug that disagree) instead of merging them. A LinkedIn URL the actor finds is returned only when verified against the company site or the name, with the reason in linkedin_verification. Provide at least one of company_name, domain, or linkedin_url. Use this to reconcile or deduplicate records you already hold; use resolve_linkedin_url instead when you only need the LinkedIn company URL for a domain or name. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: domain, skipCache, company_name, linkedin_url, +2 more.
resolve_legal_entityResolve Legal EntityAIdempotent
Give it a company domain and it returns the registered legal entity behind it: legal name, company number, jurisdiction, status, entity type, LEI and VAT number, as one flat row with a full audit trail of what was rejected and why. Three registers are queried: UK Companies House, GLEIF and SEC EDGAR. Register search endpoints are fuzzy and always return something, so by default a record is accepted only when the normalized legal names are identical. That is why roughly 6 domains in 10 resolve rather than 10 in 10, and why a null here is a trustworthy answer rather than a gap. Read match_method, match_confidence and rejected_candidates before acting on a match. Setting match_strictness to fuzzy will hand you a confidently wrong company on most domains and should be treated as a research mode, not a default. This is not a company database and not a credit or risk product. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
Inputs: domain (required), sec_requester_name (required), sec_requester_email (required), skipCache, +5 more.
resolve_linkedin_urlResolve LinkedIn URLAIdempotent
Resolve a company domain or name to its LinkedIn company URL, with a 0-100 confidence_score, social links, and optional firmographics from search snippets, as a flat, Clay-ready JSON row. A URL is returned only when verified: the company homepage links it, or its name is identical to the name the company site declares or the company_name you pass; otherwise linkedin_company_url is null and verification says why. No request is sent to LinkedIn. Provide at least one of company_domain or company_name. Use this when the LinkedIn company URL is the answer you need; use resolve_company_identity instead to cross-check a name, domain, and LinkedIn URL you already hold and get a canonical identity with conflicts flagged. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: skipCache, company_name, company_domain, max_charge_usd, +2 more.
scan_gtm_hiring_signalsScan GTM Hiring SignalsAIdempotent
Scan company career pages to detect GTM hiring activity. Returns sales, marketing, and revenue operations job postings across Greenhouse, Lever, and Ashby as a flat, Clay-ready JSON row. Use this for a go-to-market hiring verdict (is the company building its sales and marketing team, and how fast); use scan_job_board_keywords instead to count open roles in categories or keywords you choose, including non-GTM roles. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: domain (required), mode, ats_slug, role_filter, +4 more.
scan_job_board_keywordsScan Job Board KeywordsAIdempotent
Scan a company's job board for roles in chosen categories across Greenhouse, Lever, Ashby, Workday, and Rippling. Returns matched role counts and titles per category as a flat, Clay-ready JSON row. Use this when you choose the role categories or keywords (engineering, finance, a product name in a job ad); use scan_gtm_hiring_signals instead for the fixed sales and marketing hiring verdict. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: company_domain (required), role_categories (required), max_charge_usd, custom_keywords, +3 more.
score_icp_fitScore ICP FitAIdempotent
Score a company against your ideal customer profile (ICP) using weighted signals. Returns a 0 to 100 icp_score, an A to D icp_tier, and a per-signal breakdown as a flat, Clay-ready JSON row. Define your ICP with a template, scoring_config, or plain-English icp_description (which requires llm_api_key). Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Inputs: company_domain (required), industry, template, headcount, +40 more.
track_publication_cadenceTrack Publication CadenceAIdempotent
Given a company domain, measure how much long-form work that company publishes and whether the rate is rising or falling. Returns post counts for the last 30 days, 90 days and 12 months, a monthly average, and a cadence_trend of accelerating, steady, declining, dormant or unknown, with the percent change behind it. The trend compares the last 90 days against the prior 275 days, both normalized to posts per month. Also returns the blog URL, the format mix (blog posts, guides, reports, case studies, whitepapers, podcasts, videos, press releases, research), the number of distinct bylines, and how the post list was discovered. This measures EDITORIAL output volume, not product changelogs: a release feed is detected and rejected rather than counted. Publication dates are read from the post pages, because sitemap lastmod was measured to be a modification date running later than publication by a median of 151 to 1653 days. When a site's date field tracks edits rather than publication, date_source_reliable comes back false and every count is nulled rather than reported wrong, so read that field before quoting a number. Counts are a census when the archive fits the page budget and a scaled even sample otherwise, flagged by counts_are_estimate. Public sitemaps, feeds and pages only. Returns flat, Clay-ready JSON. Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per domain analyzed.
Inputs: domain, domains, skipCache, max_charge_usd, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Most tools target clearly distinct resources (hiring, tech stack, funding, social, events, awards, legal entity, AI, outbound, publications), and descriptions explicitly cross-reference sibling tools to steer selection (e.g. scan_job_board_keywords vs scan_gtm_hiring_signals). The main overlap is compositional: aggregate_gtm_signals and get_company_changes both re-invoke the primitive scan/detect tools, so an agent must decide composite vs primitive despite the explanations.
Every tool follows a strict snake_case verb_noun convention (scan_*, resolve_*, detect_*, map_*, get_*, audit_*, classify_*, monitor_*, capture_*). No camelCase or mixed styles, and the verb choice is predictable across the whole suite.
At 21 tools the suite is on the heavier side, but each tool maps to a genuinely distinct enrichment or action (identity, firmographics, funding, AI maturity, outbound infra, publication cadence, awards, etc.), so nothing is redundant filler. It is slightly over the ideal range for a single server rather than bloated with duplicates.
The GTM enrichment surface is broad, covering firmographics, hiring, tech stack, funding, social, events, awards, legal entity, ICP scoring, and sequencer push. The notable gap is people/contact discovery: classify_contact explicitly does not find people, and there is no email or contact-finder tool, which a full GTM workflow would need (presumably supplied externally via Clay).
Maintenance
Related MCP Connectors
Go-to-market infrastructure for AI agents: find leads, verify emails, read signals, run campaigns.
B2B lead generation, email verification, company enrichment, and agentic GTM Ops.
GTM execution layer for AI agents: buyer signals, enrichment and approved LinkedIn outreach over MCP
Live LinkedIn people, company, post and job data, ICP search and job-change signals for AI agents.
Related MCP Servers
- AlicenseAqualityBmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1369 npm1MIT
- AlicenseAqualityBmaintenanceScores companies against a configurable Ideal Customer Profile using firmographic and signal data. Returns a weighted fit score with per-criterion breakdowns.2125 npm3MIT
- AlicenseAqualityBmaintenanceEnables auditing any domain's email deliverability and DNS health, including SPF, DKIM, DMARC, MX, mail provider, DNS blacklist status, catch-all, domain age, and a deliverability score.1290 npm1MIT
- AlicenseAqualityBmaintenanceEnables enriching company domains into structured firmographics including employee band, industry, HQ, founded year, revenue estimate, logo, and description, with source provenance and data completeness scoring.1208 npm1MIT