Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

MetaEngine

NPM · @METAENGINE/MCP-SERVER · SCANNED AUG 3

Spec-first code generation: OpenAPI, GraphQL, Protobuf, and SQL to typed clients in 11 languages.

+19 this week 68 Trust /100
Trust breakdown (6 categories)

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
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
Install

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

# add to Claude Code
claude mcp add eu-metaengine-mcp-server -- npx -y @metaengine/mcp-server
# add to Codex CLI
codex mcp add eu-metaengine-mcp-server -- npx -y @metaengine/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "eu-metaengine-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@metaengine/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add eu-metaengine-mcp-server --command npx --arg -y --arg @metaengine/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  eu-metaengine-mcp-server:
    command: "npx"
    args: ["-y", "@metaengine/mcp-server"]
// mcp.json
{
  "mcpServers": {
    "eu-metaengine-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@metaengine/mcp-server"
      ]
    }
  }
}
Changelog

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.

Diagnostics

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.

MCP tools — 7 exposed · ~6,065 tokens

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.

Tool Tokens
generate_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…

NameTypeReqDescription
arrayTypesarrayArray type definitions - creates IArrayType references (NO files generated). Use for reusable array definitions.
classesarrayClass definitions (regular and generic class templates)
concreteGenericClassesarrayConcrete generic implementations (Repository<User>) - creates inline type references, NO files generated
concreteGenericInterfacesarrayConcrete generic interface implementations (IRepository<User>) - creates inline type references, NO files generated
customFilesarrayCustom files (utility files, type aliases, barrel exports) - generates files WITHOUT class wrapper. Perfect for type aliases and utility functions.
dictionaryTypesarrayDictionary type definitions - creates IDictionaryType references (NO files generated). Supports all 4 combinations of primitive/custom for key/value.
dryRunbooleanPreview mode - returns generated code without writing files to disk. When true, file contents are returned in the response for review.
enumsarrayEnum definitions
initializebooleanWhether to initialize properties with default values
interfacesarrayInterface definitions (regular and generic interface templates)
languagestringyesTarget programming language
outputPathstringOutput directory path where files will be written. Defaults to current directory.
packageNamestringPackage/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…
skipExistingbooleanSkip 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 ~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.

NameTypeReqDescription
angularOptionsobjectAngular-specific options
basicAuthobjectBasic authentication configuration
bearerAuthobjectBearer authentication configuration
csharpOptionsobjectC#-specific options
customHeadersarrayCustom HTTP headers
customScalarsobjectMap GraphQL custom scalars to target-language types (e.g. {DateTime: 'Date', UUID: 'string'}). Keys are scalar names, values are target-language type names.
documentationbooleanGenerate documentation comments from schema descriptions
dryRunbooleanPreview mode - returns generated code without writing files to disk
errorHandlingobjectError handling configuration
fetchOptionsobjectTypeScript Fetch-specific options
fragmentsbooleanEmit 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…
frameworkstringyesTarget framework for code generation
goOptionsobjectGo-specific options
graphQLSchemastringyesGraphQL SDL schema content
javaSpringOptionsobjectJava Spring-specific options
kotlinOptionsobjectKotlin-specific options
optionsObjectThresholdnumberMin params before grouping into options object
outputPathstringOutput directory path where files will be written
pythonOptionsobjectPython-specific options
reactOptionsobjectReact-specific options
retriesobjectRetry configuration
rustOptionsobjectRust-specific options
skipExistingbooleanSkip writing files that already exist
swiftOptionsobjectSwift-specific options
timeoutobjectTimeout configuration

No output schema declared.

No examples provided.

generate_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.

NameTypeReqDescription
angularOptionsobjectOptions for Angular framework (only when framework=angular)
basicAuthobjectBasic authentication configuration
bearerAuthobjectBearer authentication configuration
csharpOptionsobjectOptions for C# HttpClient (namespaceName required)
customHeadersarrayCustom HTTP headers
documentationbooleanGenerate JSDoc/XML doc comments
dryRunbooleanPreview mode - returns generated code without writing files
errorHandlingobjectError handling configuration
fetchOptionsobjectOptions for TypeScript Fetch
frameworkstringyesTarget framework for HTTP client generation
goOptionsobjectOptions for Go net/http (moduleName and packageName required)
includeTagsarrayOnly generate operations whose service tag matches one of these values (case-insensitive).
javaSpringOptionsobjectOptions for Java Spring (packageName required)
kotlinOptionsobjectOptions for Kotlin Ktor (packageName required)
openApiSpecstringInline OpenAPI spec content (YAML or JSON). Either this or openApiSpecUrl is required.
openApiSpecUrlstringURL to fetch the OpenAPI spec from. Either this or openApiSpec is required.
optionsObjectThresholdnumberMin params before grouping into options object
outputPathstringOutput directory path where files will be written
pythonOptionsobjectOptions for Python httpx
reactOptionsobjectOptions for React framework
retriesobjectRetry configuration
rustOptionsobjectOptions for Rust Reqwest
skipExistingbooleanSkip writing files that already exist
strictValidationbooleanEnable strict OpenAPI spec validation
swiftOptionsobjectOptions for Swift URLSession
timeoutobjectTimeout configuration
typeMappingsobjectOverride 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 ~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.

