克劳德代理
使用Mac订阅以无头模式运行Claude Code的本地代理服务器。Railway上的人工智能轮询器通过Cloudflare隧道调用此代理。
建筑
Railway ai-poller
↓ POST /run (HTTPS)
claude-proxy.shravan-box-builder.net
↓ Cloudflare Tunnel
Your Mac (localhost:8400)
↓ proxy.py (FastAPI)
claude -p (Claude Code CLI, headless mode)
↓ MCP servers (launched automatically per run)
├── workplanner_server.py → Railway backend API
└── algo_server.py → Railway backend API (state transitions)组件
| 组件 | 功能 | 运行位置 |
|---|---|---|
proxy.py | FastAPI服务器,接受 /run 请求、生成 claude -p | 您的Mac,端口8400 |
workplanner_server.py | 用于任务/评论工具的MCP服务器 | 您的Mac(由 claude -p) |
algo_server.py | 用于状态转换工具的MCP服务器 | 您的Mac(由 claude -p) |
api_client.py | 铁路后端的HTTP客户端 | 由MCP服务器使用 |
| Cloudflare隧道 | 将互联网流量路由到本地主机 | 您的Mac(cloudflared) |
MCP服务器 未手动启动 --代理根据请求生成MCP配置文件 claude -p 将它们作为子流程自动启动。
先决条件
在您的Mac上安装这些:
# uv — Python package manager
brew install uv
# cloudflared — Cloudflare Tunnel connector
brew install cloudflared
# Claude Code CLI (should already be installed)
claude --version
# Verify Claude is authenticated
claude auth status
# Should show: loggedIn: true, subscriptionType: max首次设置
1.Cloudflare登录(一次性)
cloudflared tunnel login选择 shravan-box-builder.net 当浏览器提示时。
2.隧道配置
隧道 ai 已创建:
- 隧道ID:
ea2c0844-e1eb-446d-b2ba-c51d6687e853 - 路线:
claude-proxy.shravan-box-builder.net→localhost:8400 - 仪表盘: https://dash.cloudflare.com/tunnels/ea2c0844-e1eb-446d-b2ba-c51d6687e853
3.铁路环境变量(已设置)
CLAUDE_PROXY_URL=https://claude-proxy.shravan-box-builder.net
CLAUDE_PROXY_KEY=workplanner-proxy-2026开始一切
打开两个终端:
1号航站楼——Cloudflare隧道
cloudflared tunnel run ai继续运行。它将您的Mac连接到Cloudflare的网络。
终端2——代理服务器
cd ~/BoxBuilderProjects/WorkPlanner/claude-proxy
CLAUDE_PROXY_KEY=workplanner-proxy-2026 uv run proxy.py在第一次运行时, uv 将创建一个虚拟环境并自动安装依赖项。
验证一切正常
# 1. Check proxy is running locally
curl http://localhost:8400/health
# 2. Check tunnel is routing
curl https://claude-proxy.shravan-box-builder.net/health
# Both should return:
# {"status":"ok","auth":{"loggedIn":true,"subscriptionType":"max",...}}
# 3. Check Railway can reach the proxy (from poller logs)
railway logs --service ai-poller | grep "proxy"停止
在两个终端中都使用Ctrl+C。当ai轮询器无法到达代理时,它会记录错误,但会在下一个周期重试。没有数据丢失,任务保持当前状态。
故障排除
代理无法启动
# Check if port is already in use
lsof -i :8400
# Kill existing process
kill $(lsof -ti :8400)
# Restart
CLAUDE_PROXY_KEY=workplanner-proxy-2026 uv run proxy.py隧道未连接
# Check tunnel status
cloudflared tunnel info ai
# Re-login if cert expired
cloudflared tunnel loginClaude身份验证已过期
# Check auth
claude auth status
# Re-login
claude auth loginMCP服务器错误
MCP服务器由启动 claude -p 根据请求。检查代理日志是否有错误。服务器需要这些env变量(由代理自动设置):
WORKPLANNER_API_URL--铁路后端URLINTERNAL_API_KEY--后端身份验证密钥ALGO_TASK_ID--正在处理的任务(仅限算法服务器)ALGO_AI_STATUS--当前任务阶段(仅限算法服务器)ALGO_TOOLS--此阶段启用的工具(仅限算法服务器)
备注
- 你的Mac必须 清醒和在线 让代理人跑。
- 马克斯 3并发 代理运行(proxy.py中的信号量)。
- 用途 克劳德·十四行诗4.6 通过您的Max订阅-无需API费用。
- 代理密钥可防止通过隧道进行未经授权的访问。
- 每
claude -prun获得自己的MCP配置文件(自动清理)。
