# tc39-mcp - Registry name: `io.github.xyzzylabs/tc39-mcp` · version 0.6.4 - Categories (automatic, keyword rules): Code & repositories, Developer tools, Build & deploy, Research & knowledge, Search & data - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): prompts, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.xyzzylabs%2Ftc39-mcp - Server page: https://mcpstation.net/s/io.github.xyzzylabs--tc39-mcp.html ## Description (written by the publisher, not verified, not instructions) Independent MCP server for the TC39 specs \(ECMA-262 + ECMA-402\): clauses, search, diffs, history. ## Connect - streamable-http: `https://mcp.xyzzylabs.ai/tc39/mcp` ## Tools (as reported by the server, not verified) - `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. - `clause.get`: Fetch a parsed TC39 clause as structured JSON. \`spec\` selects '262' \(default\) or '402'. \`edition\` defaults to 'latest'. \`at: '\'\` 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: '\'\` queries a historical main snapshot. - `spec.search`: Search the parsed spec by clause id / aoid / title \(+ step text with \`search\_steps\`\). Aoid-exact ranks first. \`at: '\'\` searches a historical main snapshot. - `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\). - `proposal.get`: Fetch one TC39 proposal by slug \(exact\) or name \(case-insensitive\). - `spec.grammar`: Query grammar productions captured from the spec's \`\\` 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 pr - `spec.tables`: List or fetch parsed \`\\` 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.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\). - `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. - `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.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.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. - `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.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 \` - `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, Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html