連携
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 を送るだけ |
選択肢 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/…)。
クライアントを設定する
{
"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が見つからない:クライアントの 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/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 KB を超えているか、フィールドが 100,000 文字を超えています。
- 429:
retry-after(60 秒)を待つか、CLI でエンジンをローカル実行してください。