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.
| Option | Idéal pour | S’exécute | Mise en place |
|---|---|---|---|
| Extension Chrome | Vérifier les prompts sur ChatGPT, Claude, Gemini, Grok, Perplexity, DeepSeek | Dans votre navigateur | Compiler depuis le dépôt et la charger non empaquetée (pas encore sur le Chrome Web Store) |
| Extension VS Code | Du code au prompt, avec une garde de confidentialité avant le chat IA | Dans VS Code | Installer l’extension |
| Serveur MCP | Laisser le mode agent de Copilot, Claude, Cursor, Windsurf, Gemini CLI ou votre agent appeler le moteur comme des outils | Processus local, stdio | Compiler une fois, puis l’ajouter à la configuration de votre client |
| API HTTP | Votre application, script ou backend | promptflowengine.com/api/v1 ou votre propre Worker | Rien : envoyez du JSON |
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 :
corepack pnpm install --frozen-lockfile
corepack pnpm --filter @promptflow/engine build
corepack pnpm --filter @promptflow/mcp-server buildRemplacez <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
{
"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 listL’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
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.jsOu 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)
| Outil | Obligatoires | Ce qu’il fait |
|---|---|---|
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 |
Arguments, résultats et cas d’erreur de chaque outil : référence MCP. Exemple de demande dans un chat avec un agent :
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. nodeintrouvable : le client n’a pas Node.js dans son PATH. Mettez le chemin absolu denodedanscommand.Invalid arguments: le message nomme le champ. Entrée longue : définissezPROMPTFLOW_MCP_MAX_PROMPT_CHARSdans leenvdu 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.
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;
}Tous les endpoints, champs et codes de statut : référence de l’API HTTP.
L’exécuter 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/healthDépannage
- 400 : envoyez
content-type: application/json; le message nomme le champ. - 404 « Unknown API version » : utilisez le préfixe
/api/v1/. - 405 :
health,modelsetrulessont 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.