疑难解答

解决常见的坑:连接、脚本、Web 界面认证。先从下面的快速检查开始。

先做快速检查
  • 已安装并打开 Photoshop——服务器可以启动它,但已打开的实例能排除一半的可能原因。
  • 你的 MCP 客户端配置指向了正确的服务器——与「快速上手」中的片段对照一下。
  • Web 界面标签页:用 CLI 打印的完整 URL 重新加载——跨服务器重启一直保持打开的标签页携带的是过期令牌。

常见问题

“找不到 Photoshop”

原因: Photoshop 不在默认安装位置,服务器找不到可执行文件。

修复:

  • 确保 Photoshop 安装在默认位置,或在客户端配置中用 PHOTOSHOP_PATH 指向自定义路径:
mcp config
{
  "env": {
    "PHOTOSHOP_PATH": "C:\\Custom\\Path\\Adobe Photoshop 2025\\Photoshop.exe"
  }
}

“无法连接到 Photoshop”

原因: Photoshop 未运行,或脚本功能被阻止。

修复:

  • 确保 Photoshop 正在运行——服务器会尝试启动它,但已运行的实例连接更快、更可靠。
  • 检查 Photoshop 首选项中是否启用了脚本功能。
  • 在 Windows 上,确认 COM 自动化未被安全设置阻止。

Web 界面:/api/* 返回 401 unauthorized

原因: 每个 /api/* 请求都必须携带界面服务器启动时生成的会话令牌。浏览器会自动获取;旧标签页和外部脚本则不会。

修复:

  • 在浏览器中:用 photoshop-mcp-ui 打印的 URL 重新加载页面。
  • 在脚本中:从 ~/.photoshop-mcp/ui-session.json 读取令牌,并作为请求头发送:
terminal
TOKEN=$(node -p "require('$HOME/.photoshop-mcp/ui-session.json').token")
curl -H "x-psmcp-token: $TOKEN" http://127.0.0.1:5174/api/status

Authorization: Bearer <token> 同样有效。启动服务器前设置 PSMCP_UI_TOKEN 可以固定一个已知令牌。

Web 界面:403 invalid_host 或 invalid_origin

原因: 令牌检查之前有两道防护:invalid_host 表示 Host 头未解析为服务器端口上的回环地址(可阻止 DNS 重绑定);invalid_origin 表示请求来自与界面自身不同的源。

修复:

  • 通过 CLI 打印的完整 URL(http://127.0.0.1:<port>)打开界面——不要用仅仅指向你机器的主机名,也不要从其他端口提供的页面访问。

photoshop_execute_script 返回“Result: undefined”

原因: ExtendScript 在服务器端的 IIFE 包装器中运行。没有显式 return 时,代码块的求值结果为 undefined——但副作用(重命名图层、修改属性)可能已经生效。

修复:

  • 在脚本中添加显式 return:
photoshop_execute_script
photoshop_execute_script({
  code: `
    app.activeDocument.activeLayer.name = "Updated";
    return { ok: true };
  `
})

详情见「可用工具」中的 photoshop_execute_script 一节。

“脚本执行超时”

原因: 默认超时为 30 秒,大文档可能让操作超过这个时限。

修复:

  • 把复杂操作拆成更小的步骤,按顺序执行。

Web 界面:CLI 账号认证

在 Web 界面中使用 Claude Code / Gemini CLI 账号模式时的症状。

症状可能的原因修复
cli_not_found未安装 Claude Code / Gemini CLInpm i -g @anthropic-ai/claude-code 或 npm i -g @google/gemini-cli
not_authenticated没有 CLI OAuth 会话(API 密钥 / SDK 认证不算)在终端中运行 claude auth login 或 gemini auth login,或切换到 API 密钥认证
SDK 客户端正常,界面 CLI 模式失败SDK/API 凭据与 CLI OAuth 相互独立在 Web 界面中使用 API 密钥,或用 claude auth login 登录以使用 CLI 模式
claude / gemini 不在 PATH 上自定义安装位置Settings → CLI path → Check connection
IDE 中聊天正常但界面不行(CLI 模式)OAuth 令牌仅限 CLI 使用在界面中使用 CLI 账号;API 密钥与 CLI 会话相互独立
Gemini 多轮对话感觉健忘无头 CLI 每轮可能开启新会话已知限制;历史记录会前置到提示词中(MVP)

调试日志

在客户端配置中设置 LOG_LEVEL=0 以启用详细日志:

mcp config
{
  "env": {
    "LOG_LEVEL": "0"
  }
}

还是卡住了?

搜索现有 issue 或新开一个——附上调试日志捕获的日志会很有帮助。