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ón | Ideal para | Dónde se ejecuta | Configuración |
|---|---|---|---|
| Extensión de Chrome | Revisar prompts en ChatGPT, Claude, Gemini, Grok, Perplexity y DeepSeek | En tu navegador | Compilar desde el repositorio y cargarla descomprimida (aún no está en Chrome Web Store) |
| Extensión de VS Code | Código → prompt, y una protección de privacidad antes del chat de IA | En VS Code | Instalar la extensión |
| Servidor MCP | Que el modo agente de Copilot, Claude, Cursor, Windsurf, Gemini CLI o tu agente llamen al motor como herramientas | Proceso local, stdio | Compilar una vez y añadirlo a la configuración de tu cliente |
| API HTTP | Tu aplicación, script o backend | promptflowengine.com/api/v1 o tu propio Worker | Nada: envía JSON |
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:
corepack pnpm install --frozen-lockfile
corepack pnpm --filter @promptflow/engine build
corepack pnpm --filter @promptflow/mcp-server buildSustituye <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
{
"servers": {
"promptflow": {
"type": "stdio",
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CHECKOUT>/packages/mcp-server/dist/bin.js"
]
}
}
}{
"mcpServers": {
"promptflow": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CHECKOUT>/packages/mcp-server/dist/bin.js"
]
}
}
}claude mcp add promptflow -- node <ABSOLUTE_PATH_TO_CHECKOUT>/packages/mcp-server/dist/bin.js
claude mcp listLas 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
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.jsO 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)
| Herramienta | Obligatorios | Qué hace |
|---|---|---|
optimize_prompt | prompt | Optimize prompt |
optimize_prompt_pipeline | prompt | Optimize prompt (staged pipeline) |
compress_prompt | prompt | Compress prompt |
validate_prompt | prompt | Validate prompt |
estimate_tokens | prompt | Estimate tokens |
analyze_prompt | prompt | Analyze prompt |
extract_entities | prompt | Extract entities |
summarize_context | context | Summarize context |
score_prompt | prompt | Score prompt |
evaluate_prompt | prompt | Evaluate prompt |
compare_prompts | a, b | Compare prompts |
scan_prompt_security | prompt | Scan prompt security |
scan_sensitive_data | text | Scan sensitive data |
sanitize_prompt | text | Sanitize prompt |
restructure_prompt | prompt | Restructure prompt |
convert_structured_payload | json | Convert JSON to TOON |
simulate_cost | prompt | Simulate cost |
analyze_context_budget | sources | Analyze context budget |
run_prompt_tests | prompt, cases | Run prompt tests |
Argumentos, resultados y casos de error de cada herramienta: referencia de MCP. Ejemplo de petición en un chat con un agente:
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 denodeencommand. Invalid arguments: el mensaje nombra el campo. Entrada larga: definePROMPTFLOW_MCP_MAX_PROMPT_CHARSen elenvdel 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.
curl -s https://promptflowengine.com/api/v1/healthcurl -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}]}'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]}'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
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/healthSolució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,modelsyrulesson 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.