mcp-gtm-tech-stack-signal-scraper
Detect a company's GTM tech stack from its public website and return a flat, Clay-ready JSON row via MCP.
Detect GTM tools for one or many company domains in a single run (
domain,domains, or deprecatedcompany_domain/url).Filter results to specific technologies like HubSpot, Salesforce, Marketo, Pardot, Intercom, Drift, Apollo, Outreach, Gong, or ZoomInfo.
Optionally crawl up to 2 extra pages per domain for better detection coverage (
crawl_additional_pages).Use the default 7-day cache or force a fresh detection with
skipCache.Get per-tool boolean flags, CRM/sequencer/marketing automation labels, GTM tool count, and a composite tech stack signal.
Run read-only; requires
APIFY_TOKENand consumes Apify credits per call.
Detects whether a company uses HubSpot (CRM, marketing automation, or sequencer) by analyzing its public website scripts and pages.
Detects whether a company uses Intercom as a messaging tool by analyzing its public website.
Detects whether a company uses Salesforce as its CRM by analyzing its public website.
Tech Stack Signal Detector MCP Server
An MCP server that detects which go-to-market tools a company runs, straight from its public website. It wraps the Mamba Labs Tech Stack Signal Detector actor on Apify and returns a Clay-ready flat JSON row to any MCP client.
What's Inside
Related MCP server: Boolsai
What it does
Give it a company domain and it inspects the public-facing scripts and pages to detect the CRM, sequencer, and marketing automation tools in use. You get back per-tool boolean flags (HubSpot, Salesforce, Apollo, Gong, Intercom, Marketo), counts, and a composite tech stack signal, ready to drop into Clay, a CRM, or an AI agent workflow. All of the detection runs on Apify. This package is a thin client that calls the 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-tech-stack": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-gtm-tech-stack-signal-scraper"],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}Get your token at https://console.apify.com/account/integrations, paste it in, and restart Claude Desktop. The detect_gtm_tech_stack tool will be available.
Prerequisites
Node.js 18 or newer
An Apify account with an API token
Example prompts
"What GTM tools does stripe.com run? Check their tech stack."
"Does openai.com use HubSpot or Salesforce? Detect their CRM."
"Pull the marketing automation and sequencer signals for figma.com."
"Detect the GTM tech stack for datadoghq.com and list every tool found."
Inputs
Every input the tool accepts, generated from the server's own tool list.
Input | Type | Required | Description |
| string | no | Bare company domain without https:// and without a trailing slash. Example: stripe.com. Supply this, company_domain or url. |
| string | no | Deprecated alias for domain, accepted by the actor for older callers. Prefer domain. |
| string | no | Deprecated alias for domain, accepted by the actor as a full company website URL. Prefer domain. |
| array of string | no | A list of bare company domains to check in one run, one row per domain. The actor processes them in batches inside a single run, so a list costs one run start instead of one per domain. Use this or domain. |
| boolean | no | If true, crawls up to 2 additional pages per domain (pricing, product) to improve detection coverage. Slightly increases run time. Defaults to true when omitted. |
| array of | no | Report only these tools instead of every detectable one, which is how you answer "is this company using X". Only the ten tools with a client side fingerprint are selectable; Clay, Salesloft, Instantly and Lemlist leave no trace on a website and cannot be detected from one. Detection is unchanged either way, so a filtered call costs the same and reuses the same cache. Omit for every tool. |
| boolean | no | By default a clean detection is cached for 7 days and reused on repeat lookups, skipping the browser launch. Set true to force a fresh detection and ignore any cached result. |
| number | no | Optional spending cap for this call, in USD. The actor stops before any charge that would take the run past this amount and keeps every row already charged. |
Output
The tool returns the actor's flat JSON row for the scanned company. Fields include the detected CRM, sequencer, and marketing automation tools, a GTM tool count, a composite tech stack signal, and per-tool boolean flags such as uses_hubspot, uses_salesforce, uses_apollo, uses_gong, uses_intercom, and uses_marketo. See the Apify Store page for the full output schema.
Example output
{
"company_domain": "hubspot.com",
"crm_detected": "hubspot",
"seq_tool_detected": null,
"uses_hubspot": true,
"uses_salesforce": false,
"uses_apollo": false,
"uses_gong": false,
"uses_intercom": true,
"uses_marketo": false,
"marketing_automation_detected": "hubspot",
"gtm_tool_count": 2,
"tech_stack_signal": "high"
}Features
Per-tool boolean flags: HubSpot, Salesforce, Apollo, Gong, Intercom, Marketo
CRM and sequencer classification, plus marketing automation detection
Composite tech_stack_signal and gtm_tool_count
Flat JSON, every field present in every row
Pricing
You pay per event on Apify, billed to your own Apify account. Prices from the live pricing record, read 2026-10-16:
Event | Price per event (USD) | Fires when |
| $0.015 on the Free plan, down to $0.0128 on higher Apify plans | Single result in the default dataset. |
| $0.00005 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
The actor's Apify page carries the current prices. Running this server consumes Apify credits.
How each call runs
Each call starts the actor run, polls it until it finishes, then reads the dataset. The 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
This server is a thin client and holds no detection logic. For the complete input and output reference, pricing, and run history, see the Apify Store page:
https://apify.com/mambalabs/gtm-tech-stack-signal-scraper
Mamba Labs GTM Suite
This server is one of 58 Mamba Labs MCP servers, each backed by a dedicated Apify actor and published under @mambalabsdev on npm. The ones closest to this server:
Actor | Immutable Actor ID |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
To get twenty one of them in one install, use @mambalabsdev/mcp-gtm-suite.
Built by Mamba Labs | npm | Apify Store
License
MIT
Built by Mamba Labs. https://apify.com/mambalabs
Available Tools
1 tooldetect_gtm_tech_stackDetect GTM Tech StackARead-onlyIdempotent
Detect which GTM tools a company uses from its public-facing website. Returns CRM, sequencer, and marketing automation signals as a flat, Clay-ready JSON row, with per-tool boolean flags for HubSpot, Salesforce, Apollo, Gong, Intercom, and Marketo, plus a composite tech stack signal. Pass technologies to narrow the answer to named tools. Read-only; requires an APIFY_TOKEN and consumes Apify credits per call.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Deprecated alias for domain, accepted by the actor as a full company website URL. Prefer domain. | |
| domain | No | Bare company domain without https:// and without a trailing slash. Example: stripe.com. Supply this, company_domain or url. | |
| domains | No | A list of bare company domains to check in one run, one row per domain. The actor processes them in batches inside a single run, so a list costs one run start instead of one per domain. Use this or domain. | |
| skipCache | No | By default a clean detection is cached for 7 days and reused on repeat lookups, skipping the browser launch. Set true to force a fresh detection and ignore any cached result. | |
| technologies | No | Report only these tools instead of every detectable one, which is how you answer "is this company using X". Only the ten tools with a client side fingerprint are selectable; Clay, Salesloft, Instantly and Lemlist leave no trace on a website and cannot be detected from one. Detection is unchanged either way, so a filtered call costs the same and reuses the same cache. Omit for every tool. | |
| company_domain | No | Deprecated alias for domain, accepted by the actor for older callers. Prefer domain. | |
| crawl_additional_pages | No | If true, crawls up to 2 additional pages per domain (pricing, product) to improve detection coverage. Slightly increases run time. Defaults to true when omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's added value is the APIFY_TOKEN requirement, the per-call Apify credit consumption, and the return shape (flat Clay-ready JSON row with per-tool booleans). 'Read-only' merely restates readOnlyHint, but the auth and cost disclosures are genuinely additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight paragraph with purpose and return shape front-loaded, then usage and preconditions. Nearly every clause earns its place; the 'Read-only' phrase is the only redundant bit against the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly explains the return value (flat JSON row, per-tool booleans, composite signal) and covers auth, cost, and the narrowing option. It does not state that at least one of domain/domains/url must be supplied, though the schema does, leaving only a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters are already documented, including the deprecation aliases, the 7-day cache, and the ten selectable fingerprints. The description's only parameter note ('Pass technologies to narrow the answer to named tools') repeats what the schema already states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Detect which GTM tools a company uses from its public-facing website' — and enumerates the returned signals (CRM, sequencer, marketing automation) plus the specific tool flags. An agent knows exactly what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection guidance for the key optional parameter ('Pass technologies to narrow the answer to named tools') and states the read-only + APIFY_TOKEN + credit-cost preconditions, which tells the agent when the call is appropriate. It stops short of explicit when-not-to-use or alternatives, but with no sibling tools there is little to route against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.6- Changed
detect_gtm_tech_stack8 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / company_domainAdded value: +{ + "description": "Deprecated alias for domain, accepted by the actor for older callers. Prefer domain.", + "type": "string" +} - changed
Input schema / properties / domain / descriptionPrevious value: -"Bare company domain without https:// and without a trailing slash. Example: stripe.com"New value: +"Bare company domain without https:// and without a trailing slash. Example: stripe.com. Supply this, company_domain or url." - added
Input schema / properties / domainsAdded value: +{ + "description": "A list of bare company domains to check in one run, one row per domain. The actor processes them in batches inside a single run, so a list costs one run start instead of one per domain. Use this or domain.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / skipCacheAdded value: +{ + "description": "By default a clean detection is cached for 7 days and reused on repeat lookups, skipping the browser launch. Set true to force a fresh detection and ignore any cached result.", + "type": "boolean" +} - added
Input schema / properties / technologiesAdded value: +{ + "description": "Report only these tools instead of every detectable one, which is how you answer \"is this company using X\". Only the ten tools with a client side fingerprint are selectable; Clay, Salesloft, Instantly and Lemlist leave no trace on a website and cannot be detected from one. Detection is unchanged either way, so a filtered call costs the same and reuses the same cache. Omit for every tool.", + "items": { + "enum": [ + "hubspot", + "salesforce", + "marketo", + "pardot", + "intercom", + "drift", + "apollo", + "outreach", + "gong", + "zoominfo" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / urlAdded value: +{ + "description": "Deprecated alias for domain, accepted by the actor as a full company website URL. Prefer domain.", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "domain" -]
1 tool update
v0.1.0- First observed
detect_gtm_tech_stack
TDQS
Scored across 1 tool
With only one tool in the set, there is no possibility of misselection or overlapping purpose; detect_gtm_tech_stack has an unambiguous, clearly stated role.
The single name follows a clean snake_case verb_noun pattern (detect_gtm_tech_stack) that is descriptive and predictable; there are no other names to conflict with it.
A one-tool server is thin even for a narrow detection purpose; a batch/detect-many variant or a companion tool for listing supported technologies would make the surface feel complete rather than a single point of call.
Core detection is covered and the tool is parameterized, but there is no way to enumerate supported technologies, detect multiple companies in one pass, or retrieve the raw evidence behind each flag, leaving agents to guess valid inputs.
Maintenance
Related MCP Connectors
Extracts verified emails, social links, 40+ tech stack signals, pricing tiers, and company summar.
Extracts verified emails, social links, 40+ tech stack signals, pricing tiers, and company summary
Domain & brand intelligence: company enrichment, tech stack detection, brand research.
Detect the tech stack behind any website: CMS, ecommerce, analytics, CRM, payments, hosting.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceDetects what technologies (CMS, frameworks, analytics, etc.) a website uses by fingerprinting its HTTP response and markup, returning confidence-scored results for single or bulk URL queries.-

Boolsaiofficial
AlicenseNot gradedqualityFmaintenanceEnables AI agents to live-scan any public site's tech stack and query a pre-indexed directory of ecommerce vendors, account IDs, and quant signals, all without authentication.1MIT- AlicenseNot gradedqualityCmaintenanceCompany data for AI agents, paid per call in USDC on Base. Returns every third-party vendor a company can be proven to use — CRM, email, analytics, cloud, HR, payments — each with the DNS record or script that proves it. No signup, no API key.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to investigate any website's technology stack, identifying CMS, ecommerce platforms, JavaScript frameworks, analytics, CRM, marketing automation, payments, chat, CDN, and hosting.-