{"slug": "iyi-0-20-the-language-that-ships-its-mcp-server-in-the-binary", "title": "Iyi 0.20: The Language That Ships Its MCP Server in the Binary", "summary": "The Iyi language project released version 0.20.1 on November 4, a Crystal-compatible compiled language whose compiler binary bundles both its Language Server Protocol server and its Model Context Protocol server, exposing five MCP tools (check, fix, test --affected, run --sandbox, context) over stdio with no separate install. Iyi's .iyimod module system compiles against dependency declarations rather than bodies, and the project reports that `iyi mod context --json` outputs declaration-only context at 52–59% of full source size, cutting prompt tokens for models by 31–43%. The project has 55 GitHub stars, an unstable syntax, and is not production-ready for most teams, though the same compiler builds .cr files and nine Crystal shards including kemal, db, ameba, sqlite3 and radix, and CI cross-compiles seven triples including wasm32-wasi.", "body_md": "Iyi shipped v0.20.1 on November 4. It is a Crystal-compatible compiled language with one rule that separates it from every other language announcement this year: the LSP server and the MCP server are in the compiler binary. Not plugins. Not optional installs. The binary.\n\n## The .iyimod Module System\n\nEvery language that calls itself “AI-native” in 2026 means it has Python bindings or runs on a GPU. [Iyi](https://iyi.dev/) means something specific. Its central design rule: a module compiles against its dependencies’ declarations, never their bodies.\n\nA `.iyimod` artifact packages three things — declarations, machine code, and a per-section checksum. Build once, ship the artifact, delete the source. The next build reads declarations and links. It does not parse bodies.\n\nFor agents, this translates directly. `iyi mod context --json` outputs declaration-only context at 52–59% of full source size. Models writing against it use 31–43% fewer prompt tokens. That is not a small optimization. That is the difference between fitting a codebase in a context window and not fitting it.\n\nOther languages make agents read entire files to understand a function signature. Iyi does not.\n\n## MCP and LSP Are in the Binary\n\nNo other language ships this way. `iyi mcp` exposes five [Model Context Protocol](https://modelcontextprotocol.io/) tools over stdio. `iyi lsp` speaks Language Server Protocol the same way. Configuration required: none. Separate install: none.\n\n- **check** — returns JSON with file, line, span, and a`suggested_edit` when the compiler knows the fix. Clean check exits 0, making the exit code the verdict.\n- **fix** — applies the suggested edit.\n- **test –affected** — runs only the tests an edit can reach.\n- **run –sandbox** — executes generated code against a sandboxed runtime.\n- **context** — prints every import’s declarations with docs, no bodies.\n\nThe key point here is ownership. Iyi’s compiler owns the MCP tools, so `check` can return `suggested_edit` directly from the type-checker. A third-party plugin bolted onto another language cannot do that.\n\n## Crystal Compatibility\n\nNew languages usually ask you to abandon your ecosystem. Iyi does not. The same compiler builds `.cr` files. `iyi build --crystal` gives the program [Crystal](https://crystal-lang.org/)‘s full standard library. `require \"kemal\"` in an `.iyi` file serves HTTP.\n\nThe team ran nine Crystal shards — kemal, db, ameba, sqlite3, radix, and others — through the compiler. They build. For Crystal and Ruby-ish developers, this is the lowest-friction path to experimenting with Iyi. For everyone else: if the language builds Crystal’s ecosystem, its stdlib foundations are solid.\n\n## Nine Targets, Including WASM\n\nCI cross-compiles against seven triples: Linux x86_64 and aarch64, macOS Intel and ARM, Windows MSVC and GNU, and wasm32-wasi. Concurrency runs on the native targets. The WASM target gets no concurrency runtime rather than a broken sequential imitation — an honest call.\n\n## Status: Early, Worth Watching\n\n55 GitHub stars. Syntax not stable. [v0.20.1](https://github.com/iyilang/iyi/releases/tag/v0.20.1) was a stress-test bugfix round: a darwin server killed by SIGPIPE when a client reset before accept, a collector crash on M2 aarch64, compiler crashes around `NoReturn` blocks, and a stale Windows DLL in the build cache. The team found and fixed these quickly. But this is not production-ready for most teams.\n\nThe .iyimod approach is the right architectural bet for agentic programming. The decision to put MCP and LSP in the compiler binary — instead of leaving it to third-party tooling — sets the right precedent. Watch v0.21 for syntax stability signals. Experiment now if you are building agent tooling and want to see what this model feels like in practice.\n\n```\ncurl -fsSL https://raw.githubusercontent.com/iyilang/iyi/master/install.sh | sh\n~/.local/bin/iyi run ~/.local/share/iyi/samples/hello.iyi\n```\n\n", "url": "https://wpnews.pro/news/iyi-0-20-the-language-that-ships-its-mcp-server-in-the-binary", "canonical_source": "https://byteiota.com/iyi-0-20-programming-language-mcp-lsp-binary/", "published_at": "2026-11-08 20:07:01+00:00", "updated_at": "2026-11-09 01:54:12.443312+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools", "large-language-models"], "entities": ["Iyi", "Iyi 0.20.1", "Crystal", "Model Context Protocol", "Language Server Protocol", "kemal", "wasm32-wasi", "GitHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/iyi-0-20-the-language-that-ships-its-mcp-server-in-the-binary", "markdown": "https://wpnews.pro/news/iyi-0-20-the-language-that-ships-its-mcp-server-in-the-binary.md", "text": "https://wpnews.pro/news/iyi-0-20-the-language-that-ships-its-mcp-server-in-the-binary.txt", "jsonld": "https://wpnews.pro/news/iyi-0-20-the-language-that-ships-its-mcp-server-in-the-binary.jsonld"}}