← Registry

Developer Tools

xyzzylabs.ai

Provides structured access to TC39 ECMAScript specification clauses, proposals, and search across spec content.

2 endpoints26 known toolsFirst detected July 25, 2026Last detected July 25, 2026

ENDPOINT 1

https://mcp.xyzzylabs.ai/tc39/mcp

No auth detected

MCP server metadata

Name
tc39-mcp
Version
0.6.1
Capabilities
toolsprompts
Server instructions

tc39-mcp serves read-only structured data from the TC39 specs (ECMA-262 + ECMA-402), tc39/test262, and tc39/proposals. Every response is deterministic over data pinned to specific upstream SHAs. Independent project — not an official Ecma International or TC39 publication. This is the hosted Cloudflare Worker deployment — 17 of the 19 tools (call tools/list for the set). The 2 stdio-only ones (spec.history, test262.get) are available via the stdio server (npx tc39-mcp). Common workflow: 1. `spec.about` — call first to see what SHAs and editions the server is serving. Returns per-snapshot pin metadata. 2. `spec.search` — find a clause from a name or symptom. Hits rank aoid-exact > aoid-substring > title > id; follow up with `clause.get { id }` to read the full clause. To find clauses by what they DO (e.g. which clauses invoke OrdinaryGetOwnProperty), pass search_steps: true to also scan algorithm step text — off by default since it is slower + noisier. 3. `clause.get { id, spec?, edition? }` — full structured clause. A clause id is also a test262 esid — test262.search { esid: <clause-id> } returns the conformance tests for that clause. Edition semantics. `latest` is spec-aware: - On 262, `latest` → current stable release (es2026 today). - On 402, `latest` → current stable release (es2026 today). - `main` is always the working draft. Historical pinning. `main` moves. Pass `at: "<sha>"` to query a specific historical snapshot (4-40 hex chars, prefix-matched). The hosted Worker retains every `main` SHA it has deployed since launch; the live snapshot is `at`-less. Released editions like `es2026` have no per-SHA history, so `at` doesn't apply — it only addresses `main`. Missing data is never an error. Tools return null, empty arrays, or a `hint:` field. `source: "none"` on `proposal.list` means the offline index isn't present in R2 — surface the hint to the user. MCP prompts (workflow templates) — prefer these when the user wants a guided multi-tool sequence. Available prompts: explain-clause, compare-editions, find-and-read, trace-crossrefs, proposal-status, test262-for-feature, cite-reproducibly. Call prompts/list for their argument shapes. All data is read-only: no tool modifies anything upstream, no tool runs user-supplied code. Safe to call freely.

Known tools 17

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.

Inferred read-only
clause.get

Fetch a parsed TC39 clause as structured JSON.

Inferred read-only
clause.list

List parsed spec clauses with optional filters (kind, section prefix, has_algorithm).

Inferred read-only
spec.search

Search the parsed spec by clause id / aoid / title (+ step text with `search_steps`).

Inferred read-only
proposal.list

List TC39 proposals from the static index (tc39/proposals).

Inferred read-only
proposal.get

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

Inferred read-only
spec.grammar

Query grammar productions captured from the spec's `<emu-grammar>` blocks.

Inferred read-only
spec.tables

List or fetch parsed `<emu-table>` content.

Inferred read-only
spec.sdo_index

Index Syntax-Directed Operations by the grammar production they're defined on.

Inferred read-only
clause.outline

Return the section tree (table of contents) for a parsed (spec, edition).

Inferred read-only
spec.global_search

Run spec.

Inferred read-only
spec.snapshots

List the live (spec, edition, sha, fetched_at) snapshots the hosted Worker is serving from R2.

Inferred read-only
spec.symbol_resolve