NameTypeReqDescription
angularOptionsobjectAngular-specific options
basicAuthobjectBasic authentication configuration
bearerAuthobjectBearer authentication configuration
csharpOptionsobjectC#-specific options
customHeadersarrayCustom HTTP headers
documentationbooleanGenerate documentation comments from proto comments
dryRunbooleanPreview mode - returns generated code without writing files to disk
errorHandlingobjectError handling configuration
fetchOptionsobjectTypeScript Fetch-specific options
frameworkstringyesTarget framework for code generation
goOptionsobjectGo-specific options
javaSpringOptionsobjectJava Spring-specific options
kotlinOptionsobjectKotlin-specific options
optionsObjectThresholdnumberMin params before grouping into options object
outputPathstringOutput directory path where files will be written
protoSourcestringyesProtocol Buffers (.proto) definition content
pythonOptionsobjectPython httpx-specific options
reactOptionsobjectReact-specific options
retriesobjectRetry configuration
rustOptionsobjectRust-specific options
skipExistingbooleanSkip writing files that already exist
swiftOptionsobjectSwift-specific options
timeoutobjectTimeout configuration

No output schema declared.

No examples provided.

generate_sql ~438

Generates typed model classes from SQL DDL (CREATE TABLE statements). Supports TypeScript, C#, Go, Python, Java, Kotlin, Groovy, Scala, Swift, PHP, and Rust.

NameTypeReqDescription
csharpOptionsobjectC#-specific options
ddlSourcestringyesSQL DDL source code (CREATE TABLE statements)
dryRunbooleanPreview mode - returns generated code without writing files to disk
generateInterfacesbooleanEmit interface-style output (interface/protocol/trait) instead of the default modern-idiomatic concrete shape (record/data class/case class/struct).
generateNavigationPropertiesbooleanGenerate navigation properties for foreign key relationships
generateValidationAnnotationsbooleanGenerate validation annotations from column constraints
goOptionsobjectGo-specific options
groovyOptionsobjectGroovy-specific options
initializePropertiesbooleanInitialize model properties with default values
javaOptionsobjectJava-specific options
jsonAsstringHow JSON columns are typed: e.g. 'string' (raw), 'object' (parsed). Language-specific defaults apply if omitted.
kotlinOptionsobjectKotlin-specific options
languagestringyesTarget programming language
outputPathstringOutput directory path where files will be written
phpOptionsobjectPHP-specific options
precisionSafeDecimalsbooleanEmit decimal/numeric columns as precision-safe types (e.g. string in JS) instead of float, preserving full precision.
pythonOptionsobjectPython-specific options
rustOptionsobjectRust-specific options
scalaOptionsobjectScala-specific options
schemaPrefixstringPrepend the SQL schema name to generated type names (e.g. 'Auth_User' instead of 'User').
singularTypeNamesbooleanSingularize plural table names when emitting type names (e.g. table 'users' becomes type 'User').
skipExistingbooleanSkip writing files that already exist

No output schema declared.

No examples provided.

load_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"})

NameTypeReqDescription
dryRunbooleanPreview mode - returns generated code without writing files. Overrides dryRun in spec file if provided.
outputPathstringOutput directory path where files will be written. Overrides outputPath in spec file if provided.
skipExistingbooleanSkip writing files that already exist. Overrides skipExisting in spec file if provided.
specFilePathstringyesPath to the JSON spec file (absolute or relative to current directory)

No output schema declared.

No examples provided.

metaengine_initialize ~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.

NameTypeReqDescription
languagestringOptional: The primary language you'll be generating code for. If specified, returns language-specific patterns.

No output schema declared.

No examples provided.