Prompt Lab

Bucles de optimización de prompts y suites de pruebas de regresión para Claude Code, con una interfaz web complementaria.

Documentación

Servidor MCP de Prompt Lab

Bucles de optimización de prompts y suites de pruebas de regresión para Claude Code, con una interfaz web complementaria.

El agente se ejecuta dentro de tu sesión de Claude Code y gestiona todo el trabajo de LLM: puntuar respuestas, proponer prompts mejorados y aplicar sugerencias. El servidor mantiene el estado del espacio de trabajo y mantiene sincronizados al agente y la interfaz de Prompt Lab.


Inicio rápido

Copia mcp-connect.json de este repositorio a tu proyecto como .mcp.json:

{
  "mcpServers": {
    "prompt-lab": {
      "type": "http",
      "url": "https://prompt-lab-mcp.up.railway.app/mcp"
    }
  }
}

Claude Code se conecta automáticamente en el próximo inicio. Verifícalo con /mcp.


Ejemplo de sesión

# 1. Open a workspace — agent shares the UI URL
start_web_app()
→ "Open https://prompt-lab-mcp.vercel.app?s=abc123 to follow along."

# 2. Register an API key
register_api_key(workspaceId, "sk-ant-...")

# 3. Set a system prompt and a test case
set_system_prompt(workspaceId, "You are a concise customer support agent...")
add_test_cases(workspaceId, [{
  query: "How do I reset my password?",
  targetAnswer: "Click 'Forgot password' on the login page and follow the email link."
}])

# 4. Run the optimization loop
loop_optimization(workspaceId, threshold=85)
→ Iteration 1 — score 58: response too long, no mention of email link
→ Iteration 2 — score 74: better, but missing the exact step
→ Iteration 3 — score 91: SUCCESS — prompt updated to require step-by-step answers

La interfaz muestra la puntuación de cada iteración, el razonamiento del agente y el prompt de sistema revisado en tiempo real.


Cómo funciona

Prompt Lab UI (github.com/jurek-f/prompt-lab)
  ↕  HTTP
Prompt Lab MCP Server (Railway)
  ↕  MCP
Claude Code (your machine)

Claves de API

Las claves de API nunca se almacenan en la configuración del servidor MCP. En su lugar, pásalas a Claude Code como variables de entorno: el agente las lee y las registra con el servidor al inicio de cada sesión usando register_api_key.

Configura las claves de los proveedores que quieras usar. El agente detecta automáticamente el proveedor a partir del prefijo de la clave al llamar a register_api_key.

Si ya están en el entorno de tu sistema, Claude Code las hereda automáticamente: no hay nada más que hacer. De lo contrario, agrégalas a ~/.claude/env o a tu perfil de shell:

ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=AIza...
OPENAI_API_KEY=sk-...

Herramientas MCP

Configuración

HerramientaDescripción
start_web_app(workspaceId?)Crea un espacio de trabajo y devuelve la URL de la interfaz de Prompt Lab.
register_api_key(workspaceId, apiKey, provider?)Registra una clave de API para ejecuciones de prueba. El proveedor se detecta automáticamente a partir del prefijo de la clave.
list_models(workspaceId)Lista los modelos disponibles según las claves registradas.
set_test_model(workspaceId, model)Configura el modelo para las ejecuciones de prueba. Se sincroniza con el selector de modelos de la interfaz.
delete_session(workspaceId)Elimina un espacio de trabajo y todo su estado. Irreversible.

Plantillas

Las plantillas son globales y aparecen en los menús desplegables de la interfaz en cuanto se publican.

HerramientaDescripción
save_template(name, testCases)Guarda una plantilla de suite de pruebas. Aparece en el menú desplegable "Cargar suite de pruebas…" de la interfaz.
save_system_prompt_template(name, content)Guarda una plantilla de prompt de sistema. Aparece en el menú desplegable "Cargar plantilla…" de la interfaz.

Estado del espacio de trabajo

HerramientaDescripción
get_workspace_state(workspaceId)Lee el espacio de trabajo completo: prompt de sistema, casos de prueba, resultados, sugerencias y modelo.
set_system_prompt(workspaceId, systemPrompt)Configura el prompt de sistema sin incrementar el contador de iteraciones.
add_test_cases(workspaceId, testCases, replace?)Agrega casos de prueba. replace=true sobrescribe todos los existentes.
post_test_result(workspaceId, testCaseId, response, score, reasoning, model)Almacena un resultado de prueba puntuado.
post_prompt_suggestion(workspaceId, prompt, reasoning, expectedGain?)Pone en cola un prompt revisado para su revisión en la interfaz.
apply_suggestion(workspaceId, suggestionId)Aplica una sugerencia pendiente e incrementa el contador de iteraciones.
get_regression_status(workspaceId, threshold?)Resumen de aprobados/reprobados en todos los casos de prueba para el prompt de sistema actual.

Optimización

Requiere un espacio de trabajo con al menos un caso de prueba.

HerramientaDescripción
start_optimization_session(workspaceId, threshold?, maxIterations?)Una sola pasada: puntúa los casos de prueba, publica una sugerencia y luego espera la revisión del usuario en la interfaz.
loop_optimization(workspaceId, threshold?, maxIterations?)Bucle automatizado: itera hasta que todas las puntuaciones alcancen el umbral o se llegue al máximo de iteraciones.

Regresión

HerramientaDescripción
run_regression_testsuite(workspaceId, threshold?)Una sola pasada: puntúa todos los casos de prueba, sin cambios en el prompt.
loop_regression(workspaceId, threshold?)Bucle automatizado: se repite hasta que cada puntuación individual alcance el umbral. Un promedio alto que enmascara un caso fallido no se considera aprobado.

Archivo

HerramientaDescripción
pull_ui_history(workspaceId)Obtiene todos los resúmenes de sesión y ejecuciones de regresión publicados por la interfaz.

Autoalojamiento

Despliega en Railway y configura estas variables de entorno:

VariableDescripción
UPSTASH_REDIS_REST_URLURL de Upstash Redis para persistencia
UPSTASH_REDIS_REST_TOKENToken de Upstash Redis
PROMPT_LAB_UI_URLURL de tu implementación de la interfaz de Prompt Lab
npm install
npm run dev    # starts on :3000

Endpoint MCP: http://localhost:3000/mcp


Licencia

MIT — consulta LICENCIA.

© 2026 Jurek Föllmer