集成
连接 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,输出 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 在本地运行引擎。