fix(mcp-py): NATS_URL 逗号多节点拆成列表(集群连接)
deploy-132 / deploy (push) Successful in 1m56s

Python nats.py 不像 Go 客户端会自动拆逗号串,把 nats://a:4222,nats://a:4223 整串当单
URL 解析端口 → ValueError: Port '4222,nats:' → invalid connect url,mcp-py 崩溃重启循环。
按逗号拆成 servers 列表传入即可。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-07-18 16:25:32 +08:00
parent 55b8a697aa
commit de315450a4
@@ -62,9 +62,12 @@ class McpGateway:
async def serve(self, url: str | None = None) -> None:
url = url or os.getenv("NATS_URL", "nats://localhost:4222")
# NATS_URL 可为逗号分隔的多节点(集群);Go 客户端能识别逗号串,Python nats.py 不会,
# 须拆成列表传给 servers,否则把整串当单 URL 解析端口时报 "invalid connect url"。
servers = [u.strip() for u in url.split(",") if u.strip()]
# 容忍服务先于 NATS 启动:无限重连 + 等待间隔。
self._nc = await nats.connect(
url,
servers,
allow_reconnect=True,
max_reconnect_attempts=-1,
reconnect_time_wait=1,