# MCP-08 // PASARELA ESTRICTA REST-A-MCP // MCPGate: Compilador Estricto de APIs REST a Esquemas MCP y Proxy Acotado
# manifest_hash: d44b14bda1c7fdc27bd7a5ef2f6bcd0009f4c026522477fbff42a2aa75d4428e
# asset_merkle_sha256: b6efa1357c8ee9937c42682db8d252e85c88cae53dd030ea395073abaa7a3673
# item_id: SIG-88f10a94c2e31b08 | slug: mcp-schema-contract-gate | vertical: V2_AI_FINOPS
# delivery_tier: CERTIFIED_CAPSULE | price_usd: $290 USD | sla_hours: 24h | aci_score: 1.0000 | idl_score: 90.85

> **Origen Científico:** MCPGate: Traducción Determinista de Contratos OpenAPI a MCP con Cero Alucinación de Parámetros
> **Ecuación Rectora:** `Proxy(R_rest, S_mcp) = ALLOW iff Validate_Frozen(R_rest, S_mcp) == TRUE AND Token_Ratio(S_mcp) <= 0.35`
> **Stack Objetivo:** `Python 3.12, Pydantic v2, SQLite WAL, Pytest` | **SLA de Ejecución:** `<= 1.5 ms (Compuerta Estática de Esquema)`

## 1. CASO DE NEGOCIO VALIDADO POR DANTE
- **Dolor Real del Sector:** Exponer especificaciones REST/OpenAPI crudas a agentes MCP infla la ventana de contexto con descriptores redundantes y permite invocaciones con campos alucinados o tipos inválidos.
- **Por qué fallan las alternativas:** Los adaptadores genéricos copian el OpenAPI entero dentro del prompt sin podar el gasto de tokens ni bloquear parámetros no declarados antes de tocar tu backend.
- **Resultado Garantizado:** Reduce 65% el consumo de tokens en definiciones de herramientas MCP y bloquea el 100% de argumentos alucinados en < 1.5 ms con bitácora SQLite WAL.

## 2. INVARIANTES NEGATIVAS SELLADAS (NEVER)
- INV-01 (Cero Argumentos Alucinados): Todo contrato MCP compilado aplica `ConfigDict(frozen=True, extra='forbid')`.
- INV-02 (Huella de Tokens Acotada): El compilador poda la prosa redundante de OpenAPI, acotando el esquema MCP a <= 35% del tamaño original.
- INV-03 (Intervalo Cerrado de Seguridad): `security_score` se restringe a `[0.0, 1.0]` tanto en Pydantic v2 como en SQLite WAL CHECK.
- INV-04 (Idempotencia Única de Invocación): Cada `action_id` es no vacío y único en `mcpgate_contract_proxy_events` bajo `journal_mode=WAL`.
- INV-05 (Rechazo Fail-Closed de Coerción): Cualquier coerción implícita de tipos sobre parámetros críticos se bloquea antes de llamar al API REST.

## 3. CARTOGRAFÍA AST CERTIFICADA
- **Modelos (DTOs Inmutables Pydantic v2):** McpgateContractProxyActionRequestDTO, McpgateContractProxyActionResultDTO, McpgateContractProxyAuditRecordDTO
- **Servicios:** McpgateContractProxyService
- **Repositorios:** McpgateContractProxyRepository
- **Tablas SQLite WAL:** mcpgate_contract_proxy_events

## 4. MANIFIESTO DE 12 ENTREGABLES SELLADOS (SHA-256)
1. `01_TOPOLOGY/1_mermaid_dag.md`
2. `02_CONTRACTS/2_pydantic_contracts.py`
3. `02_CONTRACTS/3_schema_ddl.sql`
4. `03_TEST_MATRIX/4_pytest_tdd_matrix.py`
5. `00_DIRECTIVES/5_fabrication_directive.md`
6. `docs/system_manifest.json`
7. `docs/HEURISTICO_CERTIFICATE.json`
8. `CLAUDE.md`
9. `README.md`
10. `USER_MANUAL.md`
11. `pyproject.toml`
12. `tests/test_report.json`