Resolve spec notation like `[[Prototype]]` (internal slot), `%Object.

Inferred read-only
spec.well_known_intrinsics

Enumerate the well-known intrinsics in a spec with their probable defining clauses.

Inferred read-only
spec.diff

Clause-level diff of one clause across two editions of a spec.

Inferred read-only
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).

Inferred read-only
test262.search

Search the tc39/test262 conformance suite from its indexed front-matter.

Inferred read-only

CONNECT WITH APPROVAL

Client installation

Review this server and its permissions before adding it. Secret placeholders must be set locally.

Codex

~/.codex/config.toml

[mcp_servers.tc39-mcp]
url = "https://mcp.xyzzylabs.ai/tc39/mcp"
enabled = true
Claude Code

.mcp.json

{
  "mcpServers": {
    "tc39-mcp": {
      "type": "http",
      "url": "https://mcp.xyzzylabs.ai/tc39/mcp"
    }
  }
}
Claude Desktop

Settings → Connectors → Add custom connector

Name: tc39-mcp
Remote MCP URL: https://mcp.xyzzylabs.ai/tc39/mcp

Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "tc39-mcp": {
      "url": "https://mcp.xyzzylabs.ai/tc39/mcp"
    }
  }
}
Visual Studio Code

.vscode/mcp.json

Add to Visual Studio Code
{
  "servers": {
    "tc39-mcp": {
      "type": "http",
      "url": "https://mcp.xyzzylabs.ai/tc39/mcp"
    }
  }
}
Generic MCP

Client-specific MCP configuration

{
  "name": "tc39-mcp",
  "transport": "streamable-http",
  "url": "https://mcp.xyzzylabs.ai/tc39/mcp"
}
MCP Inspector

Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.

ENDPOINT 2

https://mcp.xyzzylabs.ai/wasm/mcp

No auth detected

MCP server metadata

Name
wasm-mcp
Version
0.2.16
Capabilities
tools
Server instructions

wasm-mcp serves read-only structured data from the WebAssembly core specification (https://github.com/WebAssembly/spec). Every response is deterministic over data pinned to a specific upstream commit and baked into the package at build time. Not affiliated with, endorsed by, or sponsored by the W3C WebAssembly Community Group or Working Group. Common workflow: 1. `spec_version` — call first when you need to cite the spec or report what you're reading. Returns the pinned upstream commit. 2. `instruction_search` — find an instruction from a partial name or symptom ("extend", "trunc", "0x6a") when you don't know the exact mnemonic. Returns ranked lightweight hits. 3. `instruction_get { mnemonic }` or `{ opcode }` — the full record for one instruction: opcode bytes, category, stack type signature, and validation/execution prose anchors + URLs. 4. `instruction_list { category? }` — enumerate instructions, filterable by category, introducing version, or mnemonic prefix. 5. `type_get { name }` — a value type or type form ('i32', 'funcref', 'functype', 'limits') with its defining clause prose. 6. `spec_search { query }` — full-text search across clause anchors, titles, and prose when you don't know the anchor. 7. `section_get { id, spec? }` — one spec clause by anchor (e.g. 'syntax-numtype', 'valid-unreachable'): prose, cross-refs, SpecTec formal-rule references, and the rendered URL. 8. `section_list { spec?, path? }` — navigate the clause tree, scoped to an area ('syntax', 'valid', 'exec', 'binary', 'text', 'appendix'). The section tools (section_get / section_list / spec_search) cover three specs via a 'spec' argument: 'core' (default — the instruction set, validation, execution, binary + text formats), 'js-api' (the JavaScript embedding API), and 'web-api' (Web-platform integration). The instruction and type tools are 'core'-only. 9. `proposal_list { status? }` — WebAssembly proposals and their phases, from the pinned WebAssembly/proposals repo. Note on formal notation. Since 2025 the spec is authored in SpecTec; validation / execution clauses are generated from formal rules. This server keeps the hand-written prose and records each clause's SpecTec rule names in 'formal_refs', with 'url' linking the rendered notation. It does not itself render the formal grammar / reduction rules — follow the URL for those. The tool surface is intentionally narrow: - Read-only. No tool mutates state or writes to disk / the network. - Deterministic. Same input → same output, over the pinned commit. - No execution. Tools never compile, validate-by-running, instantiate, or run any WebAssembly or arbitrary code. Validation and reduction rules are returned as data (the prose / typing judgement), not by applying them. Transport differences: - The stdio server (npx wasm-mcp) exposes all 9 tools. - The hosted Cloudflare Worker exposes 9 of them. - Tools that need a subprocess or filesystem (0 today) are stdio-only.

Known tools 9

spec_version

Return this server's package version plus the pinned upstream commit SHA(s) the bundled data was indexed from.

Inferred read-only
instruction_get

Fetch one WebAssembly instruction by mnemonic (`i32.

Inferred read-only
instruction_list

Enumerate WebAssembly instructions, filterable by `category`, `introduced_in` (1.

Inferred read-only
instruction_search

Ranked free-text search across instruction mnemonics, categories, and opcode hex.

Inferred read-only
type_get

Look up a value type (`i32`, `funcref`, `v128`, …) or type form (`functype`, `limits`, `memtype`, …): classification, sibling members, defining clause prose, formal refs, and URL.

Inferred read-only
section_get

Fetch one spec clause by id or anchor across `core` / `js-api` / `web-api` (`syntax-numtype`, `valid-unreachable`, `modules`, `streaming-modules`, …): title, prose, cross-references, SpecTec formal refs, and rendered URL.

Inferred read-only
section_list

Navigate the clause tree of a spec (`core` / `js-api` / `web-api`), filterable by source `path` (`syntax`, `valid`, `exec`, `binary`, `text`, `appendix`), `anchor_prefix`, `titled_only`, and `max_level`.

Potential side effects
spec_search

Full-text search across clause anchors, titles, and prose of a spec (`core` / `js-api` / `web-api`).

Inferred read-only
proposal_list

List WebAssembly proposals + phases.

Inferred read-only

CONNECT WITH APPROVAL

Client installation

Review this server and its permissions before adding it. Secret placeholders must be set locally.

Codex

~/.codex/config.toml

[mcp_servers.wasm-mcp]
url = "https://mcp.xyzzylabs.ai/wasm/mcp"
enabled = true
Claude Code

.mcp.json

{
  "mcpServers": {
    "wasm-mcp": {
      "type": "http",
      "url": "https://mcp.xyzzylabs.ai/wasm/mcp"
    }
  }
}
Claude Desktop

Settings → Connectors → Add custom connector

Name: wasm-mcp
Remote MCP URL: https://mcp.xyzzylabs.ai/wasm/mcp

Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "wasm-mcp": {
      "url": "https://mcp.xyzzylabs.ai/wasm/mcp"
    }
  }
}
Visual Studio Code

.vscode/mcp.json

Add to Visual Studio Code
{
  "servers": {
    "wasm-mcp": {
      "type": "http",
      "url": "https://mcp.xyzzylabs.ai/wasm/mcp"
    }
  }
}
Generic MCP

Client-specific MCP configuration

{
  "name": "wasm-mcp",
  "transport": "streamable-http",
  "url": "https://mcp.xyzzylabs.ai/wasm/mcp"
}
MCP Inspector

Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.

TRUST AND VERIFICATION EVIDENCE

Loading Trust v2 evidence…

Checking the associated registrable domain. The BuiltWith key remains server-side.

Indexed

Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.