Integrações

Conectar o PromptFlowEngine

O mesmo motor roda em todas as integrações. Escolha conforme onde estão os seus prompts: em um navegador ou editor (as extensões), dentro de um assistente ou agente de IA (MCP) ou no seu próprio código (API HTTP). Nenhuma chama um modelo de linguagem, e nenhuma precisa de conta ou chave de API.

OpçãoIdeal paraOnde rodaConfiguração
Extensão do ChromeVerificar prompts no ChatGPT, Claude, Gemini, Grok, Perplexity e DeepSeekNo seu navegadorCompilar a partir do repositório e carregar sem compactação (ainda não está na Chrome Web Store)
Extensão do VS CodeDo código ao prompt, com proteção de privacidade antes do chat de IANo VS CodeInstalar a extensão
Servidor MCPDeixar o modo agente do Copilot, Claude, Cursor, Windsurf, Gemini CLI ou o seu agente chamar o motor como ferramentasProcesso local, stdioCompilar uma vez e adicionar à configuração do seu cliente
API HTTPSua aplicação, script ou backendpromptflowengine.com/api/v1 ou o seu próprio WorkerNada: envie JSON
As extensões são apps para pessoas. O MCP e a API HTTP expõem a programas a análise, a otimização, a reestruturação e a verificação de segurança do motor. Eles não conseguem ler o histórico de atividade de extensões, contas nem dados de organizações de ninguém.

Opção 1: servidor MCP

O PromptFlowEngine inclui um servidor MCP (v2.1.0); sua ferramenta de IA é o cliente. O transporte é somente stdio: o cliente inicia node packages/mcp-server/dist/bin.js na sua máquina. Não há endpoint MCP hospedado nem autenticação, porque só um processo que você inicia pode falar com ele.

Pré-requisitos

  • Node.js 22 ou posterior (Windows, macOS ou Linux) com Corepack.
  • Uma cópia do repositório do PromptFlowEngine (a publicação no npm está pendente). Compile-a uma vez:
compilar
corepack pnpm install --frozen-lockfile
corepack pnpm --filter @promptflow/engine build
corepack pnpm --filter @promptflow/mcp-server build

Substitua <ABSOLUTE_PATH_TO_CHECKOUT> abaixo pelo caminho da sua cópia. No Windows, use barras normais no JSON (C:/src/Prompt/…).

Configure seu cliente

VS Code / modo agente do Copilot: .vscode/mcp.json (a extensão do VS Code escreve isto para você)
{
  "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

Os locais dos arquivos seguem a documentação de cada cliente; se um cliente os mudar, a documentação dele prevalece. O servidor não precisa de segredos, então nunca adicione credenciais a esses arquivos.

Verificar

listar as ferramentas sem um 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

Ou rode o exemplo em TypeScript, que inicia o servidor, lista suas ferramentas e avalia e reestrutura um prompt: node --experimental-strip-types packages/mcp-server/examples/mcp-client.ts. No seu cliente, peça “List the promptflow tools”.

Ferramentas (19)

FerramentaObrigatóriosO que faz
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 e casos de erro de cada ferramenta: referência do MCP. Exemplo de pedido em um chat com um agente:

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

Solução de problemas

  • O servidor aparece como falho: o caminho está errado ou dist/ não foi compilado. Compile de novo e use o caminho absoluto.
  • node não encontrado: o cliente não tem o Node.js no PATH. Coloque o caminho absoluto de node em command.
  • Invalid arguments: a mensagem nomeia o campo. Entrada longa: defina PROMPTFLOW_MCP_MAX_PROMPT_CHARS no env do cliente.
  • Precisa de logs: defina PROMPTFLOW_MCP_LOG=debug; eles vão para o stderr e nunca contêm texto de prompt.

Opção 2: API HTTP

URL base https://promptflowengine.com/api/v1. JSON na entrada, JSON na saída, sem autenticação, nada armazenado, 60 requisições POST por minuto por IP. Não envie prompts com segredos a nenhum serviço remoto; oculte-os antes com POST /sanitize, a CLI ou as extensões.

verificar a conexão
curl -s https://promptflowengine.com/api/v1/health
analisar um 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}]}'
otimizar um 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, testado com a 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 os endpoints, campos e códigos de status: referência da API HTTP.

Rodar localmente

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

Solução de problemas

  • 400: envie content-type: application/json; a mensagem nomeia o campo.
  • 404 “Unknown API version”: use o prefixo /api/v1/.
  • 405: health, models e rules são GET; o resto é POST.
  • 413: o corpo passa de 256 KB ou um campo passa de 100.000 caracteres.
  • 429: aguarde o retry-after (60 segundos) ou rode o motor localmente com a CLI.