Intégrations

Connecter PromptFlowEngine

Le même moteur tourne dans chaque intégration. Choisissez selon l’endroit où se trouvent vos prompts : dans un navigateur ou un éditeur (les extensions), dans un assistant ou un agent d’IA (MCP) ou dans votre propre code (API HTTP). Aucune n’appelle de modèle de langage, et aucune n’exige de compte ni de clé API.

OptionIdéal pourS’exécuteMise en place
Extension ChromeVérifier les prompts sur ChatGPT, Claude, Gemini, Grok, Perplexity, DeepSeekDans votre navigateurCompiler depuis le dépôt et la charger non empaquetée (pas encore sur le Chrome Web Store)
Extension VS CodeDu code au prompt, avec une garde de confidentialité avant le chat IADans VS CodeInstaller l’extension
Serveur MCPLaisser le mode agent de Copilot, Claude, Cursor, Windsurf, Gemini CLI ou votre agent appeler le moteur comme des outilsProcessus local, stdioCompiler une fois, puis l’ajouter à la configuration de votre client
API HTTPVotre application, script ou backendpromptflowengine.com/api/v1 ou votre propre WorkerRien : envoyez du JSON
Les extensions sont des applications pour des personnes. MCP et l’API HTTP exposent aux programmes l’analyse, l’optimisation, la restructuration et le scan de sécurité du moteur. Ils ne peuvent lire ni l’historique d’activité d’une extension, ni un compte, ni les données d’une organisation.

Option 1 : serveur MCP

PromptFlowEngine fournit un serveur MCP (v2.1.0) ; votre outil d’IA est le client. Le transport est stdio uniquement : le client lance node packages/mcp-server/dist/bin.js sur votre machine. Il n’y a ni point d’accès MCP hébergé ni authentification, car seul un processus que vous lancez peut lui parler.

Prérequis

  • Node.js 22 ou plus récent (Windows, macOS ou Linux) avec Corepack.
  • Une copie du dépôt PromptFlowEngine (la publication sur npm est en attente). Compilez-la une fois :
compilation
corepack pnpm install --frozen-lockfile
corepack pnpm --filter @promptflow/engine build
corepack pnpm --filter @promptflow/mcp-server build

Remplacez <ABSOLUTE_PATH_TO_CHECKOUT> ci-dessous par le chemin de votre copie. Sous Windows, utilisez des barres obliques dans le JSON (C:/src/Prompt/…).

Configurer votre client

VS Code / mode agent de Copilot : .vscode/mcp.json (l’extension VS Code l’écrit pour vous)
{
  "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

L’emplacement des fichiers suit la documentation de chaque client ; si un client les déplace, sa documentation prime. Le serveur n’a besoin d’aucun secret : n’ajoutez donc jamais d’identifiants à ces fichiers.

Vérifier

lister les outils sans client
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

Ou exécutez l’exemple TypeScript, qui démarre le serveur, liste ses outils, puis évalue et restructure un prompt : node --experimental-strip-types packages/mcp-server/examples/mcp-client.ts. Dans votre client, demandez « List the promptflow tools ».

Outils (19)

OutilObligatoiresCe qu’il fait
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

Arguments, résultats et cas d’erreur de chaque outil : référence MCP. Exemple de demande dans un chat avec un agent :

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

Dépannage

  • Le serveur apparaît en échec : le chemin est erroné ou dist/ n’est pas compilé. Recompilez et utilisez le chemin absolu.
  • node introuvable : le client n’a pas Node.js dans son PATH. Mettez le chemin absolu de node dans command.
  • Invalid arguments : le message nomme le champ. Entrée longue : définissez PROMPTFLOW_MCP_MAX_PROMPT_CHARS dans le env du client.
  • Besoin de journaux : définissez PROMPTFLOW_MCP_LOG=debug ; ils vont sur stderr et ne contiennent jamais le texte des prompts.

Option 2 : API HTTP

URL de base https://promptflowengine.com/api/v1. JSON en entrée, JSON en sortie, sans authentification, rien n’est stocké, 60 requêtes POST par minute et par IP. N’envoyez pas de prompts contenant des secrets à un service distant ; masquez-les d’abord avec POST /sanitize, la CLI ou les extensions.

vérifier la connexion
curl -s https://promptflowengine.com/api/v1/health
analyser 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}]}'
optimiser 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, testé contre la vraie API)
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;
}

Tous les endpoints, champs et codes de statut : référence de l’API HTTP.

L’exécuter 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

Dépannage

  • 400 : envoyez content-type: application/json ; le message nomme le champ.
  • 404 « Unknown API version » : utilisez le préfixe /api/v1/.
  • 405 : health, models et rules sont en GET ; les autres en POST.
  • 413 : le corps dépasse 256 Ko ou un champ dépasse 100 000 caractères.
  • 429 : attendez le retry-after (60 secondes) ou exécutez le moteur en local avec la CLI.