prompt-optimizer MCP 集成指南:3 步部署并接入 Claude Desktop
2026/9/20 5:47:04 网站建设 项目流程

prompt-optimizer MCP 集成指南:3 步部署并接入 Claude Desktop

【免费下载链接】prompt-optimizerAn AI prompt optimizer for writing better prompts and getting better AI results.项目地址: https://gitcode.com/GitHub_Trending/pro/prompt-optimizer

你正在 Claude Desktop 里写提示词,"你是一个助手"这种一句话设定效果不佳,想请专业工具优化——但手边没有,只能切到浏览器,打开 prompt-optimizer 网页版,复制、粘贴、再复制回来。prompt-optimizer 把核心优化能力封装成了 MCP 服务器(MCP 协议,Model Context Protocol,可以理解为给 AI 助手装上"手",让它能实际调用你部署的工具),你读完本文可以:用 Docker 5 分钟部署 MCP 服务器,再花 3 步把 Claude Desktop 接入 MCP 服务器,之后优化提示词就只是在对话里说一句话的事。

🎬 为什么需要 MCP 集成

传统做法是"人肉搬运":复制提示词到优化工具、等结果、再复制回对话窗口。每优化一轮就要切一次应用,打断写作节奏,长提示词来回粘贴还容易漏内容。MCP 协议的价值在于省掉了这个搬运步骤:Claude 在对话中直接发起工具调用,优化结果直接回到上下文里,你可以立刻基于结果继续对话。

🧩 它到底怎么工作的

MCP 协议在这里是中间人:Claude Desktop 发出优化请求,MCP 服务器校验参数后交给 Core 优化服务处理,结果原路返回对话。

三条设计要点(详见 MCP 服务器模块说明):

  1. 零侵入:MCP 层只调用现有 Core 模块 API,不改动核心代码。
  2. 无状态:使用内存存储,每次请求独立处理,服务重启不依赖本地文件。
  3. 标准协议:走标准 MCP HTTP Streamable 传输,任何兼容 MCP 的客户端都能连,不限于 Claude Desktop。

🐳 从零到跑通:Docker 部署 MCP 插件

最快路径(预计耗时 ≤ 5 分钟)。一条命令同时起 Web 界面和 MCP 服务器,MCP 端点通过/mcp路径暴露在同一个端口上:

# 基础部署:Web 界面在 8081,MCP 端点为 http://localhost:8081/mcp docker run -d -p 8081:80 \ -e VITE_OPENAI_API_KEY=你的OpenAI密钥 \ -e MCP_DEFAULT_MODEL_PROVIDER=openai \ --name prompt-optimizer \ linshen/prompt-optimizer

国内拉取镜像慢时,换成阿里云镜像源:

docker run -d -p 8081:80 \ -e VITE_OPENAI_API_KEY=你的OpenAI密钥 \ --name prompt-optimizer \ registry.cn-guangzhou.aliyuncs.com/prompt-optimizer/prompt-optimizer

灵活路径:需要多模型或自定义参数时用 Docker Compose,下面只列关键项,可选配置按需取消注释:

services: prompt-optimizer: image: linshen/prompt-optimizer:latest container_name: prompt-optimizer restart: unless-stopped ports: - "8081:80" # Web 界面 + MCP 共用端口 environment: - VITE_OPENAI_API_KEY=你的OpenAI密钥 # 必填:至少一个 API 密钥 # - VITE_DEEPSEEK_API_KEY=你的DeepSeek密钥 # 按需取消注释:追加第二个模型 # - MCP_DEFAULT_MODEL_PROVIDER=deepseek # 按需取消注释:指定首选模型提供商 # - MCP_LOG_LEVEL=info # 按需取消注释:生产日志级别 - MCP_DEFAULT_LANGUAGE=zh

核心环境变量一览(完整说明见 MCP 服务器用户指南):

