連携

PromptFlowEngine を接続する

どの連携でも同じエンジンが動いています。プロンプトがある場所に合わせて選んでください。ブラウザやエディタ(拡張機能)、AI アシスタントやエージェントの中(MCP)、自分のコード(HTTP API)です。どれも言語モデルを呼び出さず、アカウントも API キーも必要ありません。

選択肢向いている用途動作場所セットアップ
Chrome 拡張機能ChatGPT、Claude、Gemini、Grok、Perplexity、DeepSeek でのプロンプトチェックブラウザ内リポジトリからビルドし、パッケージ化せずに読み込む(Chrome ウェブストアにはまだありません)
VS Code 拡張機能コードベースからプロンプトを作る、AI チャット前のプライバシーガードVS Code 内拡張機能をインストール
MCP サーバーCopilot のエージェントモード、Claude、Cursor、Windsurf、Gemini CLI、独自のエージェントからエンジンをツールとして呼び出すローカルプロセス、stdio一度ビルドして、クライアントの設定に追加
HTTP API自分のアプリケーション、スクリプト、バックエンドpromptflowengine.com/api/v1 または自分の Worker不要:JSON を送るだけ
拡張機能は人が使うアプリです。MCP と HTTP API は、エンジンの分析、最適化、再構成、セキュリティスキャンをプログラムに公開します。誰かの拡張機能のアクティビティ履歴、アカウント、組織のデータを読み取ることはできません。

選択肢 1:MCP サーバー

PromptFlowEngine は MCP のサーバー(v2.1.0)を提供します。AI ツールがクライアントです。トランスポートは 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/…)。

クライアントを設定する

VS Code / Copilot エージェントモード:.vscode/mcp.json(VS Code 拡張機能が自動で書き込みます)
{
  "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

ファイルの場所は各クライアントのドキュメントに従います。クライアントが場所を変更した場合は、そのドキュメントが優先されます。サーバーに秘密情報は不要なので、これらのファイルに認証情報を追加しないでください。

動作確認

クライアントなしでツールを一覧表示
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_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

各ツールの引数、結果、エラーケース: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 が見つからない:クライアントの PATH に Node.js がありません。command に node の絶対パスを指定してください。
  • Invalid arguments:メッセージにフィールド名が示されます。入力が長い場合は、クライアントの env に PROMPTFLOW_MCP_MAX_PROMPT_CHARS を設定します。
  • ログが必要:PROMPTFLOW_MCP_LOG=debug を設定します。ログは stderr に出力され、プロンプトのテキストは含まれません。

選択肢 2:HTTP API

ベース URL は https://promptflowengine.com/api/v1。入力も出力も JSON で、認証なし、何も保存せず、IP ごとに毎分 60 件の POST リクエストまで。秘密情報を含むプロンプトをリモートサービスに送らないでください。先に POST /sanitize、CLI、または拡張機能で伏せ字にしてください。

接続を確認
curl -s https://promptflowengine.com/api/v1/health
プロンプトを分析
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}]}'
プロンプトを最適化
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、実際の 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;
}

すべてのエンドポイント、フィールド、ステータスコード:HTTP API リファレンス。

ローカルで実行する

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

トラブルシューティング

  • 400:content-type: application/json を送ってください。メッセージにフィールド名が示されます。
  • 404「Unknown API version」:/api/v1/ プレフィックスを使ってください。
  • 405:health、models、rules は GET、それ以外は POST です。
  • 413:ボディが 256 KB を超えているか、フィールドが 100,000 文字を超えています。
  • 429:retry-after(60 秒)を待つか、CLI でエンジンをローカル実行してください。