Mmcp.market

tc39-mcp server

by xyzzylabs·io.github.xyzzylabs/tc39-mcp·v0.6.3

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

A85/100grade A
What users say
No reviews yet
Be the first
Safety scan
A85/100

full report

Adoption
Growing

2 stars112 downloads/wk

Reviews

Write one

Nobody has reviewed tc39-mcp yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

tc39-mcp tools (17, 1 write)

write = sends, deletes, buys or posts
  • clause.getFree

    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.listFree

    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.outlineFree

    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.getFree

    Fetch one TC39 proposal by slug (exact) or name (case-insensitive).

  • proposal.listFree

    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).

  • spec.aboutFree

    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.crossrefsFree

    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.diffFree

    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_searchwrite actionFree

    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.grammarFree

    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_indexFree

    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.searchFree

    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.snapshotsFree

    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_resolveFree

    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.tablesFree

    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_intrinsicsFree

    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.

  • test262.searchFree

    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`.

Public scan report

scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it

1 high
  • Code scan96 source files scanned25/25
  • Live reliabilityremote reachable in 481ms20/20
  • Tool poisoning17 tool descriptions checked15/15
  • Auth qualityopen endpoint exposes 1 write-action tools with no auth3/15
  • Maintenancelast push 1 days ago15/15
  • Maintainer identityregistry namespace matches repository owner7/10

Findings (1)

  • highWrite-action tools reachable without authenticationauth.open-write
Overall 85/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

claude mcp add --transport http tc39-mcp https://mcp.xyzzylabs.ai/tc39/mcp
Add to Cursor

tc39-mcp: common questions

Is tc39-mcp server safe?
Yes, by our scan: it is graded A (85/100). Read the tc39-mcp safety report
How do I install tc39-mcp?
It runs remotely at mcp.xyzzylabs.ai. Add it to Claude Code, Claude Desktop or Cursor with the snippets above, or call it through the mcp.market gateway without installing anything.
Does tc39-mcp need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is tc39-mcp maintained?
The last commit was in the last day (2026-09-19). The latest release is v0.6.3.
Is tc39-mcp up?
100% of our last 2 checks got an answer. We check remote servers about four times a day.
What can I use instead of tc39-mcp?
Servers from other publishers that do the same job: iMessage History MCP server, jDocmunch MCP server and Mrd MCP server. Compare all tc39-mcp alternatives.

Alternatives to tc39-mcp

Same job from other publishers: the closest match first, then the best rated.

All tc39-mcp alternatives →
  • iMessage History
    Search and read your Apple Messages history from any MCP client. Read-only, local.
    A
  • jDocmunch MCP
    Section-level doc search for .md, .rst, .adoc, .ipynb, .html, .yaml, .json, and OpenAPI specs.
    A
  • Mrd
    Spacecraft component specs from vendor datasheets: search, digests, facts, gaps, budgets, bus design
    A
  • Agenticmemory
    Persistent memory for AI agents — history, context, semantic search, queues. 17 tools, stdio/SSE.
    B
  • AI Pensieve MCP
    Search and cross-reference local AI chat history with read-only tools and source citations.
    A

More from xyzzylabs