1. 蓝湖 MCP 接入 Claude 与 Codex 时,endpoint 到底该写在哪
蓝湖 MCP(lanhu-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。
先说清楚一个概念:MCP(Model Context Protocol)是 AI 客户端调用外部工具的协议,lanhu-mcp 是一个 HTTP transport 的 MCP server,Claude 和 Codex 作为 MCP client 去连它。所谓「把 endpoint 改到 TaoToken」,指的是让 MCP 请求经过 TaoToken 的统一入口,而不是每个工具各配一套地址和 Key。这样多工具、多客户端的 MCP 通道就能集中管理。
下面所有命令基于 macOS/Linux,Windows 用 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/console
- API Keys 页面:https://taotoken.net/api-keys
- 接入文档:https://taotoken.net/doc
注意:Key 只用于配置,不要提交到 Git 仓库,也不要写进会被分享的.env.example。
2.2 认准两个地址
TaoToken 有两个地址要区分开:
| 用途 | 地址 | 说明 |
|---|---|---|
| 官网 | https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= | 注册、看文档、进控制台 |
| API Base URL | https://taotoken.net/api | 写进配置的 Base URL,不带 UTM |
MCP 相关的 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_PORT=8000 "$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 2>&1 || true claude mcp add --transport http lanhu "http://localhost:8000/mcp?role=测试&name=Lucas" 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 2>&1 || true codex mcp add lanhu --url "http://localhost:8000/mcp?role=测试&name=Lucas" codex mcp list改成 TaoToken 通道时,config.toml片段:
[mcp_servers.lanhu] url = "https://taotoken.net/api/mcp" bearer_token_env_var = "TAOTOKEN_API_KEY"auth.json片段(Codex 读取鉴权信息):
{ "TAOTOKEN_API_KEY": "sk-你的TaoTokenKey" }三件套对照:
| 配置项 | 值 | 位置 |
|---|---|---|
| Base URL | https://taotoken.net/api | config.toml 的 url |
| Key | sk-你的TaoTokenKey | auth.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,适合单机调试。 - 走 TaoToken:endpoint 写
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 都注册了 lanhu
claude 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 failed,MCP 工具调不通。
原因:本地 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 流程;重新生成 Key;Codex 侧确认auth.json里没有残留的旧 token。
5.5 其他实战报错对照
| 症状 | 常见原因 | 处理 |
|---|---|---|
| failed to persist config.toml | 当前环境不能写~/.codex/config.toml | 换有写权限的终端执行codex mcp add |
| lanhu_get_pages 调不通 / user cancelled MCP tool call | codex exec内层沙箱影响 MCP 调用链路 | 排障阶段用codex exec --dangerously-bypass-approvals-and-sandbox ...验证 |
| PermissionError: data/messages/...json | data/messages不可写(常见于历史 sudo) | 在$PROJECT_DIR启动并mkdir -p data/messages,避免继续 sudo |
| bind 0.0.0.0:8000 operation not permitted | 端口监听权限受限 | 用允许监听端口的执行权限启动 |
| Python < 3.10 | 版本不满足依赖 | 升级到 3.11 并重建 venv |
| ResolutionImpossible | 旧环境依赖冲突 | 删除 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 和接入文档适合排障时对照。
- 长期编码 / Agent:https://taotoken.net/coding-plan
- 模型对话验证:https://taotoken.net/model-chat
- API Keys:https://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 和 Codex,endpoint 改到 TaoToken 后调用方式不变,只是鉴权和入口统一了。
验收清单:
- 服务日志出现
Uvicorn running on http://0.0.0.0:8000 claude mcp list可见 lanhucodex mcp list可见 lanhu- 能用蓝湖链接成功执行一次
lanhu-requirements-doc
最后提醒一个容易忽略的点:data/messages目录权限问题在多人协作机器上很常见,一旦历史上用 sudo 启动过,普通用户就写不进去。固定$PROJECT_DIR启动、启动前mkdir -p data/messages,能避免大部分 PermissionError。Cookie 过期后重新从蓝湖网页复制,更新.env里的LANHU_COOKIE再重启服务即可,不用重装依赖。