Windows 本地配置记录:把 Affinity by Canva 的 MCP 连接到 Codex 📅 2026/7/9 2:16:57 Windows 本地配置记录把 Affinity by Canva 的 MCP 连接到 Codex说明本文是一篇本地环境配置记录用于复盘 Affinity by Canva、Claude Desktop Connector 和 Codex 之间的 MCP 连接方式。内容不涉及商业推广也不提供破解、绕过授权或修改官方程序的做法。1. 为什么要这样配置Affinity by Canva 已经提供了本地 MCP 能力。官方说明中提到Affinity 可以通过 Model Context Protocol 让 AI 助手与桌面应用通信从而自动处理文档中的重复操作例如整理图层、批量处理图片、生成可复用脚本等。官方默认给出的使用路径是Claude Desktop - Affinity Connector - Affinity 本地 MCP server - 当前打开的 Affinity 文档这次配置的目标不是修改 Affinity也不是修改 Claude Desktop而是确认Codex 能否复用 Claude Desktop 安装的 Affinity Connector实测结论是可以。Claude Desktop 安装的 Affinity Connector 本质上是一个 Node.js stdio MCP bridge它再转接到 Affinity 本地的 SSE endpoint。2. 本地环境本文记录的环境如下系统Windows Affinity by Canva3.2.x Claude Desktop已安装 Affinity Connector Codex本地开发环境 Node.js可用Affinity 侧需要先开启 MCPEdit - Settings - Model Context Protocol - Enable Affinity MCP开启后需要退出并重新打开 Affinity。3. 找到 Claude Desktop 安装的 Affinity Connector在 Windows 上Claude Desktop 的 connector 文件位于用户目录下。实测 Affinity Connector 路径类似C:\Users\你的用户名\AppData\Roaming\Claude\Claude Extensions\ant.dir.gh.canva.affinity这个目录中重点看 4 个文件manifest.json package.json README.md server/index.js其中manifest.json会声明 MCP server 的启动方式。4. 真实的 MCP 配置长什么样在本机安装目录中manifest.json里可以看到类似配置{ server: { type: node, entry_point: server/index.js, mcp_config: { command: node, args: [${__dirname}/server/index.js], env: { SSE_URL: http://localhost:6767/sse } } } }这说明它的链路是MCP client - node server/index.js - http://localhost:6767/sse - Affinity desktop app注意网上可能会有人猜测类似下面这种配置{ mcpServers: { affinity-connector: { command: npx, args: [affinity/mcp-server] } } }这个包名需要实际验证。本文测试时affinity/mcp-server在 npm registry 中返回404 Not Found不能直接照抄。5. 先验证 Affinity MCP 是否开启可以先在 PowerShell 中查看 Affinity 是否启动Get-Process Affinity -ErrorAction SilentlyContinue再查看本地监听端口netstat -ano | Select-String -Pattern 6767|Affinity|LISTENING实际环境中Affinity 可能监听在 IPv6 localhost[::1]:6767因此配置里推荐使用http://localhost:6767/sse不要过早写死成http://127.0.0.1:6767/sse因为有些机器上 Affinity 只在::1上暴露服务。6. 给 Codex 添加 MCP 配置如果已经确认 Claude Desktop 的 Affinity Connector 安装成功可以在 Codex 的 MCP 配置中加入[mcp_servers.affinity] command node args [C:/Users/你的用户名/AppData/Roaming/Claude/Claude Extensions/ant.dir.gh.canva.affinity/server/index.js] startup_timeout_sec 30 [mcp_servers.affinity.env] SSE_URL http://localhost:6767/sse路径里的用户名需要替换成你自己的 Windows 用户名。配置完成后需要重启或刷新 Codex 工具环境。否则当前会话里不会自动出现 Affinity 工具。7. 可用工具连接成功后通常可以看到这些 MCP toolsexecute_script render_spread render_selection list_sdk_documentation read_sdk_documentation_topic search_sdk_hints list_library_scripts read_library_script save_script_to_library add_sdk_hint report_sdk_issue其中更适合先测试的只读工具是list_sdk_documentation read_sdk_documentation_topic list_library_scripts render_spread render_selection不建议一开始就调用execute_script因为它会在 Affinity 中执行 JavaScript可能修改当前文档。8. 第一次测试建议第一次测试可以按这个顺序1. 启动 Affinity 2. 确认 Affinity MCP 已开启 3. 启动 Codex 4. 确认 affinity 工具是否出现在工具列表中 5. 调用 list_sdk_documentation 6. 调用 read_sdk_documentation_topic读取 preamble 7. 再考虑是否执行脚本preamble很重要。它会说明 Affinity JS SDK 的基本约束例如执行脚本前要阅读 preamble 脚本执行结果需要 console.log 输出 文件系统能力可能受 Affinity 设置限制 完成且可复用的脚本可以保存到脚本库9. 常见问题9.1 为什么浏览器打开http://localhost:6767/sse看起来没有正常页面这是正常现象。这个地址不是普通网页而是给 MCP/SSE 客户端使用的 endpoint。直接用浏览器打开不一定能看到可读页面。9.2 为什么curl /mcp或curl /sse返回 404 或空响应Affinity 的本地 MCP 通信需要正确的 MCP/SSE 会话方式。普通 GET/POST 探测不能等同于 MCP client 连接测试。判断是否可用应以 MCP client 能否listTools、能否调用只读工具为准。9.3 能不能直接修改 Claude 的 Affinity Connector不建议。更稳妥的做法是复用它的启动方式或者单独写一个本地 bridge。直接修改已安装 connector 可能导致更新失败、签名状态变化或排查困难。9.4 没安装 Claude Desktop能不能配置可以考虑使用第三方 bridge例如 npm 上的affinity-mcp-bridge。但这属于另一条路线需要单独验证版本和源码。本文记录的是复用 Claude Desktop 已安装 Affinity Connector 的方式。10. 安全边界建议遵守下面几条只读工具先行 执行脚本前先读 SDK 文档 不在未保存文档上测试危险脚本 不修改 Claude Connector 安装文件 不读取或复制登录态、token、cookie 不绕过 Affinity 或 Canva 的授权机制MCP 能力很强尤其是execute_script和save_script_to_library适合在明确目标和可回滚的文档上使用。11. 小结这次配置的核心发现是Claude Desktop 安装的 Affinity Connector 本质上是一个 Node stdio MCP bridge 它连接到 Affinity 本地的 http://localhost:6767/sse Codex 可以复用这个 bridge所以最终 Codex 配置并不复杂[mcp_servers.affinity] command node args [C:/Users/你的用户名/AppData/Roaming/Claude/Claude Extensions/ant.dir.gh.canva.affinity/server/index.js] startup_timeout_sec 30 [mcp_servers.affinity.env] SSE_URL http://localhost:6767/sse完成配置并刷新 Codex 后就可以把 Affinity 当作一个本地可自动化的设计应用来使用。参考链接Affinity 官方帮助AI Automation with Claudehttps://www.affinity.studio/help/ai-connector-setup/Model Context Protocol 官方网站What is the Model Context Protocol (MCP)? - Model Context Protocolnpmaffinity-mcp-bridgehttps://www.npmjs.com/package/affinity-mcp-bridge