# MetaEngine > Universal code generator for OpenAPI, GraphQL, Protobuf, and SQL specs across 11 programming languages. Free, MIT-licensed. Available in the browser, as npm/NuGet packages, and as an MCP server for AI assistants. MetaEngine converts structured specifications into typed code. Output follows target-language conventions, one file per type for clean tree-shaking, with framework integration (TanStack Query for React, httpResource + Signals for Angular, Spring RestClient for Java, Pydantic v2 + httpx for Python, plain net/http for Go, sealed interfaces + coroutines for Kotlin). The hosted generator is available through the browser converter UI and the local Model Context Protocol adapter, while standalone npm/NuGet packages execute locally in your own process. ## Generation data flow The converter UI runs in your browser. When you generate, your specification (or its URL), selected options, and any custom content you explicitly include are sent over HTTPS to the MetaEngine API. The API processes the payload ephemerally; specifications and generated code are not persisted or logged. The MCP server and stdio transport run on your machine. Generation payloads are sent over HTTPS to the MetaEngine API and processed ephemerally; specifications and generated code are not persisted or logged. Existing project source is not uploaded unless its content is explicitly included in a generation payload. [Read the public privacy policy](https://github.com/meta-engine/mcp-server/blob/main/PRIVACY.md). ## Primary entry points - [Home](https://www.metaengine.eu/): Overview and value proposition - [Converters](https://www.metaengine.eu/converters): Interactive browser-based converter, 41 spec-to-language combinations - [MCP Server](https://www.metaengine.eu/mcp): Eight Model Context Protocol tools, including local expansion of versioned JSON recipes into hosted code-generation requests of up to 250 counted types - [Playground](https://www.metaengine.eu/playground): Quick spec-to-code experiments ## Converter landing pages - [OpenAPI to TypeScript](https://www.metaengine.eu/converters/openapi-to-typescript): React with TanStack Query, Angular with httpResource, or plain Fetch. Discriminated unions from oneOf. OpenAPI 3.0 and 3.1. - [OpenAPI to Angular](https://www.metaengine.eu/converters/openapi-to-angular): Typed Angular services with httpResource + Signals for GET operations, inject() DI, optional functional interceptors and the Angular 22 @Service() decorator. - [OpenAPI to React](https://www.metaengine.eu/converters/openapi-to-react): TanStack Query hooks (useQuery/useMutation) with parameter-derived query keys, or plain async functions over fetch. - [OpenAPI to Fetch](https://www.metaengine.eu/converters/openapi-to-fetch): Zero-dep TypeScript Fetch client. ApiResult for errors as values, middleware hooks, retries with backoff, async bearer tokens. Runs on Node, browser, Vite, SvelteKit, Next.js 15+. - [OpenAPI to Java Spring](https://www.metaengine.eu/converters/openapi-to-java-spring): Modern RestClient, Java 17 records, sealed interfaces for oneOf, auto-registered `@Service`, Bean Validation / non-null JSON. - [OpenAPI to Python](https://www.metaengine.eu/converters/openapi-to-python): Pydantic v2 models with httpx async clients. `Annotated[Union[...], Field(discriminator='kind')]` for oneOf, PEP 604 type hints. - [OpenAPI to Go](https://www.metaengine.eu/converters/openapi-to-go): Pure net/http, context-aware, no third-party runtime. Discriminated-union struct for oneOf with custom Marshal/UnmarshalJSON. - [OpenAPI to Kotlin](https://www.metaengine.eu/converters/openapi-to-kotlin): Ktor 3.x and kotlinx.serialization, sealed interfaces for oneOf, suspend functions on an HttpClient you own. - [OpenAPI to C#](https://www.metaengine.eu/converters/openapi-to-csharp): Records with required/init, nullable reference types, [JsonPolymorphic] for oneOf, System.Text.Json only — no Newtonsoft, no extra runtime package. - [OpenAPI to Rust](https://www.metaengine.eu/converters/openapi-to-rust): reqwest + serde, `#[serde(tag)]` enums for oneOf, `Option` for nullable, async on tokio, concrete Error enum. - [GraphQL to Angular](https://www.metaengine.eu/converters/graphql-to-angular): Typed Angular services generated from SDL — queries and mutations as Observables over HttpClient, subscriptions as Observables over graphql-transport-ws. - [GraphQL to React](https://www.metaengine.eu/converters/graphql-to-react): TanStack Query hooks generated from SDL. Subscriptions as async-iterator hooks over graphql-transport-ws. - [GraphQL to Kotlin](https://www.metaengine.eu/converters/graphql-to-kotlin): Ktor 3.x and kotlinx.serialization, sealed interfaces for unions, suspend functions, subscriptions as `Flow` over graphql-transport-ws. - [GraphQL to C#](https://www.metaengine.eu/converters/graphql-to-csharp): Records with required/init, nullable reference types from the schema's `!`, `[JsonPolymorphic]` interfaces for unions keyed on `__typename`, typed query/mutation/subscription clients over HttpClient. Subscriptions as `IAsyncEnumerable` over graphql-transport-ws. - [Protobuf to Kotlin](https://www.metaengine.eu/converters/protobuf-to-kotlin): Sealed interfaces for oneof, coroutine-friendly. Connect-RPC streaming as `Flow`. - [Protobuf to C#](https://www.metaengine.eu/converters/protobuf-to-csharp): Records with required/init, nullable reference types, discriminated-union records for oneof, Connect RPC over JSON. Server/client/bidi streaming via `IAsyncEnumerable`. - [Protobuf to Go](https://www.metaengine.eu/converters/protobuf-to-go): Plain structs with `json:` tags that `encoding/json` reads directly — no generated getters, no embedded state fields. proto3 `optional` and `google.protobuf.Timestamp` become `*string` / `*time.Time`; `oneof` becomes a union struct with one pointer per variant. Stdlib-only Connect RPC client, `context.Context` on every call. - [SQL to TypeScript](https://www.metaengine.eu/converters/sql-to-typescript): DDL statements to typed TypeScript models. PostgreSQL, MySQL, SQL Server, SQLite dialects. - [SQL to Kotlin](https://www.metaengine.eu/converters/sql-to-kotlin): DDL statements to `@Serializable` Kotlin data classes with kotlinx.serialization. ## Packages - [Angular OpenAPI package](https://www.metaengine.eu/packages/openapi-angular): `@metaengine/openapi-angular` - [React OpenAPI package](https://www.metaengine.eu/packages/openapi-react): `@metaengine/openapi-react` - [Fetch OpenAPI package](https://www.metaengine.eu/packages/openapi-fetch): `@metaengine/openapi-fetch` - [Angular GraphQL package](https://www.metaengine.eu/packages/graphql-angular): `@metaengine/graphql-angular` - [React GraphQL package](https://www.metaengine.eu/packages/graphql-react): `@metaengine/graphql-react` - [Fetch GraphQL package](https://www.metaengine.eu/packages/graphql-fetch): `@metaengine/graphql-fetch` - [Angular Protobuf package](https://www.metaengine.eu/packages/protobuf-angular): `@metaengine/protobuf-angular` - [React Protobuf package](https://www.metaengine.eu/packages/protobuf-react): `@metaengine/protobuf-react` - [Fetch Protobuf package](https://www.metaengine.eu/packages/protobuf-fetch): `@metaengine/protobuf-fetch` - [MCP Server](https://www.metaengine.eu/mcp): `@metaengine/mcp-server`, including `generate_from_recipe` ## License - [License](https://www.metaengine.eu/license): MIT, no usage restrictions