变量名必填默认值说明
VITE_OPENAI_API_KEY至少配置一个 API 密钥,服务器靠它调用 LLM
MCP_DEFAULT_MODEL_PROVIDERopenai配了多个密钥时指定首选提供商
MCP_LOG_LEVELdebug日志级别:debug/info/warn/error
MCP_DEFAULT_LANGUAGEzh优化结果的默认输出语言
VITE_DEEPSEEK_API_KEY可选追加的模型密钥
VITE_CUSTOM_API_BASE_URL自定义 API 端点,如本地 Ollama

🖥️ 接入 Claude Desktop 三步走

服务器跑起来后,装完之后的第一件事是把 Claude Desktop 接进来。

步骤 1:定位配置文件

先找到 Claude Desktop 的配置目录,三个平台位置如下:

操作系统配置目录
Windows%APPDATA%\Claude\services
macOS~/Library/Application Support/Claude/services
Linux~/.config/Claude/services

步骤 2:写入 JSON 配置

在配置目录中创建或编辑services.json,最小可用片段如下:

{ "services": [ { "name": "Prompt Optimizer", // 工具组显示名称,随意起 "url": "http://localhost:8081/mcp" // MCP 服务器地址,Docker 部署为 8081 } ] }

注意:如果你是开发者本地部署(pnpm mcp:dev,端口 3000),把 URL 改成http://localhost:3000/mcp

步骤 3:重启并验证

改完配置,完全退出并重启 Claude Desktop。建议先用浏览器打开http://localhost:8081/healthz确认服务器存活,然后在 Claude 对话里输入/tools,应该能看到 3 个工具:

  • optimize-user-prompt
  • optimize-system-prompt
  • iterate-prompt

看到这三个名字,接入就完成了。

🧪 拿真实任务试一把

三个工具对应三类任务,你只需在对话里描述需求,Claude 会自动选工具填参数。

场景 A:一段日常对话提示词——什么时候用到:随手提问太含糊,想让回答更靠谱。

optimize-user-prompt({ prompt: "帮我写篇文章", // 必填:待优化的原始提示词 // template: 可选,优化模板;省略时自动用内置默认模板 });
优化前优化后
"帮我写篇文章""请撰写一篇 1500 字左右的 AI 医疗应用技术文章,包含真实案例,分点组织结构,语言专业但通俗易懂"

场景 B:给 AI 定义一个专业角色——什么时候用到:要搭一个自定义助手或专家角色,需要规范的系统提示词。

optimize-system-prompt({ prompt: "你是一个医疗助手", // 必填:当前简陋的角色设定 // template: 可选,不同模板的优化侧重不同,见 /tools 里的参数说明 });
优化前优化后
"你是一个医疗助手""你是一位严谨的医疗信息助手:先澄清症状与病史,再给出参考建议;明确标注不能替代医生诊断,涉及急症时立即建议就医,并遵守隐私与安全边界"

场景 C:已有提示词想微调——什么时候用到:提示词已经能用,但输出有具体毛病,只改毛病、不动其余。

iterate-prompt({ prompt: "现有提示词全文", // 必填:正在使用的完整提示词 requirements: "输出格式不稳定,要求固定为 JSON", // 必填:具体的改进需求 // template: 可选,迭代策略模板 });
优化前优化后
"提取以下文本的实体和关系"保留了原有抽取逻辑,追加了"仅输出 JSON、字段为 entities/relations、无匹配时返回空数组"等格式约束

优化结果大致长这样(下图为项目中一个优化后的提示词展示):

🔧 配置调优:多模型、Ollama 与日志

多模型切换

docker run -d -p 8081:80 \ -e VITE_OPENAI_API_KEY=你的OpenAI密钥 \ -e VITE_DEEPSEEK_API_KEY=你的DeepSeek密钥 \ -e MCP_DEFAULT_MODEL_PROVIDER=deepseek \ --name prompt-optimizer \ linshen/prompt-optimizer

配了多个密钥时,用MCP_DEFAULT_MODEL_PROVIDER指定首选,提供商名称必须小写且与密钥类型一致(openai不是OpenAI)。匹配不到时会回退到第一个可用模型。

自定义 API 端点(以 Ollama 为例)

docker run -d -p 8081:80 \ -e VITE_CUSTOM_API_KEY=任意占位值 \ -e VITE_CUSTOM_API_BASE_URL=http://host.docker.internal:11434/v1 \ -e VITE_CUSTOM_API_MODEL=qwen2.5:7b \ -e MCP_DEFAULT_MODEL_PROVIDER=custom \ --name prompt-optimizer \ linshen/prompt-optimizer

Ollama 不校验密钥,VITE_CUSTOM_API_KEY填任意值即可;容器里访问宿主机服务要用host.docker.internal代替localhost。完整的变量格式参考 env.local.example 中VITE_CUSTOM_API_*一节的注释。

日志级别

docker run -d -p 8081:80 \ -e VITE_OPENAI_API_KEY=你的OpenAI密钥 \ -e MCP_LOG_LEVEL=info \ --name prompt-optimizer \ linshen/prompt-optimizer

MCP_LOG_LEVEL支持 debug/info/warn/error 四档,级别越高打印越少。生产环境建议开 info 级别,排查问题再临时切到 debug。

🐞 踩坑速查:MCP 工具调用失败排查

症状:启动报Error: listen EADDRINUSE: address already in use原因:端口被占用(本地开发模式默认 3000,容器映射端口冲突同理)。 修复:换个端口再起,例如MCP_HTTP_PORT=3001 pnpm mcp:dev,或docker run时改映射端口。

症状:启动即报No enabled models found原因:没有任何有效 API 密钥被传入容器,或变量名拼错。 修复:核对docker run-e参数,确认至少一个VITE_*_API_KEY存在且拼写正确。

症状:工具调用返回 "MCP default model is not configured"原因:MCP_DEFAULT_MODEL_PROVIDER与你实际配置的密钥类型对不上。 修复:把它改成与已配置密钥一致的提供商名,小写拼写。

症状:Claude Desktop 一直连不上原因:URL 端口写错(8081 与 3000 混用)、JSON 格式不合法,或防火墙拦截。 修复:先浏览器访问http://localhost:8081/healthz确认服务器存活,再检查services.json能否被正常解析。

如果以上都没解决,带着MCP_LOG_LEVEL=debug下的日志去项目 issue 区搜索或提问,日志里会标明失败发生在协议层还是模型调用层。

🗺️ 推荐工作流

一套"从草稿到定型"的 5 步循环:

  1. 初稿:把想法用最直白的话写出来,别纠结措辞。
  2. 优化:按提示词类型选对工具,让 Claude 在对话里跑一轮优化。
  3. 测试:拿优化后的提示词真实跑几个用例,看输出是否达标。
  4. 迭代:把具体毛病写成 requirements,用iterate-prompt定向修补,不动其余部分。
  5. 固化:效果满意后存进 prompt-optimizer 的模板库或 Claude 的记忆,下次直接复用。

选择逻辑一目了然:

模板参数不用背:/tools里每个工具的template字段描述里列了全部可选值,不确定就省略它,用内置默认模板。

📌 现在就能做三件事

读完本文,你已经具备这些能力:

  • ✅ 用一条 Docker 命令把 prompt-optimizer 的 MCP 服务器部署起来,Web 界面和/mcp端点同时可用
  • ✅ 完成 Claude Desktop 接入 MCP 服务器的三步配置,并确认 3 个工具注册成功
  • ✅ 区分三个工具各自的适用场景,知道什么时候该用iterate-prompt而不是整段重写
  • ✅ 遇到"工具调用失败排查"类问题时,能按症状定位到密钥、端口、提供商名三个最常见原因

行动清单:

  1. 部署:复制本文的docker run命令,填入你的密钥,跑起服务器。
  2. 接入:编辑services.json,重启 Claude Desktop,用/tools确认 3 个工具在列。
  3. 试用:挑一段你最近写过、效果不理想的提示词,在对话里让 Claude 优化一遍,感受"不切应用"的差别。

【免费下载链接】prompt-optimizerAn AI prompt optimizer for writing better prompts and getting better AI results.项目地址: https://gitcode.com/GitHub_Trending/pro/prompt-optimizer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询