mcpbeat Sign in

tc39-mcp MCP Server

answering

tc39-mcp is answering right now. Last checked moments ago. 134 installs a week from npm. It exposes 17 tools. Last commit 17 Sep 2026.

Independent MCP server for the TC39 specs (ECMA-262 + ECMA-402): clauses, search, diffs, history.

Installs per day peak 198 · avg 24 · -65% w/w
a month agotoday
Uptime history 48 days of history
48 days agonow
100.0%
Uptime 24h
92 of 92 checks
17
Tools
read from the server
217 ms
Response time
average over 24h
134
Installs / week
npm and PyPI

What changed 1

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 8 September 2026. No other catalogue keeps this.

8 Sep a tool changed version

What the code does

We read the source, 22 h ago · tools taken from the live server · rules 3dff92dd89df

In the project's build, not in the package

Found in continuous integration, deployment or infrastructure files, or in a neighbouring package of the same monorepo. None of this is installed when you add the server: it describes how the project is built and released. We list it because a leaked key in a build pipeline is still a real problem, but it is not something this server does on your machine.

Builds a database query by concatenation .github/workflows/dependabot-auto-merge.yml:39
      - name: Merge the update unless it is a major bump
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

Nothing serious here today

Today is the operative word: we check tc39-mcp every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 0 min ago.

run in your terminal
claude mcp add tc39-mcp --transport http https://mcp.xyzzylabs.ai/tc39/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "tc39-mcp": {
      "url": "https://mcp.xyzzylabs.ai/tc39/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.tc39-mcp]
url = "https://mcp.xyzzylabs.ai/tc39/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "tc39-mcp": {
      "url": "https://mcp.xyzzylabs.ai/tc39/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "tc39-mcp": {
      "url": "https://mcp.xyzzylabs.ai/tc39/mcp"
    }
  }
}

Available tools 17

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

