mcp 2.x · python sdk
AttributeError: 'Server' object has no attribute 'list_tools'
In mcp 2.0 the lowlevel Server class has no decorator methods. You give each handler to the constructor as an on_* argument. A package that was written for mcp 1.x and asks for mcp with no upper bound gets mcp 2.x from a plain install and stops at start-up.
The same cause gives: AttributeError: 'Server' object has no attribute 'call_tool', AttributeError: 'Server' object has no attribute 'list_prompts', AttributeError: 'Server' object has no attribute 'list_resources'.
You only want to start the server
Install the package with the Python SDK below 2. With uv:
uvx --with "mcp<2" <package>
With pip, in the environment of the server:
pip install "mcp<2"
In an MCP client config, put --with and mcp<2 in front of the package name in the args of uvx. The SDK keeps the 1.x line supplied with critical fixes.
You publish the server
You have two fixes. The fast one is an upper bound in the dependencies of the package, then a new release:
dependencies = ["mcp>=1.2,<2"]
The SDK's migration guide says the same: keep a <2 upper bound until you have moved your code. The full fix is the move to mcp 2.x. Before:
@server.list_tools()
async def handle_list_tools():
return [types.Tool(name="my_tool", description="A tool", inputSchema={})]After:
async def handle_list_tools(ctx: ServerRequestContext, params: PaginatedRequestParams | None) -> ListToolsResult:
return ListToolsResult(tools=[Tool(name="my_tool", description="A tool", input_schema={"type": "object"})])
server = Server("my-server", on_list_tools=handle_list_tools, on_call_tool=handle_call_tool)- Each decorator has an argument of the same name with on_ in front: list_tools is on_list_tools, call_tool is on_call_tool, list_resources is on_list_resources, read_resource is on_read_resource, list_prompts is on_list_prompts, get_prompt is on_get_prompt.
- A handler gets (ctx, params) and returns the full result type, for example ListToolsResult.
- The Server does not check the arguments of a tool call against the input schema any more. Do that in your handler.
- The guide has the imports and the call_tool handler that this example leaves out.
Source: the section of the migration guide of the MCP Python SDK. mcp 2.0.0 came to PyPI on 28 July 2026. The examples are the guide's own.
Servers with this error 2026-11-14
131 PyPI package servers in the official MCP registry stopped with this error in the newest daily probe. The probe installs each package in a container as a client does, with no version pins, and starts it.
- Syncline MCP Server (Python) syncline-mcp-server
- com.munimind/munimind-mcp munimind-mcp
- com.stackhawk/stackhawk stackhawk-mcp
- dev.fly.veles-finance-gateway/veles-finance-mcp veles-finance-mcp
- Cerebrus Pulse MCP cerebrus-pulse-mcp
- io.github.AgiMaulana/HuaweiAppGalleryMcp huawei-app-gallery-mcp
- AI Firewall MCP ai-firewall-mcp
- io.github.Ansvar-Systems/security-controls security-controls-mcp
- Strava Training MCP strava-training-mcp
- Vivado MCP Native vivado-mcp-native
- LiteLLM Multi-Model API litellm-mcp
- NDI-MCP-Server ndi-mcp-server
- csoai_defoneos_mcp csoai_defoneos_mcp
- meek_3_and_sov3_connection_mcp meek_3_and_sov3_connection_mcp
- meek_3d_print_toolchain_mcp meek_3d_print_toolchain_mcp
- meek_4vf_data_transport_mcp meek_4vf_data_transport_mcp
- meek_antenna_triangle_mcp meek_antenna_triangle_mcp
- meek_brand_architecture_mcp meek_brand_architecture_mcp
- meek_capillary_actuator_mcp meek_capillary_actuator_mcp
- meek_cesium_overlay_mcp meek_cesium_overlay_mcp
- meek_cfd_thermal_mcp meek_cfd_thermal_mcp
- meek_circulatory_capillary_mcp meek_circulatory_capillary_mcp
- meek_consolidation_absorption_mcp meek_consolidation_absorption_mcp
- meek_daily_plan_mcp meek_daily_plan_mcp
- meek_defoneos_audit_logging_mcp meek_defoneos_audit_logging_mcp
- meek_defoneos_backup_restore_mcp meek_defoneos_backup_restore_mcp
- meek_defoneos_cdn_edge_mcp meek_defoneos_cdn_edge_mcp
- meok-ai-psych-vuln-audit-mcp meok-ai-psych-vuln-audit-mcp
- meok-annex-iii-impact-mcp meok-annex-iii-impact-mcp
- meok-compliance-passport-mcp meok-compliance-passport-mcp
- meok-eu-code-of-practice-mcp meok-eu-code-of-practice-mcp
- io.github.Edu963/ocultar-pii ocultar-claude-mcp
- ExposureGuard exposureguard-mcp
- io.github.Glade-tool/glade-mcp gladekit-mcp
- ProofFlow proofflow-mcp
- io.github.KmOnBeIbI31/verifactu-mcp verifactu-mcp
- cxg-census-mcp cxg-census-mcp
- Memphora memphora-mcp
- Kilonova MCP kilonova-mcp
- WhatsApp Chat Reader (Unofficial) wa-chat-reader
- N3MemoryCore Lite (Working Memory) n3memorycore-mcp-lite
- io.github.NyxToolsDev/calendly-mcp-server calendly-mcp
- DICOM/HL7/FHIR Interoperability MCP Server dicom-hl7-mcp
- io.github.OnticX/open-mcp-registry open-mcp-registry
- io.github.OnticX/search-mcp-registry search-mcp-registry
- io.github.PCfVW/mcp-arangodb-async mcp-arangodb-async
- io.github.Soil911/atlaspi atlaspi-mcp
- Boltwork boltwork-mcp
- io.github.Wchampe/ac-jobs ac-jobs-mcp
- io.github.amarodeabreu/rug-munch-mcp rug-munch-mcp
- io.github.andylbrummer/math-mcp scicomp-math-mcp
- io.github.andylbrummer/molecular-mcp scicomp-molecular-mcp
- io.github.andylbrummer/neural-mcp scicomp-neural-mcp
- io.github.andylbrummer/quantum-mcp scicomp-quantum-mcp
- io.github.annibale-x/mcp-memento mcp-memento
- Project Management AI Analysis pm-mcp-servers
- Project Management Data Tools pm-mcp-servers
- Project Management Validation pm-mcp-servers
- io.github.ascript-cn/ascript-mcp ascript-mcp
- Zoho Crm zoho-crm-mcp-server
- Generate Tech Stack generate-tech-stack-mcp
- Workflow Generator workflow-generator-mcp
- io.github.base76-research-lab/cognos-session-memory cognos-session-memory-mcp
- io.github.base76-research-lab/conductor-graph-mcp conductor-graph-mcp
- Email2Chat email2chat-mcp
- Cartograph cartograph-mcp
- io.github.bharath-krishna/mcp-test mcp-echo-server
- Bookmark Lens bookmark-lens
- eBay Browse ebay-mcp
- Multi-Account Gmail multi-account-gmail-mcp
- io.github.daedalus/mcp-metar mcp-metar
- io.github.daedalus/mcp-rfc-editor mcp-rfc-editor
- Dee — Free Music for AI Agents dee-mcp
- MCPAmpel - MCP Security Scanner mcpampel
- io.github.divitkashyap/auto-skill-loader auto-skill-loader
- io.github.drfccv/mcp-server-12306 mcp-server-12306
- io.github.eghuzefa/engineer-your-data engineer-your-data
- Liquid liquid-mcp
- Kongen Labs — Pattern Intelligence kongenlabs-mcp
- io.github.guidance-ai/guidance-lark-mcp guidance-lark-mcp
- PostgreSQL performance Tuner MCP Server pgtuner-mcp
- io.github.jgalea/telegram-mcp telegram-mcp-jgalea
- io.github.johnmci/ClaudeSmalltalk claude-smalltalk
- io.github.joshmsimpson/exiftool exiftool-mcp
- io.github.liveplex-cpu/fiber fiber-mcp
- io.github.lucavisconti211-debug/heu-mcp heu-mcp
- io.github.marcelinero/auditoria-skills auditoria-skills-mcp
- io.github.mechreaper007x/clipacanvas clipacanvas-mcp
- io.github.myaitoken/myai-mcp myai-mcp
- io.github.nathishdev-netizen/dida-mcp-server dida-mcp-server
- Netallion MCP Lite netallion-mcp-lite
- io.github.nk3750/jitapi jitapi
- Local FAISS MCP Server local-faiss-mcp
- NVEIL nveil
- io.github.pcmedsinge/mcp-clinical-reasoner mcp-clinical-reasoner
- io.github.pcmedsinge/mcp-terminology mcp-terminology
- MemoraEU memoraeu-mcp
- MemoraEU memoraeu-mcp
- SAGE — Solver-Augmented Grounding Engine sage-solver-mcp
- CogSession cogsession
- io.github.prufa-dev/prufa-mcp prufa-mcp
- io.github.ramalamadingdong/first-agentic-csa first-agentic-csa
- Memory OS AI memory-os-ai
- io.github.shubhamekapure/social-search-mcp social-search-mcp
- io.github.spark1security/n0s1-mcp n0s1-mcp
- Federal Regulations regulations-mcp
- io.github.stevenvo/slack-mcp-server slack-mcp-server-v2
- io.github.strangeadvancedmarketing/adam-framework adam-mcp
- Word Document Operations word-mcp-server-swadegeiger1
- io.github.synpulse8-opensource/pulse8-ai-cortex-knowledge-vault pulse8-ai-cortex-knowledge-vault
- io.github.temurkhan13/bash-vet-mcp bash-vet-mcp
- io.github.temurkhan13/openclaw-cost-tracker-mcp openclaw-cost-tracker-mcp
- io.github.temurkhan13/openclaw-health-mcp openclaw-health-mcp
- io.github.temurkhan13/openclaw-output-vetter-mcp openclaw-output-vetter-mcp
- io.github.temurkhan13/openclaw-skill-vetter-mcp openclaw-skill-vetter-mcp
- io.github.temurkhan13/openclaw-upgrade-orchestrator-mcp openclaw-upgrade-orchestrator-mcp
- io.github.temurkhan13/silentwatch-mcp silentwatch-mcp
- Satring MCP satring-mcp
- io.github.trickyfalcon/mcp-defender mcp-defender
- io.github.trickyfalcon/mcp-msdefenderkql mcp-msdefenderkql
- io.github.truecallerabreham/mcp-server-digitalocean mcp-server-digitalocean
- io.github.twzrd-sol/twzrd-mcp twzrd-mcp
- io.github.whale-professor/mcp-server-3daistudio mcp-server-3daistudio
- io.github.wmarceau/apollo apollo-mcp
- io.github.wmarceau/instagram-creator instagram-creator-mcp
- io.github.wmarceau/upwork upwork-mcp
- MindCore Memory MCP mindcore-memory
- io.github.xt765/mcp-document-converter mcp-document-converter
- GWAS Bioinformatics MCP Server gwas-mcp
- org.lightpaper/lightpaper-mcp lightpaper-mcp
- Engageable Analytics engageable
Is your server in the list after a fix? Its page updates with the next weekly check of the package. How the probe works.
Other errors of mcp 2.x
- ModuleNotFoundError: No module named 'mcp.server.fastmcp'
- ImportError: cannot import name 'FastMCP' from 'mcp.server'
- ImportError: cannot import name 'streamablehttp_client' from 'mcp.client.streamable_http'
- ImportError: cannot import name 'McpError' from 'mcp.shared.exceptions'
All of them, with counts. The full list of changes is in the migration guide.