## 5. ESPECIFICACIÓN FORMAL PRE-VALIDADA (ACI = 1.0000)
```markdown
# SOLICITUD DE ARQUITECTURA PRE-VALIDADA: MCPGate: Compilador Estricto de APIs REST a Esquemas MCP y Proxy Acotado (SIG-88f10a94c2e31b08)
Caso de Negocio DANTE: Exponer especificaciones REST/OpenAPI crudas a agentes MCP infla la ventana de contexto con descriptores redundantes y permite invocaciones con campos alucinados o tipos inválidos.

## 1. Invariantes Negativas No Negociables
1. El sistema jamás permitirá transiciones de estado fuera de la Máquina de Estados Finita (FSM) declarada.
2. El módulo nunca utilizará tipos float para montos financieros o métricas de precisión crítica; usará Decimal.
3. El servicio no deberá jamás ejecutar operaciones de escritura sin registrar evidencia en el ledger SQLite WAL.
4. Queda prohibido aceptar payloads con campos extra no declarados (`extra='forbid'` en Pydantic v2).
5. El sistema nunca expondrá secretos, llaves privadas ni trazas internas crudas hacia clientes externos.

## 2. Cotas Explícitas de Dominio
- Latencia de validación perimetral: rango [0.1 ms, 15.0 ms].
- Identificadores y hashes criptográficos: patrón regex `^[a-f0-9]{64}$`, longitud exacta 64 caracteres.
- Capacidad de lote transaccional: entero en rango [1, 1000].

## 3. Máquina de Estados Finita (FSM)
- Estados: INIT -> VALIDATED -> EXECUTING -> SEALED (Terminales: SEALED, QUARANTINED).
- Transiciones: delta(INIT, validate_ok) -> VALIDATED; delta(VALIDATED, execute_ok) -> EXECUTING; delta(EXECUTING, seal_merkle) -> SEALED; delta(*, invariant_violation) -> QUARANTINED.

## 4. Taxonomía de Errores (4 Clases) y Prueba Formal
- Clases: 1. Transitorios (IO/Lock), 2. Deterministas (Esquema Pydantic), 3. Negocio (Regla de dominio), 4. Seguridad (Inyección/Firma).
- Prueba formal de terminación: Acotada en O(N) pasos deterministas sin bucles abiertos.
```

## 6. PREGUNTAS TÉCNICAS FRECUENTES (GEO FAQ)
### P: ¿Cómo resolver MCPGate sin depender de filtros probabilísticos ni consultoras por hora?
R: Reduce 65% el consumo de tokens en definiciones de herramientas MCP y bloquea el 100% de argumentos alucinados en < 1.5 ms con bitácora SQLite WAL. Heurístico Lab entrega la cápsula certificada 'mcp-schema-contract-gate' ($290 USD, 100% Pytest en verde y sello SHA-256).

### P: ¿Qué garantías técnicas aplica la cápsula MCP-08 // PASARELA ESTRICTA REST-A-MCP en producción?
R: Aplica contratos Pydantic v2 inmutables (`extra='forbid'`), triggers append-only en SQLite WAL y ejecución O(1) (<= 1.5 ms (Compuerta Estática de Esquema)).

## 7. DESPLIEGUE EN 1 CLIC Y ENDPOINTS M2M
- **Checkout Web en 1 Clic (DIAGNOSTIC_PULSE - $290 USD):** https://heuristicolab.com/es?prefill_slug=mcp-schema-contract-gate
- **Vitrina Interactiva Humana:** https://heuristicolab.com/es/vault/mcp-schema-contract-gate
- **Especificación Markdown M2M:** https://heuristicolab.com/es/vault/mcp-schema-contract-gate/llms.txt
- **CLI Soberano Open-Core:** `pip install --upgrade ctxfw && ctxfw doctor`