Edict logo

Edict

by Sowiedu

JSON-AST programming language with MCP tools for validation, verification, WASM compilation, execution, deployment, and skill packaging.

Install Edict

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "sowiedu-edict": {
      "command": "npx",
      "args": [
        "-y",
        "edict-lang"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

Sowiedu/Edict provides MCP tools for an agent-first programming language whose programs are JSON ASTs rather than source text. It validates, resolves, type-checks, effect-checks, and verifies contracts with Z3/SMT before compiling checked programs to WebAssembly. Agents can then run, debug, patch, test, package, deploy, and invoke programs through structured tool calls. Reach for it when generated code needs a machine-readable format, compiler feedback, contract verification, and sandboxed execution.

Use cases

  • Generate JSON AST programs from agent prompts
  • Verify contracts before executing generated code
  • Compile checked ASTs to WebAssembly
  • Replay deterministic execution traces
  • Deploy Edict WASM services to edge runtimes

Key features

  • JSON AST schema and examples
  • Static type and effect checking
  • Z3/SMT contract verification
  • WebAssembly compilation and sandboxed execution
  • AST patching, linting, debugging, and replay
  • UASF skill packaging and invocation

Tools22

What Edict lets your agent do. Expand a tool for its parameters.

Self-reported~369 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

18/19 checks healthy over the last 79d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 10d ago via OSV.dev · edict-lang (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars13Stargazers on the source repository.
npm downloads897Package downloads in the last 30 days.
Last commit3d agoMost recent push to the default branch.
Tools exposed22Callable tools this server registers over MCP.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How Edict works

What Sowiedu/Edict does

Sowiedu/Edict exposes the Edict compiler and runtime through Model Context Protocol tools. Edict programs are represented as JSON AST objects, so an agent does not need to generate or parse a traditional programming-language syntax. The server can validate AST structure, resolve names, perform static type checking, inspect declared effects, and verify contracts with Z3/SMT.

After checking succeeds, the Sowiedu/Edict tool set can compile the AST to WebAssembly. The resulting binary can be executed through the server, with output and an exit code returned to the caller. Additional tools support linting, diagnostics, deterministic trace replay, AST patching, fragment composition, test generation from verified contracts, and explanations of nodes, errors, or compiler behavior.

The project also supports packaging programs as UASF skills or deployable skill bundles. Its deployment and invocation tools cover Edict WASM services on edge runtimes, including Cloudflare Workers, and direct invocation of UASF skill packages.

How it works

A typical agent workflow starts with edict_schema to obtain the AST specification, or edict_examples to inspect sample programs. The agent submits an AST to edict_validate for structural checks, then uses edict_check for the complete compilation-preparation pipeline. Errors are returned as structured data; edict_errors exposes the machine-readable error catalog.

Successful checks can be passed to edict_compile, which returns a base64-encoded WebAssembly binary. edict_run executes compiled WebAssembly and reports its output and exit status. The language uses declared effects such as pure operations, reads, writes, I/O, and failure handling. Contract verification can return counterexamples when a condition cannot be proven.

Execution is designed around WebAssembly isolation. Programs do not receive filesystem, network, or operating-system access unless the host supplies those capabilities through an EdictHostAdapter. Runtime limits can control execution time, memory, and filesystem sandboxing. Available adapter areas include sandboxed filesystem access, HTTP, cryptographic operations, environment variables, and CLI arguments.

Setup and configuration

Run the MCP server with Node.js 20 or newer:

Terminal
npx edict-lang

The default transport is stdio, which suits local MCP clients. A local installation can be started with npm install edict-lang followed by npx edict-lang. Docker images are available for Linux amd64 and arm64. The container uses stdio by default; setting EDICT_TRANSPORT=http starts HTTP transport on port 3000 when the port is published.

The repository development workflow uses npm install, npm test, and npm run mcp. Edict can also run in a browser or in QuickJS, but those are embedding options rather than requirements for the MCP server.

Tools and capabilities

Sowiedu/Edict includes tools for:

  • Reading schemas, examples, version information, errors, support diagnostics, and explanations.
  • Validating, checking, linting, patching, and composing JSON AST programs.
  • Compiling checked ASTs to WebAssembly and running the resulting binaries.
  • Debugging executions, generating contract-based tests, and replaying deterministic traces.
  • Exporting, importing, invoking, and packaging UASF skills.
  • Deploying Edict programs to supported edge runtimes and invoking deployed services.

The server also exposes MCP resources for the full and minimal AST schemas, examples, errors, patch schema, onboarding guide, and support information.

Limitations and notes

Sowiedu/Edict requires callers to produce valid JSON AST data; it is not a text parser for a conventional source language. Contract verification depends on what the verifier can prove, and failed proofs may stop the checked pipeline. WebAssembly execution is sandboxed by default, so external capabilities must be explicitly provided by the host adapter.

The browser bundles have different scope: the lightweight bundle covers checking-related phases, while the full bundle adds WASM generation, contract verification, and execution. Browser ESM usage requires HTTP serving rather than opening modules through file://.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Edict

Sowiedu/Edict is an MCP server that connects AI agents to the Edict JSON-AST programming language and compiler. Its main tools validate and check programs, verify contracts with Z3/SMT, compile checked ASTs to WebAssembly, run binaries, and support debugging, packaging, deployment, and invocation.

Run `npx edict-lang` with Node.js 20 or newer. No package installation is needed for this command; alternatively, install `edict-lang` locally with npm and start it with `npx edict-lang`. Docker images are also provided for local or HTTP-based use.

It uses stdio by default. For HTTP transport, run the Docker image with `EDICT_TRANSPORT=http` and publish port 3000.

It runs compiled programs as WebAssembly in a sandboxed VM. Filesystem, network, operating-system, and other external capabilities are unavailable unless supplied by an `EdictHostAdapter`, while runtime limits can control timeout, memory, and filesystem sandboxing.

Yes, it exposes a standard MCP interface and can be used with Cursor as an MCP client. The server starts over stdio by default, while Docker also documents an HTTP transport for remote or networked clients.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewEdict AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/sowiedu-edict?style=directory)](https://allmcps.com/mcp/sowiedu-edict)
HTML Embed
<a href="https://allmcps.com/mcp/sowiedu-edict"><img src="https://allmcps.com/api/badge/sowiedu-edict?style=directory" alt="Edict on AllMCPs" /></a>