Python MCP server error: 'Server' object has no attribute 'list_tools' / 'list_resources'
7 of the PyPI MCP servers we tested crashed on startup after a fresh install. The errors point to the API change in version 2.x of the mcp Python SDK.
Last tested 2026-10-22
How we test: methodology. Not tested by us: security, output quality, and behaviour with real credentials.
Affected servers and verbatim errors
| Package | Version | Error (verbatim) | Tested |
|---|---|---|---|
Postgres MCP Pro (Crystal DBA)postgres-mcp | 0.3.0 | AttributeError: 'Server' object has no attribute 'list_resources' | 2026-10-22 |
Fetch (Python alt)mcp-server-fetch-python | 0.1.1 | AttributeError: 'Server' object has no attribute 'list_tools' | 2026-10-22 |
Tree-sittermcp-server-tree-sitter | 0.7.0 | ModuleNotFoundError: No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was renamed to MCPServer (from mcp.server.mcpserver import MCPServer) and other APIs changed; see the migration guide at https://py.sdk.modelcontextprotocol.io/v2/migration/#fastmcp-renamed-to-mcpserver or pin 'mcp<2' to keep running v1 code. | 2026-10-22 |
SQLite (legacy reference, Python)mcp-server-sqlite | 2025.4.25 | AttributeError: 'Server' object has no attribute 'list_resources' | 2026-10-22 |
Playwright (Python)playwright-mcp-server | 0.1.0 | ModuleNotFoundError: No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was renamed to MCPServer (from mcp.server.mcpserver import MCPServer) and other APIs changed; see the migration guide at https://py.sdk.modelcontextprotocol.io/v2/migration/#fastmcp-renamed-to-mcpserver or pin 'mcp<2' to keep running v1 code. | 2026-10-22 |
Office Wordmcp-server-office | 0.2.0 | AttributeError: 'Server' object has no attribute 'list_tools' | 2026-10-22 |
Kubernetes (Python)mcp-server-kubernetes | 0.1.6 | ModuleNotFoundError: No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was renamed to MCPServer (from mcp.server.mcpserver import MCPServer) and other APIs changed; see the migration guide at https://py.sdk.modelcontextprotocol.io/v2/migration/#fastmcp-renamed-to-mcpserver or pin 'mcp<2' to keep running v1 code. | 2026-10-22 |
Possible fix untested
The mcp 2.x error text suggests pinning the SDK to v1. We have not verified this fix: we have not rerun these servers with the pin. If you try it, install the server with an upper bound, for example:
uv pip install <package> 'mcp<2'Or use a maintained alternative from our lists: Postgres MCP servers · best free MCP servers. Source: State of MCP, October 2026.
FAQ
Why does my Python MCP server fail with 'Server' object has no attribute 'list_tools' or 'list_resources'?
In our 2026-10-22 tests, 7 PyPI MCP servers crashed on startup on a fresh install: 4 with AttributeError: 'Server' object has no attribute ..., and 3 with No module named 'mcp.server.fastmcp'. The errors point to the API change in version 2.x of the mcp Python SDK; the packages do not pin an upper bound on mcp.
Does pinning mcp<2 fix it?
Untested by us. The mcp 2.x error message itself suggests pinning 'mcp<2' to keep running v1 code, but we have not rerun these servers with the pin, so we cannot confirm it works.
Which MCP servers are affected?
postgres-mcp 0.3.0; mcp-server-fetch-python 0.1.1; mcp-server-tree-sitter 0.7.0; mcp-server-sqlite 2025.4.25; playwright-mcp-server 0.1.0; mcp-server-office 0.2.0; mcp-server-kubernetes 0.1.6 (as tested on 2026-10-22).