ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Edict

โดย Sowieduรุ่น 1.9.2i★ –iรันบนเครื่อง
ชื่อใน registryio.github.Sowiedu/edict

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

AI-agent programming language. JSON AST in, WASM out. Typed, effect-tracked, Z3-verified.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: เครื่องมือนักพัฒนา

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "edict": {
      "command": "npx",
      "args": [
        "-y",
        "edict-lang"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add edict -- npx -y edict-lang

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "edict": {
      "command": "npx",
      "args": [
        "-y",
        "edict-lang"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "edict": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "edict-lang"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub Sowiedu ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

  • ดาวมากกว่า 0% ของอีก 4906 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 7% ของอีก 4906 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 4906 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Edict ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.9.2) เข้า registry 8 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

GitHub

โดย github

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

บนเครื่องหรือคลาวด์★ 34,245MITอัปเดต 4 วันที่ผ่านมา
ติดตั้ง

Desktop Commander

โดย wonderwhy-er

MCP server for terminal commands, file operations, and process management

รันบนเครื่อง★ 10,225MITอัปเดต 16 วันที่ผ่านมา
ติดตั้ง

Cloudflare MCP

โดย cloudflare

Cloudflare MCP servers

รันบนคลาวด์★ 4,446Apache-2.0อัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Edict

A programming language designed for AI agents. No parser. No syntax. Agents produce AST directly as JSON.

Edict is a statically-typed, effect-tracked programming language where the canonical program format is a JSON AST. It's purpose-built so AI agents can write, verify, and execute programs through a structured pipeline — no text parsing, no human-readable syntax, no ambiguity.

Agent (LLM)

│ produces JSON AST via MCP tool call ↓ Schema Validator ─── invalid? → StructuredError → Agent retries ↓ Name Resolver ────── undefined? → StructuredError + candidates → Agent retries ↓ Type Checker ─────── mismatch? → StructuredError + expected type → Agent retries ↓ Effect Checker ───── violation? → StructuredError + propagation chain → Agent retries ↓ Contract Verifier ── unproven? → StructuredError + counterexample → Agent retries (Z3/SMT) ↓ Code Generator (pure-JS WASM encoder) → WASM → Execute

Features

  • JSON AST — Programs are JSON objects, not text files. No lexer, no parser.
  • Structured errors — Every error is a typed JSON object with enough context for an agent to self-repair.
  • Type system — Int, Float, String, Bool, Array , Option , Result , records, enums, refinement types.
  • Effect tracking — Functions declare pure, reads, writes, io, fails. The compiler verifies consistency.
  • Contract verification — Pre/post conditions verified at compile time by Z3 (via SMT). Failing contracts return concrete counterexamples.
  • WASM compilation — Verified programs compile to WebAssembly via a pure-JS encoder and run in Node.js.
  • MCP interface — All tools exposed via Model Context Protocol for direct agent integration.
  • Schema migration — ASTs from older schema versions are auto-migrated. No breakage when the language evolves.

Execution Model

Edict compiles to WebAssembly and runs in a sandboxed VM. This is a deliberate security decision — not a limitation:

  • No ambient authority — compiled WASM cannot access the filesystem, network, or OS unless the host explicitly provides those capabilities via the pluggable EdictHostAdapter interface
  • Compile-time capability declaration — the effect system (io, reads, writes, fails) lets the host inspect what a program requires _before_ running it
  • Runtime enforcement — RunLimits controls execution timeout, memory ceiling, and filesystem sandboxing
  • Defense-in-depth — agent-generated code that runs immediately needs stronger isolation than human-reviewed code. The effect system + WASM sandbox + host adapter pattern provides exactly that

Host capabilities available through adapters: filesystem (sandboxed), HTTP, crypto (SHA-256, MD5, HMAC), environment variables, CLI arguments. New capabilities are added by extending EdictHostAdapter.

Quick Start

For AI Agents (MCP)

The fastest way to use Edict is through the MCP server — it exposes the entire compiler pipeline as tool calls:

npx edict-lang          # start MCP server (stdio transport, no install needed)

Or install locally:

npm install edict-lang

npx edict-lang # start MCP server

Two calls to get started: edict_schema (learn the AST format) → edict_check (submit a program). See MCP Tools for the full tool list.

For Development
npm install

npm test # 2675 tests across 136 files npm run mcp # start MCP server (stdio transport)

Docker

Run the Edict MCP server in a container — no local Node.js required:

# stdio transport (default — for local MCP clients)

docker run -i ghcr.io/sowiedu/edict

HTTP transport (for remote/networked MCP clients)

docker run -p 3000:3000 -e EDICT_TRANSPORT=http ghcr.io/sowiedu/edict

Supported platforms: linux/amd64, linux/arm64.

Browser

Run the Edict compiler entirely in the browser — no server required:

BundleSizePhasesUse case
edict-lang/browser318 KB1–3 (validate, resolve, typecheck, effects, lint, patch)Lightweight checking
edict-lang/browser-full~14 MB1–5 (+ WASM codegen, Z3 contracts, WASM execution)Full compile & run
import { compileBrowser, runBrowserDirect } from 'edict-lang/browser-full';

const result = compileBrowser(astJson); if (result.ok) { const run = await runBrowserDirect(result.wasm); console.log(run.output); // "Hello, World!" }

Note: ESM modules require HTTP serving. Use npx serve . or any static server — file:// won't work.

See examples/browser/index.html for a working example.

QuickJS (Sandboxed Environments)

The Edict compiler also runs inside QuickJS WASM — useful for sandboxed runtimes, edge workers, or embedding in other WASM applications:

BundleSizePhasesSlowdown vs Node.js
dist/edict-quickjs-check.js373 KB1–3 (validate, resolve, typecheck, effects)~3.7x
dist/edict-quickjs-full.js932 KB1–5 (check + WASM compile)~3.7x
import { EdictQuickJS } from "edict-lang/quickjs";

const edict = await EdictQuickJS.createFull(); // phases 1-5 const result = edict.compile(ast); if (result.ok) { console.log(result.wasm); // Uint8Array of valid WASM } edict.dispose();

Note: quickjs-emscripten is an optional peer dependency — install it alongside edict-lang to use EdictQuickJS. For fs-free environments, pass bundleSource directly instead of loading from disk.

See docs/quickjs-feasibility-report.md for full benchmarks and recommendations.

MCP Tools

ToolDescription
edict_schemaReturns the full AST JSON Schema — the spec for how to write programs
edict_versionReturns compiler version and capability info
edict_examplesReturns 41 example programs as JSON ASTs (includes schema snippet)
edict_validateValidates AST structure (field names, types, node kinds)
edict_checkFull pipeline: validate → resolve names → type check → effect check → verify contracts
edict_compileCompiles a checked AST to WASM (returns base64-encoded binary)
edict_runExecutes a compiled WASM binary, returns output and exit code
edict_patchApplies targeted AST patches by nodeId and re-checks
edict_errorsReturns machine-readable catalog of all error types
edict_lintRuns non-blocking quality analysis and returns warnings
edict_debugExecution tracing and crash diagnostics
edict_composeCombines composable program fragments into a module
edict_explainExplains AST nodes, errors, or compiler behavior
edict_exportPackages a program as a UASF portable skill
edict_import_skillImports and executes a UASF skill package
edict_generate_testsGenerates tests from Z3-verified contracts
edict_replayRecords and replays deterministic execution traces
edict_deployCompiles and deploys an Edict program to edge runtimes (Cloudflare Workers)
edict_invokeInvokes a deployed Edict WASM service via HTTP
edict_invoke_skillInvokes a UASF skill package directly
edict_packagePackages a compiled program as a deployable skill bundle
edict_supportReturns diagnostics and environment info for troubleshooting
MCP Resources
URIDescription
edict://schemaThe full AST JSON Schema
edict://schema/minimalMinimal schema variant for token-efficient bootstrap
edict://examplesAll example programs
edict://errorsMachine-readable error catalog
edict://schema/patchJSON Schema for the AST patch protocol
edict://guideAgent bootstrap guide for MCP-first onboarding
edict://supportDiagnostics and environment info

Example Program

A "Hello, World!" in Edict's JSON AST:

{

"kind": "module", "id": "mod-hello-001", "name": "hello", "imports": [], "definitions": [ { "kind": "fn", "id": "fn-main-001", "name": "main", "params": [], "effects": ["io"], "returnType": { "kind": "basic", "name": "Int" }, "contracts": [], "body": [ { "kind": "call", "id": "call-print-001", "fn": { "kind": "ident", "id": "ident-print-001", "name": "print" }, "args": [ { "kind": "literal", "id": "lit-msg-001", "value": "Hello, World!" } ] }, { "kind": "literal", "id": "lit-ret-001", "value": 0 } ] } ] }

The Agent Loop

The core design: an agent submits an AST → the compiler validates it → if wrong, returns a StructuredError with enough context for the agent to self-repair → the agent fixes it → resubmits.

// 1. Agent reads the schema to learn the AST format

const schema = edict_schema();

// 2. Agent writes a program (may contain errors) const program = agentWritesProgram(schema);

// 3. Compile — returns structured errors or WASM const result = edict_compile(program);

if (!result.ok) { // 4. Agent reads errors and fixes the program // Errors include: nodeId, expected type, candidates, counterexamples const fixed = agentFixesProgram(program, result.errors); // 5. Resubmit return edict_compile(fixed); }

// 6. Run the WASM const output = edict_run(result.wasm);

Architecture

src/

├── ast/ # TypeScript interfaces for every AST node ├── validator/ # Schema validation (structural correctness) ├── resolver/ # Name resolution (scope-aware, with Levenshtein suggestions) ├── checker/ # Type checking (bidirectional, with unit types) ├── effects/ # Effect checking (call-graph propagation) ├── contracts/ # Contract verification (Z3/SMT integration) ├── codegen/ # WASM code generation (pure-JS encoder) │ ├── codegen.ts # IR → WASM module orchestration │ ├── compile-ir-expr.ts # IR expression compilation │ ├── compile-ir-*.ts # Specialized IR compilers (calls, data, match, scalars) │ ├── runner.ts # WASM execution (Node.js WebAssembly API) │ ├── host-adapter.ts # EdictHostAdapter interface + platform adapters │ ├── closures.ts # Closure capture and compilation │ ├── hof-generators.ts # Higher-order function WASM generators │ ├── wasm-encoder.ts # Pure-JS WASM binary encoder (replaced binaryen) │ ├── wasm-interpreter.ts # Pure-JS WASM interpreter (no WebAssembly API needed) │ ├── recording-adapter.ts # Execution recording for replay │ ├── replay-adapter.ts # Deterministic replay from recorded traces │ └── string-table.ts # String interning for WASM memory ├── ir/ # Mid-level IR (lowering, optimization) ├── builtins/ # Builtin registry and domain-specific builtins ├── compact/ # Compact AST format (token-efficient for agents) ├── compose/ # Composable program fragments ├── deploy/ # Edge deployment scaffolding (Cloudflare Workers) ├── incremental/ # Incremental checking (dependency graph + diff) ├── lint/ # Non-blocking quality warnings ├── patch/ # Surgical AST patching by nodeId ├── migration/ # Schema version migration (auto-upgrade older AS

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx