The GTM MCP Directory
Directory / The data
The data endpoint

The whole directory, as one JSON file.

No key, no signup, no rate limit, no tracking. The same file the site is generated from, the same file the MCP server reads, published as it is. If you are an agent, start here. If you are a person building something, this is the fastest path to it.

1,252
entries
1,236
unique products
201
official MCP servers
849
job tags
4,092
source URLs
1
bench tested
The files
FileBytes What it is
data/directory.json 10,105,911 Every entry with every field, the 15 category blocks, the closed 56 job vocabulary with its per job counts, the duplicate groups, and the counts block the whole site renders from.
data/build_report.json 130,605 The counting authority's report: per file reconciliation, field coverage, every place this build is thin, and the 49 entries the tagging pass flagged for human review.
search-index.json1,150,961 One compact record per unique product, which is what the on page search runs over.
llms.txttext The map, for agents and crawlers. Every section of the site with a one line description.
updates/feed.json 38,934 The public updates feed. One item per digest file on disk. Same bytes as data/updates.json. A date with no DIGEST_*.md is omitted, not invented.
Every field on an entry
FieldWhat it holds
idthe entry id, stable across builds, prefixed with its category number
name / vendor_url / vendor_domainthe product and where it lives
what_it_doesone plain sentence, rewritten. Vendor copy never ships as the description
ai_featureswhat the AI actually does, separated from automation with an AI label on it
mcp_status / mcp_status_bucketthe verbatim field and the normalised bucket
mcp_url / mcp_urlsverbatim, and every URL parsed out of it
mcp_authverbatim. The sentence that decides your security review
api_gate / api_gate_bucketverbatim, and the normalised bucket
jobs / jobs_tagged_by / jobs_tagged_ontags from the closed 56 job vocabulary, and who tagged them when
tier / last_checkedRESEARCHED or BENCH-TESTED, and the date the facts were pulled
sources / source_urls / source_annotationsverbatim, and the URLs parsed out of it
canonical / canonical_id / also_listed_inthe 16 deliberate cross listings and where each one belongs
source_file / source_linethe exact line of the source markdown this entry came from
github_* / docs_digest / submissionpresent on every entry, null on every entry. Nothing has been measured for them
How to read it without getting it wrong

Two counts exist and both are correct. 1,252 entries, 1,236 unique products. The difference is 16 products deliberately listed in two categories. Filter on canonical for products, count everything for entries.

Buckets are normalised, verbatim fields are not. Every bucket has a matching raw field beside it. When they disagree, the raw field is the fact.

Every date means something different. last_checked is when a human pulled that entry's facts. generated_on is only when this file was baked. jobs_tagged_on is when the tags were written. Do not use one for another.

A job tag is not a test. A job tag means the vendor says the tool does this. It is not a test result, not proof the capability is reachable through the tool's MCP server, and not proof it is available on the gate this entry records.

Null means unmeasured, not zero. Every github_* field and docs_digest is null on all 1,252 entries because the rail that would fill them has not run.

Homepage search is the same page with or without a query string. Agents and people can deep-link the capability search with these params. They are applied in the browser from the baked index. They are not in the sitemap, and they do not mint a new page per query.

q is the search phrase (spaces as + or %20). mcp is one of official, community, none-found, unknown, n-a. gate is one of free, paid, enterprise-leaning, enterprise-only, unknown, n-a. cli=1 keeps products that ship a measured official or community CLI. Unknown mcp or gate values are ignored. They do not invent an official server. Example: https://andrewcmcguire.com/gtm-directory/?q=apollo&mcp=official.

Terms

Use it. Attribution to The GTM MCP Directory with a link is the only ask, and it is an ask rather than a licence trap. The data is free because it is more useful when other operators correct it, and a correction is the most valuable thing anyone can send. There is no key to request, no quota, and nothing about you is logged by this site because there is no backend to log it. The one thing on this route that does need a key is the hosted MCP endpoint, and the key is free; per key it records the number of calls and the date last used, and nothing else.

Facts about third party products are recorded from those vendors' own public sources with URLs, and every entry names them. If you are a vendor and something here is wrong, the correction path is the same one everybody else uses.

Provenance
Baked
2026-09-27
By
build_directory.py (phase 1)
Schema version
1.1
Reconciled against
tools_recount.py
Network calls during the build
0
Content sha256
146eb1ff03025cfab2d057fa...

The canonical base URL used by the sitemap, the canonical tags and llms.txt is https://andrewcmcguire.com/gtm-directory, live at that address since 2026-08-27. See the methodology page.