Интеграции
Подключение PromptFlowEngine
Во всех интеграциях работает один и тот же движок. Выбирайте по тому, где находятся ваши промпты: в браузере или редакторе (расширения), внутри ИИ-ассистента или агента (MCP) либо в вашем собственном коде (HTTP API). Ни одна из них не вызывает языковую модель, и ни одной не нужны учётная запись или ключ API.
| Вариант | Лучше всего для | Где работает | Настройка |
|---|---|---|---|
| Расширение для Chrome | Проверки промптов в ChatGPT, Claude, Gemini, Grok, Perplexity, DeepSeek | В вашем браузере | Собрать из репозитория и загрузить распакованным (в Chrome Web Store пока нет) |
| Расширение для VS Code | Кодовая база → промпт и защита приватности перед ИИ-чатом | В VS Code | Установите расширение |
| Сервер MCP | Чтобы режим агента Copilot, Claude, Cursor, Windsurf, Gemini CLI или ваш агент вызывали движок как инструменты | Локальный процесс, stdio | Соберите один раз и добавьте в конфигурацию клиента |
| HTTP API | Ваше приложение, скрипт или бэкенд | promptflowengine.com/api/v1 или ваш собственный Worker | Ничего не нужно: отправляйте JSON |
Вариант 1: сервер MCP
PromptFlowEngine поставляет сервер MCP (v2.1.0); ваш ИИ-инструмент — клиент. Транспорт — только stdio: клиент запускает на вашей машине node packages/mcp-server/dist/bin.js. Размещённого эндпоинта MCP и аутентификации нет, потому что с ним может общаться только запущенный вами процесс.
Требования
- Node.js 22 или новее (Windows, macOS или Linux) с Corepack.
- Клон репозитория PromptFlowEngine (публикация в npm ещё впереди). Соберите его один раз:
corepack pnpm install --frozen-lockfile
corepack pnpm --filter @promptflow/engine build
corepack pnpm --filter @promptflow/mcp-server buildЗамените <ABSOLUTE_PATH_TO_CHECKOUT> ниже путём к вашему клону. В Windows используйте в JSON прямые косые черты (C:/src/Prompt/…).
Настройте клиент
{
"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 listРасположение файлов определяется документацией каждого клиента; если клиент его меняет, приоритет у его документации. Серверу не нужны секреты, поэтому никогда не добавляйте в эти файлы учётные данные.
Проверка
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Или запустите пример на TypeScript: он запускает сервер, выводит список его инструментов, оценивает и реструктурирует промпт: node --experimental-strip-types packages/mcp-server/examples/mcp-client.ts. В своём клиенте попросите «List the promptflow tools».
Инструменты (19)
| Инструмент | Обязательно | Что делает |
|---|---|---|
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 |
Аргументы, результаты и ошибки каждого инструмента: справочник MCP. Пример запроса в чате с агентом:
Use promptflow to restructure this, then scan it for secrets:
"fix login issue and make google login work and don't break anything"Устранение неполадок
- Сервер отображается как сбойный: путь неверен или
dist/не собран. Пересоберите и используйте абсолютный путь. nodeне найден: у клиента нет Node.js в PATH. Укажите вcommandабсолютный путь кnode.Invalid arguments: сообщение называет поле. Длинный ввод: задайтеPROMPTFLOW_MCP_MAX_PROMPT_CHARSвenvклиента.- Нужны журналы: задайте
PROMPTFLOW_MCP_LOG=debug; они идут в stderr и никогда не содержат текста промптов.
Вариант 2: HTTP API
Базовый URL https://promptflowengine.com/api/v1. JSON на входе, JSON на выходе, без аутентификации, ничего не хранится, 60 POST-запросов в минуту с одного IP. Не отправляйте промпты с секретами ни на какой удалённый сервис; сначала замаскируйте их через POST /sanitize, CLI или расширения.
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;
}Каждый эндпоинт, поле и код статуса: справочник HTTP API.
Запуск локально
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Устранение неполадок
- 400: отправьте
content-type: application/json; сообщение называет поле. - 404 «Unknown API version»: используйте префикс
/api/v1/. - 405:
health,modelsиrules— GET; остальные — POST. - 413: тело больше 256 КБ или поле длиннее 100 000 символов.
- 429: подождите
retry-after(60 секунд) или запустите движок локально через CLI.