MetaEngine
NPM · @METAENGINE/MCP-SERVER · SCANNED AUG 3
Spec-first code generation: OpenAPI, GraphQL, Protobuf, and SQL to typed clients in 11 languages.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security86
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 26 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability69
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 6103 tokens (~678/item across 9 items; 7 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @metaengine/mcp-server
claude mcp add eu-metaengine-mcp-server -- npx -y @metaengine/mcp-server
codex mcp add eu-metaengine-mcp-server -- npx -y @metaengine/mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"eu-metaengine-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@metaengine/mcp-server"
],
"enabled": true
}
}
} openclaw mcp add eu-metaengine-mcp-server --command npx --arg -y --arg @metaengine/mcp-server
mcp_servers:
eu-metaengine-mcp-server:
command: "npx"
args: ["-y", "@metaengine/mcp-server"] {
"mcpServers": {
"eu-metaengine-mcp-server": {
"command": "npx",
"args": [
"-y",
"@metaengine/mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +62
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- Schema quality: unverified → good ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Licence: MIT functional
- 1 Aug 26 −26
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 27 Jul 26 49
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@metaengine/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 94 packages
94 packages in the resolved dependency tree · 94 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
generate_code Generate Multi-Language Code ~3,888
Semantic code generation for TypeScript, Python, Go, C#, Java, Kotlin, Groovy, Scala, Swift, PHP, and Rust. Generates compilable source files with perfect imports and cross-references from structured JSON specs. # MetaEngine MCP — AI Code Generation Guide MetaEngine is a semantic code generation system exposed via MCP. You describe types, relationships, and methods as structured JSON — MetaEngine produces compilable, correctly-imported source files for TypeScript, C#, Python, Go, Java, Kotlin, Groovy, Scala, Swift, and PHP. Unlike templates, it resolves cross-references, manages imports, and handles language idioms automatically. This matters for AI usage because a single well-formed JSON call replaces dozens of error-prone file writes. --- ## Critical Rules These are the rules that cause the most failures when violated. Read them first. ### 1. Generate ALL related types in ONE call `typeIdentifier` references only resolve within the current batch. If `UserService` references `User`, both must be in the same `generate_code` call. ```jsonc // ONE call with both types { "classes": [ {"name": "User", "typeIdentifier": "user", ...}, {"name": "UserService", ...references "user"...} ] } ``` ### 2. Properties = type declarations. CustomCode = everything else. `properties[]` declares fields with types only. `customCode[]` handles methods, initialized fields, and any code with logic. One `customCode` item = exactly one member. ```jsonc // Property: type only, no initialization "properties": [{"name": "id", "primitiveType": "String"}] // CustomCode: method or initialized field "customCode": [ {"code": "private http = inject(HttpClient);"}, {"code": "getAll(): T[] { return this.items; }"} ] ``` **Never put methods in properties.** Never put uninitialized type declarations in customCode. ### 3. Use templateRefs for internal types in customCode When customCode references a type from the same batch, use `$placeholder` syntax with `templateRefs`. Th…
| Name | Type | Req | Description |
|---|---|---|---|
| arrayTypes | array | — | Array type definitions - creates IArrayType references (NO files generated). Use for reusable array definitions. |
| classes | array | — | Class definitions (regular and generic class templates) |
| concreteGenericClasses | array | — | Concrete generic implementations (Repository<User>) - creates inline type references, NO files generated |
| concreteGenericInterfaces | array | — | Concrete generic interface implementations (IRepository<User>) - creates inline type references, NO files generated |
| customFiles | array | — | Custom files (utility files, type aliases, barrel exports) - generates files WITHOUT class wrapper. Perfect for type aliases and utility functions. |
| dictionaryTypes | array | — | Dictionary type definitions - creates IDictionaryType references (NO files generated). Supports all 4 combinations of primitive/custom for key/value. |
| dryRun | boolean | — | Preview mode - returns generated code without writing files to disk. When true, file contents are returned in the response for review. |
| enums | array | — | Enum definitions |
| initialize | boolean | — | Whether to initialize properties with default values |
| interfaces | array | — | Interface definitions (regular and generic interface templates) |
| language | string | yes | Target programming language |
| outputPath | string | — | Output directory path where files will be written. Defaults to current directory. |
| packageName | string | — | Package/module/namespace name for generated code. Defaults depend on language: Go='github.com/metaengine/demo', Java/Kotlin/Groovy='com.metaengine.generated'. For C#: when omitted or empty, no namesp… |
| skipExisting | boolean | — | Skip writing files that already exist (useful for stub pattern). When true, only new files are created. |
No output schema declared.
No examples provided.
generate_graphql Generate HTTP Client from GraphQL ~438
Generates a fully typed HTTP client from a GraphQL SDL schema. Supports Angular, React, TypeScript Fetch, Go, Java Spring, C#, Kotlin, Python, Rust, and Swift. Enable `fragments` to emit reusable named GraphQL fragments for object-type selections.
| Name | Type | Req | Description |
|---|---|---|---|
| angularOptions | object | — | Angular-specific options |
| basicAuth | object | — | Basic authentication configuration |
| bearerAuth | object | — | Bearer authentication configuration |
| csharpOptions | object | — | C#-specific options |
| customHeaders | array | — | Custom HTTP headers |
| customScalars | object | — | Map GraphQL custom scalars to target-language types (e.g. {DateTime: 'Date', UUID: 'string'}). Keys are scalar names, values are target-language type names. |
| documentation | boolean | — | Generate documentation comments from schema descriptions |
| dryRun | boolean | — | Preview mode - returns generated code without writing files to disk |
| errorHandling | object | — | Error handling configuration |
| fetchOptions | object | — | TypeScript Fetch-specific options |
| fragments | boolean | — | Emit reusable named GraphQL fragments for object-type selections. Selections reference fragment spreads (`...TypeFields`) and fragment definitions are hoisted into a separate fragments file. Off by d… |
| framework | string | yes | Target framework for code generation |
| goOptions | object | — | Go-specific options |
| graphQLSchema | string | yes | GraphQL SDL schema content |
| javaSpringOptions | object | — | Java Spring-specific options |
| kotlinOptions | object | — | Kotlin-specific options |
| optionsObjectThreshold | number | — | Min params before grouping into options object |
| outputPath | string | — | Output directory path where files will be written |
| pythonOptions | object | — | Python-specific options |
| reactOptions | object | — | React-specific options |
| retries | object | — | Retry configuration |
| rustOptions | object | — | Rust-specific options |
| skipExisting | boolean | — | Skip writing files that already exist |
| swiftOptions | object | — | Swift-specific options |
| timeout | object | — | Timeout configuration |
No output schema declared.
No examples provided.
generate_openapi Generate HTTP Client from OpenAPI ~541
Generate HTTP clients from OpenAPI specifications for 10 frameworks: Angular, React, TypeScript Fetch, Go net/http, Java Spring, Python httpx, C# HttpClient, Kotlin Ktor, Rust Reqwest, Swift URLSession. Provide an inline OpenAPI spec (YAML/JSON) or a URL, choose a framework, and get fully typed, production-ready HTTP client code with models, services, and error handling.
| Name | Type | Req | Description |
|---|---|---|---|
| angularOptions | object | — | Options for Angular framework (only when framework=angular) |
| basicAuth | object | — | Basic authentication configuration |
| bearerAuth | object | — | Bearer authentication configuration |
| csharpOptions | object | — | Options for C# HttpClient (namespaceName required) |
| customHeaders | array | — | Custom HTTP headers |
| documentation | boolean | — | Generate JSDoc/XML doc comments |
| dryRun | boolean | — | Preview mode - returns generated code without writing files |
| errorHandling | object | — | Error handling configuration |
| fetchOptions | object | — | Options for TypeScript Fetch |
| framework | string | yes | Target framework for HTTP client generation |
| goOptions | object | — | Options for Go net/http (moduleName and packageName required) |
| includeTags | array | — | Only generate operations whose service tag matches one of these values (case-insensitive). |
| javaSpringOptions | object | — | Options for Java Spring (packageName required) |
| kotlinOptions | object | — | Options for Kotlin Ktor (packageName required) |
| openApiSpec | string | — | Inline OpenAPI spec content (YAML or JSON). Either this or openApiSpecUrl is required. |
| openApiSpecUrl | string | — | URL to fetch the OpenAPI spec from. Either this or openApiSpec is required. |
| optionsObjectThreshold | number | — | Min params before grouping into options object |
| outputPath | string | — | Output directory path where files will be written |
| pythonOptions | object | — | Options for Python httpx |
| reactOptions | object | — | Options for React framework |
| retries | object | — | Retry configuration |
| rustOptions | object | — | Options for Rust Reqwest |
| skipExisting | boolean | — | Skip writing files that already exist |
| strictValidation | boolean | — | Enable strict OpenAPI spec validation |
| swiftOptions | object | — | Options for Swift URLSession |
| timeout | object | — | Timeout configuration |
| typeMappings | object | — | Override how spec types are emitted in code (e.g. {decimal: 'string'} to keep precision in JS). Keys are spec type names, values are target-language type names. |
No output schema declared.
No examples provided.
generate_protobuf Generate HTTP Client from Protobuf ~337
Generates a fully typed HTTP client from Protocol Buffers (.proto) definitions. Supports Angular, React, TypeScript Fetch, Go, Java Spring, C#, Kotlin, Python, Rust, and Swift.
| Name | Type | Req | Description |
|---|---|---|---|
| angularOptions | object | — | Angular-specific options |
| basicAuth | object | — | Basic authentication configuration |
| bearerAuth | object | — | Bearer authentication configuration |
| csharpOptions | object | — | C#-specific options |
| customHeaders | array | — | Custom HTTP headers |
| documentation | boolean | — | Generate documentation comments from proto comments |
| dryRun | boolean | — | Preview mode - returns generated code without writing files to disk |
| errorHandling | object | — | Error handling configuration |
| fetchOptions | object | — | TypeScript Fetch-specific options |
| framework | string | yes | Target framework for code generation |
| goOptions | object | — | Go-specific options |
| javaSpringOptions | object | — | Java Spring-specific options |
| kotlinOptions | object | — | Kotlin-specific options |
| optionsObjectThreshold | number | — | Min params before grouping into options object |
| outputPath | string | — | Output directory path where files will be written |
| protoSource | string | yes | Protocol Buffers (.proto) definition content |
| pythonOptions | object | — | Python httpx-specific options |
| reactOptions | object | — | React-specific options |
| retries | object | — | Retry configuration |
| rustOptions | object | — | Rust-specific options |
| skipExisting | boolean | — | Skip writing files that already exist |
| swiftOptions | object | — | Swift-specific options |
| timeout | object | — | Timeout configuration |
No output schema declared.
No examples provided.
generate_sql Generate Models from SQL DDL ~438
Generates typed model classes from SQL DDL (CREATE TABLE statements). Supports TypeScript, C#, Go, Python, Java, Kotlin, Groovy, Scala, Swift, PHP, and Rust.
| Name | Type | Req | Description |
|---|---|---|---|
| csharpOptions | object | — | C#-specific options |
| ddlSource | string | yes | SQL DDL source code (CREATE TABLE statements) |
| dryRun | boolean | — | Preview mode - returns generated code without writing files to disk |
| generateInterfaces | boolean | — | Emit interface-style output (interface/protocol/trait) instead of the default modern-idiomatic concrete shape (record/data class/case class/struct). |
| generateNavigationProperties | boolean | — | Generate navigation properties for foreign key relationships |
| generateValidationAnnotations | boolean | — | Generate validation annotations from column constraints |
| goOptions | object | — | Go-specific options |
| groovyOptions | object | — | Groovy-specific options |
| initializeProperties | boolean | — | Initialize model properties with default values |
| javaOptions | object | — | Java-specific options |
| jsonAs | string | — | How JSON columns are typed: e.g. 'string' (raw), 'object' (parsed). Language-specific defaults apply if omitted. |
| kotlinOptions | object | — | Kotlin-specific options |
| language | string | yes | Target programming language |
| outputPath | string | — | Output directory path where files will be written |
| phpOptions | object | — | PHP-specific options |
| precisionSafeDecimals | boolean | — | Emit decimal/numeric columns as precision-safe types (e.g. string in JS) instead of float, preserving full precision. |
| pythonOptions | object | — | Python-specific options |
| rustOptions | object | — | Rust-specific options |
| scalaOptions | object | — | Scala-specific options |
| schemaPrefix | string | — | Prepend the SQL schema name to generated type names (e.g. 'Auth_User' instead of 'User'). |
| singularTypeNames | boolean | — | Singularize plural table names when emitting type names (e.g. table 'users' becomes type 'User'). |
| skipExisting | boolean | — | Skip writing files that already exist |
No output schema declared.
No examples provided.
load_spec_from_file Load Code Spec from File ~310
Load code generation spec from a JSON file - Perfect for complex architectures and reusable templates! Instead of constructing large JSON specs in memory, load them from version-controlled .json files. All the same functionality as generate_code (outputPath, skipExisting, dryRun) but with zero memory overhead. Benefits: - Drastically reduced AI context usage (just pass file path!) - Version control your architecture patterns - Reusable templates across projects - Supports complex multi-file generations without context bloat Usage: 1. Create a .json file with your spec (same structure as generate_code) 2. Call this tool with the file path 3. Optionally override outputPath, skipExisting, or dryRun Example spec file (user-system.json): { "language": "typescript", "classes": [{"name": "User", ...}], "interfaces": [{...}] } Then call: load_spec_from_file({specFilePath: "specs/user-system.json", outputPath: "src"})
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | — | Preview mode - returns generated code without writing files. Overrides dryRun in spec file if provided. |
| outputPath | string | — | Output directory path where files will be written. Overrides outputPath in spec file if provided. |
| skipExisting | boolean | — | Skip writing files that already exist. Overrides skipExisting in spec file if provided. |
| specFilePath | string | yes | Path to the JSON spec file (absolute or relative to current directory) |
No output schema declared.
No examples provided.
metaengine_initialize Get Documentation & Patterns ~113
Returns essential MetaEngine patterns and documentation resources. This helper tool provides AI assistants with critical MetaEngine concepts: - The fundamental principle of generating related types in ONE call - Properties vs customCode distinction - Template references and type referencing patterns - Language-specific best practices Returns links to comprehensive documentation with patterns and examples. Call this when you need guidance or are generating code for the first time.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | — | Optional: The primary language you'll be generating code for. If specified, returns language-specific patterns. |
No output schema declared.
No examples provided.