Integraciones

Conectar PromptFlowEngine

El mismo motor funciona en todas las integraciones. Elige según dónde estén tus prompts: en un navegador o un editor (las extensiones), dentro de un asistente o agente de IA (MCP) o en tu propio código (API HTTP). Ninguna llama a un modelo de lenguaje y ninguna necesita cuenta ni clave API.

OpciónIdeal paraDónde se ejecutaConfiguración
Extensión de ChromeRevisar prompts en ChatGPT, Claude, Gemini, Grok, Perplexity y DeepSeekEn tu navegadorCompilar desde el repositorio y cargarla descomprimida (aún no está en Chrome Web Store)
Extensión de VS CodeCódigo → prompt, y una protección de privacidad antes del chat de IAEn VS CodeInstalar la extensión
Servidor MCPQue el modo agente de Copilot, Claude, Cursor, Windsurf, Gemini CLI o tu agente llamen al motor como herramientasProceso local, stdioCompilar una vez y añadirlo a la configuración de tu cliente
API HTTPTu aplicación, script o backendpromptflowengine.com/api/v1 o tu propio WorkerNada: envía JSON
Las extensiones son aplicaciones para personas. MCP y la API HTTP exponen a los programas el análisis, la optimización, la reestructuración y el escaneo de seguridad del motor. No pueden leer el historial de actividad de las extensiones, la cuenta ni los datos de la organización de nadie.

Opción 1: servidor MCP

PromptFlowEngine incluye un servidor MCP (v2.1.0); tu herramienta de IA es el cliente. El transporte es solo stdio: el cliente inicia node packages/mcp-server/dist/bin.js en tu equipo. No hay endpoint MCP alojado ni autenticación, porque solo un proceso que tú inicias puede hablar con él.

Requisitos previos

  • Node.js 22 o posterior (Windows, macOS o Linux) con Corepack.
  • Una copia del repositorio de PromptFlowEngine (la publicación en npm está pendiente). Compílalo una vez:
compilar
corepack pnpm install --frozen-lockfile
corepack pnpm --filter @promptflow/engine build
corepack pnpm --filter @promptflow/mcp-server build

Sustituye <ABSOLUTE_PATH_TO_CHECKOUT> más abajo por la ruta de tu copia. En Windows, usa barras normales en JSON (C:/src/Prompt/…).

Configura tu cliente

VS Code / modo agente de Copilot: .vscode/mcp.json (la extensión de VS Code lo escribe por ti)
{
  "servers": {
    "promptflow": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CHECKOUT>/packages/mcp-server/dist/bin.js"
      ]
    }
  }
}
Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json), Windsurf (~/.codeium/windsurf/mcp_config.json), Gemini CLI (~/.gemini/settings.json)
{
  "mcpServers": {
    "promptflow": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CHECKOUT>/packages/mcp-server/dist/bin.js"
      ]
    }
  }
}
Claude Code
claude mcp add promptflow -- node <ABSOLUTE_PATH_TO_CHECKOUT>/packages/mcp-server/dist/bin.js
claude mcp list

Las ubicaciones de los archivos siguen la documentación de cada cliente; si un cliente las cambia, manda su documentación. El servidor no necesita secretos, así que nunca añadas credenciales a estos archivos.

Verificar

listar las herramientas sin cliente
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"check","version":"1"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
  | node packages/mcp-server/dist/bin.js

O ejecuta el ejemplo en TypeScript, que inicia el servidor, lista sus herramientas y evalúa y reestructura un prompt: node --experimental-strip-types packages/mcp-server/examples/mcp-client.ts. En tu cliente, pide «List the promptflow tools».

Herramientas (19)

