{
  "$schema": "https://modelcontextprotocol.io/schema/server-card.json",
  "name": "PromptFlowKit MCP Server",
  "version": "1.0.0",
  "description": "Servidor MCP oficial de PromptFlowKit para la orquestación determinista de pipelines de prompts, evaluación de respuestas y optimización de Prompt Caching nativa sobre la API de Claude (Anthropic).",
  "vendor": {
    "name": "PromptFlowKit",
    "url": "https://promptflowkit.com/",
    "contactEmail": "hello@promptflowkit.com"
  },
  "websiteUrl": "https://promptflowkit.com/",
  "documentationUrl": "https://promptflowkit.com/#docs",
  "support": {
    "url": "https://promptflowkit.com/#faq",
    "email": "hello@promptflowkit.com"
  },
  "license": "proprietary",
  "homepage": "https://promptflowkit.com/",
  "endpoint": "https://api.promptflowkit.com/mcp",
  "transport": "http",
  "transportDocs": "https://modelcontextprotocol.io/specification",
  "securitySchemes": [
    {
      "type": "http",
      "scheme": "bearer",
      "description": "PromptFlowKit API key issued at https://promptflowkit.com/#pricing"
    }
  ],
  "security": [
    {
      "bearer": []
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "execute_prompt_pipeline",
        "description": "Ejecuta un pipeline determinista de prompts multi-etapa sobre Claude Sonnet and Haiku con resolución de variables, validación de esquema y branching condicional.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "pipeline_id": {
              "type": "string",
              "description": "Identificador único del pipeline en PromptFlowKit"
            },
            "variables": {
              "type": "object",
              "description": "Diccionario de variables dinámicas inyectadas en los templates de prompts"
            },
            "model": {
              "type": "string",
              "enum": [
                "claude-sonnet",
                "claude-sonnet",
                "claude-haiku"
              ],
              "default": "claude-sonnet",
              "description": "Modelo de Claude sobre el cual ejecutar la inferencia"
            }
          },
          "required": [
            "pipeline_id"
          ]
        }
      },
      {
        "name": "optimize_prompt_cache",
        "description": "Analiza la estructura de los system prompts y bloques de contexto repetidos para insertar breakpoints de Prompt Caching (cache_control: {type: ephemeral}) minimizando los tokens de entrada cobrados.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "system_prompt": {
              "type": "string",
              "description": "Texto del system prompt base a cachear"
            },
            "context_documents": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Documentos o fragmentos RAG a estructurar en bloques cacheados"
            }
          },
          "required": [
            "system_prompt"
          ]
        }
      },
      {
        "name": "evaluate_deterministic_quality",
        "description": "Ejecuta una batería de evaluación determinista sobre outputs generados contra esquemas JSON Schema rígidos utilizando Claude Haiku como evaluador de alta velocidad.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "output_json": {
              "type": "string",
              "description": "Cadena JSON producida por el modelo para validar"
            },
            "expected_schema": {
              "type": "object",
              "description": "Definición JSON Schema esperada"
            }
          },
          "required": [
            "output_json",
            "expected_schema"
          ]
        }
      },
      {
        "name": "get_pipeline_metrics",
        "description": "Obtiene analíticas en tiempo real de latencia TTFT (Time to First Token), tasa de acierto de caché (cache_read_input_tokens) y ahorro económico consolidado en USD.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "pipeline_id": {
              "type": "string",
              "description": "ID del pipeline para consultar métricas"
            },
            "timeframe": {
              "type": "string",
              "enum": [
                "24h",
                "7d",
                "30d"
              ],
              "default": "24h"
            }
          },
          "required": [
            "pipeline_id"
          ]
        }
      }
    ],
    "resources": [
      {
        "uri": "promptflowkit://pipeline/{id}/graph",
        "name": "Pipeline DAG",
        "mimeType": "application/json",
        "description": "Deterministic stage graph of a prompt pipeline including cached and uncached blocks."
      },
      {
        "uri": "promptflowkit://metrics/usage",
        "name": "Usage & Latency Stream",
        "mimeType": "application/json",
        "description": "Live token, cache-hit ratio and P95 latency telemetry for the authenticated tenant."
      }
    ],
    "prompts": [
      {
        "name": "optimize_prompt_for_claude",
        "description": "Optimises a prompt set for Anthropic Prompt Caching and returns cache_control breakpoints.",
        "arguments": [
          {
            "name": "system_prompt",
            "description": "Base system prompt to cache.",
            "required": true
          }
        ]
      }
    ]
  }
}
