1. 蓝湖 MCP 接入 Claude 与 Codex 时endpoint 到底该写在哪蓝湖 MCPlanhu-mcp是一个把蓝湖设计稿、PRD 页面、评论协作能力封装成 MCP 工具的开源服务Claude Code 和 Codex 都能通过它读取蓝湖链接、拉取页面列表、生成需求文档。它适合需要把设计协作流程接进 AI 编码助手的开发者尤其是同时用 Claude 和 Codex 两套工具、希望统一管理 MCP 通道的人。真正让人卡住的往往不是 lanhu-mcp 本身而是 endpoint 写在哪、Cookie 怎么传、Claude 和 Codex 的配置格式差异。我试过把 lanhu-mcp 的 endpoint 从本地http://localhost:8000/mcp改成 TaoToken 统一入口后Claude 和 Codex 的 MCP 调用链路都收敛到一处排查 401 和 local proxy failed 时也清晰很多。这篇按「先跑通本地 lanhu-mcp → 再把 MCP endpoint 指向 TaoToken → 验证连通性 → 按报错排查」的顺序写命令和配置片段都能直接复制。核心检索词是蓝湖 MCP、lanhu-mcp、Claude MCP 配置、Codex MCP 配置、TaoToken MCP endpoint。先说清楚一个概念MCPModel Context Protocol是 AI 客户端调用外部工具的协议lanhu-mcp 是一个 HTTP transport 的 MCP serverClaude 和 Codex 作为 MCP client 去连它。所谓「把 endpoint 改到 TaoToken」指的是让 MCP 请求经过 TaoToken 的统一入口而不是每个工具各配一套地址和 Key。这样多工具、多客户端的 MCP 通道就能集中管理。下面所有命令基于 macOS/LinuxWindows 用 WSL 或 Git Bash 等价替换。路径变量先设好后面反复用export PROJECT_DIR$HOME/path/to/your-project # 你的业务项目目录 export LANHU_MCP_DIR$HOME/lanhu-mcp-main # lanhu-mcp 本地目录蓝湖 Cookie 的获取方式登录蓝湖网页打开开发者工具进入 Network选任意 Fetch/XHR 请求在 Request Headers 里复制完整 Cookie。这个 Cookie 就是 lanhu-mcp 读取的LANHU_COOKIE文档里有时也叫 Token本文统一按 Cookie 字符串处理。2. TaoToken 前置准备拿 Key、认 endpoint、装 lanhu-mcp在改 endpoint 之前先把 TaoToken 侧的 Key 和地址准备好再把 lanhu-mcp 本地跑起来。顺序反了的话后面验证会分不清是本地服务问题还是通道问题。2.1 获取 TaoToken API Key打开 TaoToken 控制台进入 API Keys 页面创建一个 Key。这个 Key 后面会写进 Claude 和 Codex 的 MCP 配置里作为统一通道的鉴权凭证。创建后先复制保存页面刷新后不一定能再看到完整值。控制台入口https://taotoken.net/consoleAPI Keys 页面https://taotoken.net/api-keys接入文档https://taotoken.net/doc注意Key 只用于配置不要提交到 Git 仓库也不要写进会被分享的.env.example。2.2 认准两个地址TaoToken 有两个地址要区分开用途地址说明官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content注册、看文档、进控制台API Base URLhttps://taotoken.net/api写进配置的 Base URL不带 UTMMCP 相关的 endpoint 拼接时Base URL 用https://taotoken.net/api后面接具体路径。Claude 和 Codex 的配置里填的都是这个 Base URL 加 Key 加 Model ID 三件套。2.3 本地拉起 lanhu-mcp先做基础检查确认 git、Python、Node 都在python3 --version # 需要 3.10建议 3.11 npm -v git --version拉代码并装依赖[ -d $LANHU_MCP_DIR ] || git clone https://github.com/dsphper/lanhu-mcp.git $LANHU_MCP_DIR cd $LANHU_MCP_DIR cp -f .env.example .env export LANHU_TOKEN这里替换成你的蓝湖Cookie if grep -q ^LANHU_COOKIE .env; then sed -i s|^LANHU_COOKIE.*|LANHU_COOKIE\${LANHU_TOKEN}\| .env else printf \nLANHU_COOKIE%s\n ${LANHU_TOKEN} .env fi python3 -m venv venv source venv/bin/activate python -m pip install -U pip setuptools pip install -r requirements.txt python -m playwright install chromium启动服务时固定在业务目录避免data/messages写入权限问题cd $PROJECT_DIR mkdir -p data/messages export LANHU_COOKIE$(awk -F /^LANHU_COOKIE/{print $2} $LANHU_MCP_DIR/.env) export SERVER_PORT8000 $LANHU_MCP_DIR/venv/bin/python $LANHU_MCP_DIR/lanhu_mcp_server.py启动成功日志里会出现Uvicorn running on http://0.0.0.0:8000看到这行说明本地 lanhu-mcp 已经就绪接下来才是把 MCP endpoint 改到 TaoToken。3. 可复制配置Claude 与 Codex 的 MCP endpoint 改到 TaoToken这一节是全文核心给出 Claude 和 Codex 两套可复制的配置片段。Claude Code 用claude mcp add命令写配置Codex 用codex mcp add或直接改auth.json/config.toml。三件套Base URL Key Model ID在每个片段里都要齐全。3.1 Claude Code 的 MCP 配置Claude Code 的 MCP 配置存在~/.claude.json或项目级.mcp.json。用命令添加最省事claude mcp remove lanhu /dev/null 21 || true claude mcp add --transport http lanhu http://localhost:8000/mcp?role测试nameLucas claude mcp list如果要把 MCP 通道统一走 TaoToken把 endpoint 换成 TaoToken 的 MCP 入口并在 header 里带上 Key。项目级.mcp.json片段如下{ mcpServers: { lanhu: { type: http, url: https://taotoken.net/api/mcp, headers: { Authorization: Bearer sk-你的TaoTokenKey } } } }注意url用的是https://taotoken.net/api加/mcp不带 UTM 参数。Authorization里的 Key 换成 2.1 步创建的值。Claude Code 读取项目级.mcp.json时会把这个 server 注册成lanhu。3.2 Codex 的 MCP 配置Codex 的 MCP 配置在~/.codex/config.toml鉴权信息在~/.codex/auth.json。先用命令添加codex mcp remove lanhu /dev/null 21 || true codex mcp add lanhu --url http://localhost:8000/mcp?role测试nameLucas codex mcp list改成 TaoToken 通道时config.toml片段[mcp_servers.lanhu] url https://taotoken.net/api/mcp bearer_token_env_var TAOTOKEN_API_KEYauth.json片段Codex 读取鉴权信息{ TAOTOKEN_API_KEY: sk-你的TaoTokenKey }三件套对照配置项值位置Base URLhttps://taotoken.net/apiconfig.toml 的 urlKeysk-你的TaoTokenKeyauth.json 或环境变量Model ID按 TaoToken 文档填config.toml 的 model 字段如果 Codex 报failed to persist config.toml说明当前执行环境不能写~/.codex/config.toml换到有写权限的终端再执行codex mcp add。3.3 本地 lanhu-mcp 与 TaoToken 通道的关系这里要理清lanhu-mcp 本身是本地 HTTP server监听 8000 端口TaoToken 是统一 MCP 入口。两种接法直连本地endpoint 写http://localhost:8000/mcp适合单机调试。走 TaoTokenendpoint 写https://taotoken.net/api/mcp适合多工具统一管理、需要集中鉴权和日志的场景。改到 TaoToken 后Claude 和 Codex 的 MCP 请求都经过同一入口401 和 local proxy failed 的排查点就集中到 Key 和网络两处不用每个客户端各查一遍。4. 验证请求确认 MCP 通道连通与工具可调用配置写完必须验证否则后面用蓝湖链接跑需求文档时出错分不清是配置还是 Cookie 问题。4.1 确认本地服务在监听lsof -iTCP:8000 -sTCP:LISTEN -n -P有输出说明 lanhu-mcp 在跑。没有的话回到 2.3 重启服务。4.2 确认 Claude 和 Codex 都注册了 lanhuclaude mcp list codex mcp list两个列表里都应出现lanhu。如果 Claude 列表里没有检查.mcp.json的 JSON 是否合法Codex 没有则检查config.toml的[mcp_servers.lanhu]段。4.3 用蓝湖链接跑一次需求文档Claude 侧/lanhu-requirements-doc https://lanhuapp.com/web/#/item/project/product?...versionId...docId...pageId...Codex 侧$lanhu-requirements-doc https://lanhuapp.com/web/#/item/project/product?...versionId...docId...pageId...输出文件命名需求文档-[项目名]-[页面名]-[YYYYMMDD].md。能生成文件说明 MCP 通道、Cookie、工具调用三者都通了。4.4 验证 TaoToken 通道的请求如果 endpoint 已改到 TaoToken用模型对话页面发一条测试请求确认 Key 有效模型对话入口https://taotoken.net/model-chat返回正常内容说明 Base URL 和 Key 没问题。这一步和 MCP 是两条链路但共用同一个 Key先确认 Key 有效能省很多排查时间。5. 常见报错排查401、local proxy failed、reading choices、OAuth这一节按真实报错对照处理每条都给出症状、原因、处理。5.1 401 Unauthorized症状MCP 调用返回 401或模型对话页面提示鉴权失败。原因Key 没填、填错、或 header 格式不对。Claude 的.mcp.json里Authorization必须是Bearer sk-xxx少Bearer前缀会 401。Codex 的auth.json里 Key 名要和config.toml的bearer_token_env_var一致。处理重新从 API Keys 页面复制 Key确认没有多余空格检查Authorization前缀确认auth.json的键名和config.toml引用一致。5.2 local proxy failed症状Claude 或 Codex 报 local proxy failedMCP 工具调不通。原因本地 lanhu-mcp 没启动、端口不对、或 endpoint 指向的地址不可达。如果 endpoint 已改到 TaoToken检查网络能否访问https://taotoken.net/api。处理先lsof -iTCP:8000 -sTCP:LISTEN -n -P确认本地服务再确认 endpoint 拼写走 TaoToken 时确认 Base URL 是https://taotoken.net/api而不是带 UTM 的官网地址。5.3 reading choices 报错症状解析响应时报 reading choices 相关错误。原因返回体结构和客户端预期不一致常见于 endpoint 指错、返回了 HTML 错误页而非 JSON。处理确认 endpoint 路径正确/api/mcp用 curl 直接请求看返回体curl -s -H Authorization: Bearer sk-你的TaoTokenKey https://taotoken.net/api/mcp返回 JSON 说明通道正常返回 HTML 说明地址错了。5.4 OAuth 相关报错症状提示 OAuth 流程失败或 token 过期。原因客户端走了 OAuth 而非 API Key 鉴权或 Key 失效。处理确认配置里用的是Authorization: Bearer而非 OAuth 流程重新生成 KeyCodex 侧确认auth.json里没有残留的旧 token。5.5 其他实战报错对照症状常见原因处理failed to persist config.toml当前环境不能写~/.codex/config.toml换有写权限的终端执行codex mcp addlanhu_get_pages 调不通 / user cancelled MCP tool callcodex exec内层沙箱影响 MCP 调用链路排障阶段用codex exec --dangerously-bypass-approvals-and-sandbox ...验证PermissionError: data/messages/...jsondata/messages不可写常见于历史 sudo在$PROJECT_DIR启动并mkdir -p data/messages避免继续 sudobind 0.0.0.0:8000 operation not permitted端口监听权限受限用允许监听端口的执行权限启动Python 3.10版本不满足依赖升级到 3.11 并重建 venvResolutionImpossible旧环境依赖冲突删除 venv 后重建并重装依赖Playwright EACCES浏览器依赖安装权限不足优先修复目录权限并重建sudo quickstart 仅临时兜底排查顺序建议先确认本地 lanhu-mcp 在跑再确认 Claude/Codex 注册了 lanhu再确认 endpoint 和 Key最后才查蓝湖 Cookie。这样能快速定位是通道问题还是数据问题。6. 把 MCP 通道统一到 TaoToken 后的长期用法本地调试跑通后长期用建议把 Claude 和 Codex 的 MCP endpoint 都指向 TaoToken好处是 Key 集中管理、多工具共用一套鉴权、日志和用量在一处看。Coding Plan 适合长期编码和 Agent 场景模型对话适合临时验证模型连通性API Keys 和接入文档适合排障时对照。长期编码 / Agenthttps://taotoken.net/coding-plan模型对话验证https://taotoken.net/model-chatAPI Keyshttps://taotoken.net/api-keys接入文档https://taotoken.net/doc蓝湖 MCP 支持的工具覆盖项目协作、设计获取、AI 分析、资源获取、评论协作、团队管理几类常用的有lanhu_resolve_invite_link解析邀请链接加入项目、lanhu_get_pages获取页面列表、lanhu_get_designs获取设计稿列表、lanhu_get_design_slices获取切图、lanhu_say发送评论等。这些工具通过 MCP 通道暴露给 Claude 和 Codexendpoint 改到 TaoToken 后调用方式不变只是鉴权和入口统一了。验收清单服务日志出现Uvicorn running on http://0.0.0.0:8000claude mcp list可见 lanhucodex mcp list可见 lanhu能用蓝湖链接成功执行一次lanhu-requirements-doc最后提醒一个容易忽略的点data/messages目录权限问题在多人协作机器上很常见一旦历史上用 sudo 启动过普通用户就写不进去。固定$PROJECT_DIR启动、启动前mkdir -p data/messages能避免大部分 PermissionError。Cookie 过期后重新从蓝湖网页复制更新.env里的LANHU_COOKIE再重启服务即可不用重装依赖。