Skip to main content
Glama
GTM Agent MCP Server

GTM Agent MCP Server

by HumaizTariq

GTM Agent MCP Server

Ask a GTM engineer agent about its own work in plain English, from Claude Code or Claude Desktop: "show Gong's ICP", "what did this week's runs cost?", "rank the prospects".

The agent (research, list building, signals, copy) writes everything to files. Without this server, answering those questions means opening JSON by hand. This server reads the agent's output/ folder and exposes it as 8 read-only MCP tools, plus one guarded tool that starts a new research run.

Claude ──MCP (stdio)──► gtm-mcp ──reads──► agent output/
                                            ├── <client>/profile.json
                                            ├── <prospect>/prospect_brief.json
                                            ├── <client>/signals/, list/
                                            └── runs.jsonl  (every run: status, judge score, cost)

Tools

Tool

Answers

list_clients

Which clients have a profile, last profile run

get_profile

A client's ICP, competitors, signals to watch

list_runs

Run history: status, judge score, retries, force-approves, cost

run_costs

Spend grouped by job, company or day

get_prospect_brief

One prospect's research and fit score

rank_prospects

Prospects ranked by fit score, tiers A / B / C

get_signals

Latest buying-signal alerts with source and date

get_list_summary

Prospect list size and funnel

run_prospect_research

Starts a prospect research run (spends money, guarded)

Related MCP server: signal-prospector

The action tool

run_prospect_research(domain, client, confirm):

  1. Checks the domain and that the client has a profile.

  2. Without confirm, only previews: what will run, estimated cost (average of past runs), today's usage.

  3. Refuses past the daily caps (GTM_MCP_MAX_RUNS, default 5; GTM_MCP_MAX_USD, default $2).

  4. Runs the agent's CLI with a timeout, then reads back the new run log line and brief. A failed run returns the agent's error and is never retried on its own.

  5. Logs every call, refusals included, to calls.jsonl.

Design choices

  • Read tools are read-only, and marked so. They carry read_only_hint and never write or call a paid API. Only run_prospect_research spends, and only after a preview and an explicit confirm.

  • No contact data. Names, emails and LinkedIn URLs in the agent's lists are never returned (tested).

  • Answers cite their file. Every result has a source, so Claude can say where a number came from.

  • Missing data is a message, not a crash. "Signals sweep for 'gong.io' not found" instead of a stack trace.

  • Honest about gaps. The agent does not record which client a prospect brief was scored for, so rank_prospects says it ranks every saved brief.

Run

uv sync
uv run python -m unittest discover -s tests     # 18 tests on fake data; the agent run is faked
claude mcp add gtm-agent -e GTM_AGENT_OUTPUT_DIR=<agent>/output -- uv run --directory <this folder> gtm-mcp

Credits

The GTM engineer agent this server reads from is DFY Automation's open-source GTM Engineer (community edition), MIT licensed: https://github.com/dfyautomation/gtm-engineer-community. This server does not include or modify its code.

Available Tools

9 tools
get_list_summaryB
Read-onlyIdempotent

A client's latest prospect list: company count, funnel and companies. Company-level only, never contact details.

Inputs: client (required).

get_profileB
Read-onlyIdempotent

A client's ICP (industries, size, geographies, buyer titles, qualifiers, disqualifiers), competitors and the buying signals to watch. client: domain or slug, e.g. gong.io.

Inputs: client (required).

get_prospect_briefB
Read-onlyIdempotent

One prospect's research brief: summary, recent news, tech hints, 0-10 fit score with reasoning, and sourced cold-email openers.

Inputs: domain (required).

get_signalsB
Read-onlyIdempotent

Latest buying-signal sweep for a client's prospect list: alerts with source URL and date, and which signals were tracked.

Inputs: client (required).

list_clientsA
Read-onlyIdempotent

List every client that has a profile, with the date of its last profile run.

Inputs: no named parameters.

list_runsA
Read-onlyIdempotent

Past agent runs, newest first: status, judge score, retries, force-approved, cost. Filters: company (domain), job (research, list_building, signals, copywriting), since (ISO date, e.g. 2026-10-01).

Inputs: job, limit, since, company.

rank_prospectsB
Read-onlyIdempotent

All researched prospects ranked by the agent's fit score, with tiers A (8-10), B (5-7), C (0-4).

Inputs: min_score.

run_costsB
Read-onlyIdempotent

Total and grouped spend from the run history. group_by: job, company or day. since: ISO date.

Inputs: since, group_by.

run_prospect_researchA

Start a new prospect research run (spends OpenAI and web search credits). Without confirm it only returns a preview: what will run, estimated cost, today's usage. Pass confirm=true only after the user agrees. Daily run and dollar caps apply. client: the client domain or slug whose ICP the prospect is scored against, e.g. gong.io.

Inputs: client (required), domain (required), confirm.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.0
    • First observedget_list_summary
    • First observedget_profile
    • First observedget_prospect_brief
    • First observedget_signals
    • First observedlist_clients
    • First observedlist_runs
    • First observedrank_prospects
    • First observedrun_costs
    • First observedrun_prospect_research

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target clearly distinct resources (clients, profiles, runs, costs, signals, prospects). Minor overlap exists between get_list_summary and rank_prospects (both surface the prospect list) and between get_profile (client ICP) and get_prospect_brief (single prospect), but descriptions differentiate them adequately.

Naming Consistency4/5

Names follow a mostly predictable verb_noun pattern (list_clients, get_profile, list_runs, get_signals, get_list_summary, rank_prospects, run_prospect_research). 'run_costs' is the one deviation, where 'run' acts as a noun and reads oddly next to the verbs.

Tool Count5/5

Nine tools is well-scoped for a GTM agent workflow, covering clients, prospects, signals, runs and costs without redundancy. Each tool earns its place.

Completeness3/5

Read coverage is broad, but the surface is nearly read-only: only run_prospect_research is an action tool. There is no way to create/update a client, edit an ICP profile, or manage prospect lists, leaving notable lifecycle gaps.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables research on prospects, pull call transcripts, and enrich leads using Gong, ZoomInfo, Clay, and LinkedIn Sales Navigator through natural language.
    16
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables B2B prospecting from natural language: detect buying signals, score leads against ICP, enrich decision-makers, and draft personalized outreach messages via Claude.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to connect to a hosted multichannel B2B outbound engine for LinkedIn messaging, cold email sequencing, and pipeline management, including campaign reads and prospect research. Write actions that send, launch, enroll, or spend credits require chat confirmation before completing.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to answer seller questions from previously saved research using read-only tools for accounts, initiatives, intent signals, key people, knowledge retrieval, and guarded dataset queries. It supports multi-tenant, authenticated access with tenant isolation and enforced read-only security.
    MIT