MCP stdio interface
This bounded adapter uses MCP 2026-07-28 over newline-delimited stdio and lists exactly one tool, eqiora.model.compile_check. The admitted framing boundary is one local subprocess, bounded framing and metadata, one active call, and best-effort response cancellation.
Discover the server
Section titled “Discover the server”Request:
{ "jsonrpc": "2.0", "id": "docs-discover", "method": "server/discover", "params": { "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientCapabilities": {} } }}Live response:
{ "jsonrpc": "2.0", "id": "docs-discover", "result": { "resultType": "complete", "supportedVersions": [ "2026-07-28" ], "capabilities": { "tools": { "listChanged": false } }, "_meta": { "io.modelcontextprotocol/serverInfo": { "name": "eqiora-mcp", "version": "0.1.0-alpha.2" } }, "instructions": "Compile/check Eqiora source in memory. This server does not read files, edit models, run solvers, or create tasks.", "ttlMs": 3600000, "cacheScope": "public" }}List tools
Section titled “List tools”Request:
{ "jsonrpc": "2.0", "id": "docs-tools", "method": "tools/list", "params": { "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientCapabilities": {} } }}Live response:
{ "jsonrpc": "2.0", "id": "docs-tools", "result": { "resultType": "complete", "tools": [ { "name": "eqiora.model.compile_check", "title": "Compile/check an Eqiora Model", "description": "Compile one in-memory Eqiora source string into the current Model descriptor, or return structured compiler diagnostics. filename is a diagnostic label and is never read from the filesystem.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "additionalProperties": false, "properties": { "filename": { "type": "string", "minLength": 1, "maxLength": 4096, "default": "<memory>", "description": "Diagnostic source label only; never a filesystem path." }, "source": { "type": "string", "maxLength": 8388608, "description": "Complete in-memory Eqiora source text." } }, "required": [ "source" ] }, "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { "type": "object", "additionalProperties": false, "properties": { "schema": { "const": "eqiora.mcp.compile-check-result/v1" }, "status": { "const": "accepted" }, "model": { "type": "object", "additionalProperties": false, "properties": { "schema": { "const": "eqiora.model-envelope/v8" }, "transactionSchema": { "const": "eqiora.model-transaction-envelope/v8" }, "digest": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "modelId": { "type": "string", "minLength": 1, "maxLength": 128 }, "semanticRevision": { "type": "integer", "minimum": 0 }, "structuralFingerprint": { "type": "object", "additionalProperties": false, "properties": { "generation": { "enum": [ "eqiora.structural-semantic-fingerprint/v1", "eqiora.structural-semantic-fingerprint/v2", "eqiora.structural-semantic-fingerprint/v3" ] }, "digest": { "type": "string", "pattern": "^[0-9a-f]{64}$" } }, "required": [ "generation", "digest" ] } }, "required": [ "schema", "transactionSchema", "digest", "modelId", "semanticRevision", "structuralFingerprint" ] } }, "required": [ "schema", "status", "model" ] }, { "type": "object", "additionalProperties": false, "properties": { "schema": { "const": "eqiora.mcp.compile-check-result/v1" }, "status": { "const": "rejected" }, "diagnostics": { "type": "array", "minItems": 1, "maxItems": 1024, "items": { "type": "object", "additionalProperties": false, "properties": { "source": { "enum": [ "mcp", "kernel" ] }, "severity": { "enum": [ "error", "warning", "note" ] }, "code": { "type": "string", "pattern": "^[A-Z]{2}[0-9]{4}$" }, "message": { "type": "string", "minLength": 1, "maxLength": 1048576 }, "graphPath": { "oneOf": [ { "type": "array", "maxItems": 256, "items": { "type": "string", "minLength": 1, "maxLength": 4096 } }, { "type": "null" } ] }, "span": { "oneOf": [ { "type": "object", "additionalProperties": false, "properties": { "file": { "type": "string", "maxLength": 4096 }, "start": { "type": "integer", "minimum": 0, "maximum": 4294967295 }, "end": { "type": "integer", "minimum": 0, "maximum": 4294967295 } }, "required": [ "file", "start", "end" ] }, { "type": "null" } ] }, "patch": { "oneOf": [ { "type": "object", "additionalProperties": false, "properties": { "summary": { "type": "string", "minLength": 1, "maxLength": 4096 } }, "required": [ "summary" ] }, { "type": "null" } ] } }, "required": [ "source", "severity", "code", "message", "graphPath", "span", "patch" ] } } }, "required": [ "schema", "status", "diagnostics" ] } ] } } ], "ttlMs": 3600000, "cacheScope": "public", "_meta": { "io.modelcontextprotocol/serverInfo": { "name": "eqiora-mcp", "version": "0.1.0-alpha.2" } } }}Boundary and evidence
Section titled “Boundary and evidence”This is not a general framing reference. It does not publish numeric line limits, a metadata/token/cancellation grammar, an error table, exit behavior, HTTP, sessions, persistence, remote hosting, resources, prompts, tasks, a generic MCP layer, or tools not returned above.