[BUG] Server.__init__ 与 mcp>=1.12 不兼容

作者: jagerzhang创建于 2026年7月29日更新于 2026年9月8日
标签bug

包: fastapi-mcp 版本 0.4.0 依赖: mcp>=1.12.0 严重程度: 严重 - 阻止应用程序启动 描述 fastapi-mcp 0.4.0 将 description 作为第二个位置参数调用 Server.__init__: Python # fastapi_mcp/server.py, 行 144 mcp_server: Server = Server(self.name, self.description) 然而,在 mcp>=1.12.0 中,Server.__init__ 签名发生了变化: # mcp 1.12.0+ (mcp/server/lowlevel/server.py) class Server: def __init__(self, name: str, version: str | None = None, # <-- 在旧版本中为"description" instructions: str | None = None, lifespan: ... = ..., ) 第二个位置参数现在是 version,而不是 description。由于 fastapi-mcp 传递 self.description(一个人类可读的字符串)作为第二个位置参数,它映射到 version,而 instructions 从未设置。 更糟糕的是,fastapi-mcp 在其需求中指定了 mcp>=1.12.0,这意味着这种不兼容性在任何支持的版本中都是不可避免的。 重现 Python -c "from fastapi import FastAPI from fastapi_mcp import FastApiMCP app = FastAPI() mcp = FastApiMCP(app) # TypeError: Server.__init__() takes 2 positional arguments but 3 were given " 栈跟踪 File "fastapi_mcp/server.py", 行 144, 在 setup_server 中 TypeError: Server.__init__() takes 2 positional arguments but 3 were given

内容来源: tadata-org/fastapi_mcp