GTM Tools MCP server
A read-only MCP server over the verified directory — the same data this site reads: live endpoint reachability, confirmed pricing, and honest last_checked_at timestamps. Point your agent at it and it can search, fetch, and compare 317 GTM tools without scraping or guessing. Don't trust us — it's checked.
Endpoint
https://mcp.gtmtools.dev/mcp Transport: Streamable HTTP (JSON-RPC over POST) Auth: none — public, read-only Server: dev.gtmtools/gtm-tools
Connect
Claude (claude.ai or the desktop app) — no config file needed:
Settings → Connectors → Add custom connector Name: GTM Tools URL: https://mcp.gtmtools.dev/mcp
Claude Code — one command:
claude mcp add --transport http gtm-tools https://mcp.gtmtools.dev/mcp
Cursor — add to ~/.cursor/mcp.json:
{
"mcpServers": {
"gtm-tools": { "url": "https://mcp.gtmtools.dev/mcp" }
}
}Other clients — any client that speaks remote / streamable-HTTP MCP works; the URL is all it needs. For clients that only support local (stdio) servers, bridge with mcp-remote:
{
"mcpServers": {
"gtm-tools": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.gtmtools.dev/mcp"]
}
}
}Try it standalone with the MCP Inspector — no config, just point it at the URL:
npx @modelcontextprotocol/inspector # Transport: Streamable HTTP · URL: https://mcp.gtmtools.dev/mcp
Tools
search_toolsSearch the directory. Filter by keyword, category, tier (BADGE/listed/DEMOTE), verifiedOnly, or mcpOnly; sort by score (default), name, or g2.args: query?, category?, tier?, verifiedOnly?, mcpOnly?, sort?, limit?
get_toolOne tool by name or slug — full verified status (real last_checked_at), curation, product signals, adoption, and verified review themes.args: name_or_slug
compare_toolsTwo tools head-to-head. Returns both records plus a per-axis diff (overall score, API quality, GTM relevance, ease of use, free tier).args: a, b
list_changesRecently detected changes (pricing, reachability, free-tier, deprecation), newest first.args: limit?, kind?
All read-only. Every result carries the tool's real last_checked_at and a _meta.dataAsOf so an agent always knows how fresh the answer is.
Example
POST https://mcp.gtmtools.dev/mcp
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_tool","arguments":{"name_or_slug":"Apollo.io"}}}
→ tool.verified: { status:"reachable",
lastCheckedAt:"2026-07-30T08:58:02Z",
pricing:{ status, current, freeTierConfirmed } }
tool.curation: { tier:"BADGE", score, gate, mcp }
tool.curatedSummary: "Rated 4.7/5 across 9694 verified G2 reviews…"Prefer raw REST?
The same verified data is also a plain REST endpoint (no MCP client needed) — see the API docs and the verified core. For bulk/LLM ingestion there's llms-full.txt.