{
  "markdown": "# MetaEngine MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@metaengine/mcp-server.svg)](https://www.npmjs.com/package/@metaengine/mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![MCP](https://img.shields.io/badge/MCP-Compatible-green)](https://modelcontextprotocol.io)\n\n**Code generation, handed to your agent.**\n\nMetaEngine exposes its code-generation platform — spec converters for OpenAPI, GraphQL, Protobuf, and SQL, plus a batch type generator — as Model Context Protocol tools. Connect the server to Claude Code, Claude Desktop, Cursor, Cline, or any MCP-aware assistant, and *\"regenerate my billing client from the new OpenAPI spec\"* becomes a real, typed, ready-to-commit diff.\n\nListed on the [official MCP Registry](https://registry.modelcontextprotocol.io) as `eu.metaengine/mcp-server`.\n\n---\n\n## Quick Links\n\n- **npm package**: [@metaengine/mcp-server](https://www.npmjs.com/package/@metaengine/mcp-server)\n- **Website & docs**: [metaengine.eu/mcp](https://www.metaengine.eu/mcp)\n- **Playground**: [metaengine.eu/playground](https://www.metaengine.eu/playground)\n\n---\n\n## Installation\n\nClaude Code:\n\n```bash\nclaude mcp add metaengine -- npx -y @metaengine/mcp-server\n```\n\nClaude Desktop, Cursor, Cline, or any other MCP client — add to the client's MCP config (`claude_desktop_config.json`, `.cursor/mcp.json`, …):\n\n```json\n{\n  \"mcpServers\": {\n    \"metaengine\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@metaengine/mcp-server\"]\n    }\n  }\n}\n```\n\nThat's it. No API key, no signup, free to use.\n\n---\n\n## Tools\n\nSeven tools. One call each. Plain text back.\n\n| Tool | What it does |\n| --- | --- |\n| `generate_openapi` | Typed HTTP client from an OpenAPI 3.x document, passed inline or by URL — 10 frameworks |\n| `generate_graphql` | Typed client from a GraphQL SDL schema, optionally with reusable named fragments — 10 frameworks |\n| `generate_protobuf` | Typed client from Protocol Buffers (`.proto`) definitions — 10 frameworks |\n| `generate_sql` | Typed model classes from SQL DDL (`CREATE TABLE`), parsed dialect-agnostically — 11 languages |\n| `generate_code` | Arbitrary type graphs (classes, interfaces, enums, generics) from one structured spec, with imports and cross-references resolved — 11 languages |\n| `load_spec_from_file` | Runs a `generate_code` spec from disk, so multi-file architectures stay version-controlled and context usage drops to a file path |\n| `metaengine_initialize` | Primes the agent before its first generation: patterns, examples, and language-specific rules |\n\nEvery call is stateless and self-contained: pass the spec inline (or by file path), pick a framework or language, get a write summary back as text. `dryRun` returns the generated contents inline instead of writing — ready to diff. `skipExisting` (default) protects files you've already customized.\n\n---\n\n## Spec-first development\n\nYour specs are already the source of truth — the OpenAPI document, the GraphQL schema, the `.proto` files, the DDL. This server puts them to work inside the agent loop: when a spec changes, the agent regenerates the typed surface instead of hand-editing it.\n\n- **4 source specs** — OpenAPI 3.x, GraphQL SDL, Protocol Buffers, SQL DDL\n- **10 client frameworks** — Angular, React, TypeScript Fetch, Go net/http, Java Spring, Python httpx, C# HttpClient, Kotlin Ktor, Rust Reqwest, Swift URLSession\n- **11 languages** for type and model generation — TypeScript, Python, Go, C#, Java, Kotlin, Groovy, Scala, Swift, PHP, Rust — each emitted idiomatically (data classes in Kotlin, case classes in Scala, structs in Swift and Rust)\n- **Deterministic** — generation is byte-reproducible at a fixed engine version, so agents can retry without drift\n\nThe converters surfaced through MCP are the same compiler pipeline that powers the [MetaEngine Playground](https://www.metaengine.eu/playground): a spec is parsed, normalized to MetaEngine's intermediate representation, and emitted through a language-specific target. Versions stay in lockstep across surfaces.\n\nFor small tasks — a handful of files, exploratory code, one-off scripts — an agent's direct generation is simpler, and agents are told exactly that. The server earns its place when the work is spec-driven, polyglot, or structurally repetitive.\n\n---\n\n## Measured behavior in agent loops\n\nAgents that batch through this MCP run with substantially fewer turns and lower cumulative context re-reads than a file-by-file `Write` loop (~5 turns vs ~75 for the same DDD codebase).\n\nFor reproducible measurements across languages, models, and spec shapes, see [`benchmark/`](./benchmark) — a self-contained harness with the prompts, judging tools, and 15 canonical result folders. Numbers there are illustrations from one author's runs at N=5 per cell; reproduce in your own environment to see what holds for you.\n\n---\n\n## Context Durability\n\nIn long-running sessions where context may be summarized (compaction), MetaEngine survives in three ways:\n\n- **Short loop by design** — the MCP returns many files per call rather than per turn, so the conversation stays small enough that compaction is rarely triggered (~5 turns vs ~75 for file-by-file `Write` — see [benchmark](./benchmark) for measurements).\n- **Recovery path** — the full AI guide is embedded in the tool description on first use; after a successful call, the description swaps to a short directive that points the assistant back at `metaengine_initialize`, which returns the guide content directly. If compaction wipes the guide, the breadcrumb is enough to reload it.\n- **Disk-backed state** — when the spec is loaded via `load_spec_from_file`, it lives outside the conversation. A compacted (or fully reset) session can re-run the producing script and pick up without re-reading anything.\n\n---\n\n## Documentation\n\nThe AI guide is automatically embedded in the tool description on first use — no manual reading required. For reference:\n\n- **METAENGINE_AI_GUIDE.md** — Critical rules, patterns, language notes, and common mistakes\n- **EXAMPLES.md** — Real-world usage with input/output across all languages\n\n---\n\n## Privacy & Pricing\n\n- **Local adapter** — the local MCP server runs on your machine over stdio, started via `npx`; the package is MIT licensed\n- **Hosted generation** — every generation payload is sent over HTTPS to the hosted MetaEngine API for ephemeral processing, then generated files return to the local adapter\n- **Explicit payload boundary** — the server does not automatically scan or upload existing project source files; source or `customCode` content explicitly included in a generation request is part of that request and is sent to the hosted MetaEngine API\n- **Content privacy** — submitted generation content and generated file contents are not persisted or logged; anonymous operational metadata is retained through the application-level allowlists, with Azure's standard telemetry-record, service-resource, and SDK envelope disclosed separately in the [Privacy Policy](./PRIVACY.md)\n- **Free access** — no API key or account is required\n- **Terms** — See [TERMS.md](./TERMS.md) for usage terms\n\n---\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/meta-engine/mcp-server/issues)\n- **Email**: info@metaengine.eu\n- **Website**: [metaengine.eu](https://www.metaengine.eu)\n\n---\n\n## License\n\nMIT License - see [LICENSE](./LICENSE) file for details.\n\n---\n\n## About This Repository\n\nThis is the **documentation and issue tracking repository** for MetaEngine MCP Server. The compiled NPM package is available at [@metaengine/mcp-server](https://www.npmjs.com/package/@metaengine/mcp-server).\n\nSource code is proprietary, but the MCP server is free to use under MIT license.\n",
  "bytes": 7744,
  "sha": "955b5657c669753428e075c567a9dc16ad7417056fb3e9be5b33fe371c3f9894",
  "repo_slug": "meta-engine/mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_eu_metaengine_mcp_server_823655b7/readme"
}