HerramientaObligatoriosQué hace
optimize_promptpromptOptimize prompt
optimize_prompt_pipelinepromptOptimize prompt (staged pipeline)
compress_promptpromptCompress prompt
validate_promptpromptValidate prompt
estimate_tokenspromptEstimate tokens
analyze_promptpromptAnalyze prompt
extract_entitiespromptExtract entities
summarize_contextcontextSummarize context
score_promptpromptScore prompt
evaluate_promptpromptEvaluate prompt
compare_promptsa, bCompare prompts
scan_prompt_securitypromptScan prompt security
scan_sensitive_datatextScan sensitive data
sanitize_prompttextSanitize prompt
restructure_promptpromptRestructure prompt
convert_structured_payloadjsonConvert JSON to TOON
simulate_costpromptSimulate cost
analyze_context_budgetsourcesAnalyze context budget
run_prompt_testsprompt, casesRun prompt tests

Argumentos, resultados y casos de error de cada herramienta: referencia de MCP. Ejemplo de petición en un chat con un agente:

tú
Use promptflow to restructure this, then scan it for secrets:
"fix login issue and make google login work and don't break anything"

Solución de problemas

  • El servidor aparece como fallido: la ruta es incorrecta o dist/ no está compilado. Vuelve a compilar y usa la ruta absoluta.
  • No se encuentra node: el cliente no tiene Node.js en su PATH. Pon la ruta absoluta de node en command.
  • Invalid arguments: el mensaje nombra el campo. Entrada larga: define PROMPTFLOW_MCP_MAX_PROMPT_CHARS en el env del cliente.
  • Necesitas registros: define PROMPTFLOW_MCP_LOG=debug; van a stderr y nunca contienen el texto del prompt.

Opción 2: API HTTP

URL base https://promptflowengine.com/api/v1. Entra JSON, sale JSON, sin autenticación, sin almacenar nada, 60 solicitudes POST por minuto por IP. No envíes prompts con secretos a ningún servicio remoto; ocúltalos antes con POST /sanitize, la CLI o las extensiones.

comprobar la conexión
curl -s https://promptflowengine.com/api/v1/health
analizar un prompt
curl -s https://promptflowengine.com/api/v1/analyze \
  -H 'content-type: application/json' \
  -d '{"prompt":"Write something about our product and stuff. Keep it short but also be detailed."}' \
  | jq '{quality: .quality.overall, findings: [.findings[] | {severity, message}]}'
optimizar un prompt
curl -s https://promptflowengine.com/api/v1/optimize \
  -H 'content-type: application/json' \
  -d '{"prompt":"Please summarize the notes. Please summarize the notes.","mode":"balanced"}' \
  | jq '{text: .selected.text, tokenDelta, changes: [.changes[].title]}'
TypeScript (apps/web/examples/api-client.ts, probado con la API real)
import { createClient, PromptFlowApiError } from './api-client';

const api = createClient({ baseUrl: process.env.PROMPTFLOW_API ?? 'https://promptflowengine.com' });
try {
  const analysis = await api.analyze(userPrompt);
  const critical = analysis.findings.filter((f) => f.severity === 'critical');
  const { selected, tokenDelta } = await api.optimize(userPrompt, 'balanced');
  console.log(critical.length, selected.text, tokenDelta);
} catch (err) {
  // Typed errors carry status, type, message, and the request id for support.
  if (err instanceof PromptFlowApiError) console.error(err.status, err.type, err.message, err.requestId);
  else throw err;
}

Todos los endpoints, campos y códigos de estado: referencia de la API HTTP.

Ejecutarla en local

shell
corepack pnpm --filter @promptflow/web build
cd apps/web && corepack pnpm exec wrangler dev --local --env="" --port 8787
curl -s http://localhost:8787/api/v1/health

Solución de problemas

  • 400: envía content-type: application/json; el mensaje nombra el campo.
  • 404 «Unknown API version»: usa el prefijo /api/v1/.
  • 405: health, models y rules son GET; el resto son POST.
  • 413: el cuerpo supera 256 KB o un campo supera 100.000 caracteres.
  • 429: espera el retry-after (60 segundos) o ejecuta el motor en local con la CLI.