spec
spec.about
Self-description of this MCP server: package name + version, per-snapshot pin metadata (sha, fetched_at, biblio_commit, clause_count) for every supported (spec, edition), plus test262 + proposals index headers when present.
spec.crossrefs
For a clause id, return its outgoing references (clauses it cites) and/or incoming references (clauses that cite it — the back-reference index the parse alone doesn't expose). The reverse index is AOID-densified from step text. `direction`: 'in' | 'out' | 'both' (default). Outgoing also carries an `external` category: the clause's citations to external specs (Unicode, IETF, WHATWG) as resolvable URLs. Set `include_cross_spec: true` to also resolve outgoing references from ECMA-262 → ECMA-402 (or vice versa).
spec.diff
Clause-level diff of one clause across two editions of a spec. Reports identical / modified / added / removed plus a field-level breakdown (title, signature, step count, reworded step indices, notes, crossrefs). `from` defaults to the latest stable release, `to` to main.
spec.global_search
Run spec.search across both ECMA-262 and ECMA-402 in one call and interleave hits by score. Each hit is tagged with the spec it came from. Use it when you don't know which spec defines a symbol. `search_steps` also matches algorithm step text.
spec.grammar
Query grammar productions captured from the spec's `<emu-grammar>` blocks. `{ nonterminal }` returns every production for that non-terminal (exact match); `{ contains }` filters by RHS / name substring; neither lists all non-terminals + their production counts. `include_sdo` folds in SDO-attached productions (off by default).
spec.sdo_index
Index Syntax-Directed Operations by the grammar production they're defined on. `by: 'production'` (default) groups SDOs under each production; `by: 'sdo'` groups productions under each SDO title. `filter` narrows to keys containing a substring (case-insensitive).
spec.search
Search the parsed spec by clause id / aoid / title (+ step text with `search_steps`). Aoid-exact ranks first. `at: '<sha>'` searches a historical main snapshot.
spec.snapshots
List the live (spec, edition, sha, fetched_at) snapshots the hosted Worker is serving from R2. Filter by `spec` ('262'|'402') or `edition` (e.g. 'main', 'es2026'). Historical SHA-pinned copies are reachable via `at:` on clause.get / spec.search but aren't enumerated here.
spec.symbol_resolve
Resolve spec notation like `[[Prototype]]` (internal slot), `%Object.prototype%` (well-known intrinsic), or `~number~` (sigil enum): return clauses that mention or define it, ranked by occurrence with a bump for definition-y sections.
spec.tables
List or fetch parsed `<emu-table>` content. `{ id }` returns exactly that table (full columns + rows); otherwise list table summaries, optionally narrowed by a `filter` substring over the caption or id.
spec.well_known_intrinsics
Enumerate the well-known intrinsics in a spec with their probable defining clauses. Driven from the canonical §6.1.7.4 WKI table when present (ECMA-262), else a `%X%` prose scan (e.g. ECMA-402). `filter` narrows by bare-name substring.
clause
clause.get
Fetch a parsed TC39 clause as structured JSON. `spec` selects '262' (default) or '402'. `edition` defaults to 'latest'. `at: '<sha>'` pins to a historical main snapshot (only valid for edition='main'); omit to query the live snapshot.
clause.list
List parsed spec clauses with optional filters (kind, section prefix, has_algorithm). `spec` selects '262' or '402'. `at: '<sha>'` queries a historical main snapshot.
clause.outline
Return the section tree (table of contents) for a parsed (spec, edition). `depth` caps how deep the tree descends (1 = top-level only); `under` limits the tree to descendants of one clause id.
proposal
proposal.get
Fetch one TC39 proposal by slug (exact) or name (case-insensitive).
proposal.list
List TC39 proposals from the static index (tc39/proposals). Filter by spec ('262'|'402'), stage ('0'|'1'|'2'|'2.7'|'3'|'finished'|'inactive'|'active'), champion (substring), or contains (name/slug substring).
test262
test262.search
Search the tc39/test262 conformance suite from its indexed front-matter. `query` AND-matches whitespace tokens (case-insensitive) across each test's description + path; `esid` prefix-matches the front-matter esid. Returns ranked hits (path, GitHub url at the indexed SHA, esid, description, features, flags), capped at `limit` (default 20). Supply at least one of `query` / `esid`.

Endpoints

URLTransportStateLatencyChecked
https://mcp.xyzzylabs.ai/tc39/mcp streamable-http answering 69 ms 0 min ago

Alternatives to tc39-mcp

same job, measured the same way
Claudex
by kunwar-shah

Persistent memory + FTS5 search MCP server for Claude Code conversation history.

84 installs/wk local only
VerifyMCP
by verifymcp

Independent trust scores, tool surfaces and change history for MCP servers.

9 tools answering
MCP Server MCP Registry
by formulahendry

MCP Server for MCP Registry to discover and search for available MCP servers in the registry

30 installs/wk local only
Housecall Pro MCP
by hcpapi

Independent MCP server for the Housecall Pro API: jobs, estimates, invoices, price book, schedule.

69 installs/wk local only
Llmse
by llmse

Public MCP server for the LLM Search Engine

10 tools answering
I
mcp-catalog
by atomno-mcp

Search MCP servers in the public mcp-catalog.ru directory.

4 tools answering
Telegram Archive MCP
by geiserx

MCP server for Telegram Archive — search messages, browse chats, and access history

47 installs/wk local only
Carsxe MCP
by carsxe

MCP server for CarsXE vehicle data: VIN, specs, history, images, recalls, and OBD codes.

answering

tc39-mcp — questions

Answers built from our own checks of this server.

What can tc39-mcp do?
It exposes 17 tools, read directly from the server on our last check. Among them: clause.get, clause.list, clause.outline, proposal.get, proposal.list, spec.about and 11 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is tc39-mcp mostly used for?
Its tools cluster around spec, clause and proposal. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is tc39-mcp working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 217 ms. The bar chart above shows every period we have measured.
How do I connect tc39-mcp?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does tc39-mcp need an API key?
No. tc39-mcp completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 17 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is tc39-mcp?
It answers our handshake in 217 ms on average, which is faster than 63% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use tc39-mcp?
The npm package tc39-mcp was installed 134 times in the last week. Week over week that is -65%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is tc39-mcp open source?
Yes — it is published under the MIT licence, written in TypeScript and 2 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.