集成

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