{"name":"io.github.xyzzylabs/tc39-mcp","slug":"xyzzylabs-tc39-mcp","title":"tc39-mcp","description":"Independent MCP server for the TC39 specs (ECMA-262 + ECMA-402): clauses, search, diffs, history.","url":"https://mcp.market/server/xyzzylabs-tc39-mcp","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":38,"stars":2,"forks":0,"downloads_week":112,"last_push_at":"2026-09-19T12:24:06.000Z","license":"MIT"},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-09-20T07:06:05.015Z","last_ok_at":"2026-09-20T07:06:05.015Z","latency_ms":88},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/xyzzylabs/tc39-mcp","website":"https://mcp.xyzzylabs.ai/tc39","version":"0.6.3","remotes":[{"type":"streamable-http","url":"https://mcp.xyzzylabs.ai/tc39/mcp"}],"packages":[{"registryType":"npm","identifier":"tc39-mcp","version":"0.6.3","transport":{"type":"stdio"}}],"tools":[{"name":"clause.get","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"at":{"type":"string","description":"Optional historical SHA pin (hex, 4-40 chars). Only valid when edition='main'; released editions have no per-SHA history to address."}},"required":["id"]}},{"name":"clause.list","description":"List parsed spec clauses with optional filters (kind, section prefix, has_algorithm). `spec` selects '262' or '402'. `at: '<sha>'` queries a historical main snapshot.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"at":{"type":"string"},"kind":{"type":"string"},"section":{"type":"string"},"has_algorithm":{"type":"boolean"},"limit":{"type":"number"}}}},{"name":"clause.outline","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"depth":{"type":"number"},"under":{"type":"string"}}}},{"name":"proposal.get","description":"Fetch one TC39 proposal by slug (exact) or name (case-insensitive).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},{"name":"proposal.list","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"spec":{"type":"string","enum":["262","402"]},"stage":{"type":"string"},"champion":{"type":"string"},"contains":{"type":"string"},"limit":{"type":"number"}}}},{"name":"spec.about","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"spec.crossrefs","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"direction":{"type":"string","enum":["in","out","both"]},"include_cross_spec":{"type":"boolean"},"limit":{"type":"number"}},"required":["id"]}},{"name":"spec.diff","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"spec":{"type":"string","enum":["262","402"]},"from":{"type":"string"},"to":{"type":"string"}},"required":["id"]}},{"name":"spec.global_search","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"},"search_steps":{"type":"boolean"},"limit":{"type":"number"}},"required":["query"]}},{"name":"spec.grammar","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"nonterminal":{"type":"string"},"contains":{"type":"string"},"include_sdo":{"type":"boolean"},"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"limit":{"type":"number"}}}},{"name":"spec.sdo_index","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"by":{"type":"string","enum":["production","sdo"]},"filter":{"type":"string"},"limit":{"type":"number"}}}},{"name":"spec.search","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"},"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"at":{"type":"string"},"limit":{"type":"number"},"search_steps":{"type":"boolean"}},"required":["query"]}},{"name":"spec.snapshots","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"}}}},{"name":"spec.symbol_resolve","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"notation":{"type":"string"},"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"limit":{"type":"number"}},"required":["notation"]}},{"name":"spec.tables","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"filter":{"type":"string"},"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"limit":{"type":"number"}}}},{"name":"spec.well_known_intrinsics","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"spec":{"type":"string","enum":["262","402"]},"edition":{"type":"string"},"filter":{"type":"string"},"limit":{"type":"number"}}}},{"name":"test262.search","description":"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`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"},"esid":{"type":"string"},"limit":{"type":"number"}}}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-20T00:24:10.911Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:24:10.833Z","components":{"code":{"score":25,"max":25,"notes":["96 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 481ms"]},"poisoning":{"score":15,"max":15,"notes":["17 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mcp.xyzzylabs.ai/tc39/mcp","reachable":true,"authRequired":false,"latencyMs":481,"serverInfo":{"name":"tc39-mcp","version":"0.6.3"}}],"packages":[{"registryType":"npm","identifier":"tc39-mcp","version":"0.6.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-08T12:49:51.269Z","repositoryUrl":"git+https://github.com/xyzzylabs/tc39-mcp.git","weeklyDownloads":112}],"repo":{"found":true,"owner":"xyzzylabs","repo":"tc39-mcp","archived":false,"pushedAt":"2026-09-19T12:24:06Z","stars":2,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/282613918?v=4","ownerCreatedAt":"2026-05-07T14:34:03Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/282613918?v=4&s=128","source":"github"},"presence":{"stars":2,"forks":0,"downloadsWeek":112,"license":"MIT","lastPushAt":"2026-09-19T12:24:06.000Z","score":38}}}},"grade_history":[],"reviews":[]}