From 77f3326868ee3b1cc842c05d52c9e7bab8bb302f Mon Sep 17 00:00:00 2001 From: Akira Date: Mon, 2 Mar 2026 02:06:51 +0900 Subject: [PATCH] =?UTF-8?q?windmill=5Fmcp.py:=20=E3=83=9B=E3=82=B9?= =?UTF-8?q?=E3=83=88=E8=A8=AD=E5=AE=9A=E3=82=92=E3=82=B3=E3=83=B3=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=83=A9=E3=82=AF=E3=82=BF=E3=81=A7=E6=B8=A1=E3=81=99?= =?UTF-8?q?=E3=82=88=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FastMCP("windmill") でデフォルト host=127.0.0.1 だと DNS rebinding 保護が 自動有効化されて外部ホスト名からのアクセスが "Invalid Host header" で拒否される - MCP_HOST/MCP_PORT 環境変数をコンストラクタ時点で渡すことで host=0.0.0.0 の場合は保護が無効になり Traefik 経由のアクセスが通る - ドメイン名を windmill_mcp → windmill-mcp に修正(DNS は hyphen のみ対応) Co-Authored-By: Claude Sonnet 4.6 --- mcp/windmill_mcp.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/mcp/windmill_mcp.py b/mcp/windmill_mcp.py index b9f4eed..f14189f 100644 --- a/mcp/windmill_mcp.py +++ b/mcp/windmill_mcp.py @@ -10,12 +10,14 @@ from mcp.server.fastmcp import FastMCP WINDMILL_URL = os.environ.get("WINDMILL_URL", "https://windmill.keinafarm.net") WINDMILL_TOKEN = os.environ.get("WINDMILL_TOKEN", "") WINDMILL_WORKSPACE = os.environ.get("WINDMILL_WORKSPACE", "admins") +MCP_HOST = os.environ.get("MCP_HOST", "127.0.0.1") +MCP_PORT = int(os.environ.get("MCP_PORT", "8001")) if not WINDMILL_TOKEN: print("Error: WINDMILL_TOKEN 環境変数が設定されていません", file=sys.stderr) sys.exit(1) -mcp = FastMCP("windmill") +mcp = FastMCP("windmill", host=MCP_HOST, port=MCP_PORT) def _headers() -> dict: @@ -338,9 +340,4 @@ def windmill_get_script(path: str) -> str: if __name__ == "__main__": transport = os.environ.get("MCP_TRANSPORT", "stdio") - if transport == "sse": - host = os.environ.get("MCP_HOST", "0.0.0.0") - port = int(os.environ.get("MCP_PORT", "8001")) - mcp.run(transport="sse", host=host, port=port) - else: - mcp.run(transport="stdio") + mcp.run(transport=transport)