TYPED-MCP-1.0.0

TypedPrompting

📝 Schema Validate 🎭 Conversation

Validación NL↔JSON con ontologías definidas

MCP Server: :3020
UI Editor: :3019
Sprint: FC1 2026
L0 El Problema

Las conversaciones con LLMs son ambiguas

🤷
Ambigüedad
"Dame los datos" → ¿Cuáles?
🔄
Inconsistencia
Misma pregunta, respuestas diferentes
Sin validación
JSON malformado = fallo silencioso
"Si tenemos schemas, ¿por qué no validamos las conversaciones?" — Product Owner
L0 🔧 Solución

Schema-First Approach

1
Definir Schema
TypeScript → JSON Schema
2
Registrar en Catálogo
typed_create_schema()
3
Validar Mensajes
typed_validate_message()
JSON Schema TypeScript Ajv MCP
L0 🎮 Ejemplo

Conversación Sin vs Con Validación

❌ Sin TypedPrompt
Dame el estado
El estado es bueno 👍
← Sin estructura, sin garantías
✅ Con TypedPrompt
Dame el estado
{"status": "ok", "uptime": 3600}
← Validado contra schema
L1 MCP Server

7 tools para gobernarlo todo

📄
typed_convert_typescript
TS → JSON Schema
typed_create_schema
Registrar en catálogo
🔍
typed_get_schema
Obtener por ID
📚
typed_list_libraries
Ver bibliotecas
📋
typed_list_schemas
Listar todos
typed_validate_message
Validar JSON
💡
typed_suggest_ontology
Recomendar schema
💡 "Cada tool es un ciudadano MCP de primera clase"
L1 🔧 Código

Arquitectura MCP

📁 MCPGallery/mcp-mesh-sdk/src/
📄 MCPTypedPromptServer.ts Server principal
📄 TypedPromptManager.ts Lógica de schemas
📁 TypedPromptsEditor/
📄 src/routes/api/ UI Vite :3019
typed_validate_message
const valid = ajv.validate(schema, message);
if (!valid) {
  return { valid: false, errors: ajv.errors };
}
return { valid: true };
L1 🎮 Demo

Validación en Acción

mcp_typed-prompt-_typed_validate_message
{ "schemaId": 1, "message": "{\"name\": \"test\", \"value\": 42}" }
{ "valid": true, "message": "Validation successful" }
L2 Catálogo

Ontologías como ciudadanos del Scriptorium

📚 Bibliotecas Disponibles
teatro
4 schemas
Obras, escenas, personajes
iot
3 schemas
Sensores, reglas, acciones
arg
5 schemas
Argumentos, narrativas
+ Crear
∞ posibles
typed_create_schema
L2 🔧 Specs

OpenAPI + AsyncAPI

OpenAPI 3.0
TypedPromptsEditor.yaml
931 líneas
14 endpoints REST
📁 OPENASYNCAPI_EDITOR/specs/TypedPromptsEditor/
📄 TypedPromptsEditor.yaml
📄 generated/typescript-client/
L2 🎮 Caso Teatro

Schema para Obras Dramáticas

Validar una Obra del Teatro
{
  "type": "object",
  "properties": {
    "obraId": { "type": "string" },
    "titulo": { "type": "string" },
    "escenas": {
      "type": "array",
      "items": { "$ref": "#/defs/Escena" }
    }
  },
  "required": ["obraId", "titulo"]
}
🔗 Integración con TEATRO-PROLOG-1.0.0
Integración

El Flujo Completo

📝
Definir Schema
TypeScript
🔌
Registrar MCP
:3020
Validar
Ajv
🎭
Usar en Teatro
Prolog :3006
MCP Mesh v2.0
:3020 TypedPrompt
:3006 Prolog
:3050 Launcher
:3003 DevOps