Modul mcp.server.fastmcp se do SDK vrátil jen proto, aby spadl s odkazem na návod
Přejmenování třídy FastMCP na MCPServer nechalo ve druhé verzi knihovny mcp starý import padat na holé hlášce, ze které se nedalo poznat, že je nainstalovaná jiná hlavní verze. Vydání 2.1.1 z 25. srpna 2026 proto do balíčku vrátilo modul mcp.server.fastmcp, který nemá žádné API a při importu spadne s odkazem na návod k přechodu. O den později přišel týž modul i do už překonané řady 2.0.x.

Balíček mcp, oficiální knihovna protokolu Model Context Protocol pro Python, dostal ve verzi 2.1.1 jeden nový soubor. Nepřidává funkci ani neopravuje výpočet. Je to modul mcp.server.fastmcp – tedy import, který z knihovny před měsícem zmizel –, a jediné, co umí, je spadnout s lepší hláškou.
Do konce července instaloval příkaz pip install mcp řadu 1. Vydání 2.0.0 z 28. července 2026 to změnilo a spolu s tím přejmenovalo hlavní serverovou třídu: z FastMCP se stal MCPServer a celý strom modulů pod mcp.server.fastmcp se přestěhoval pod mcp.server.mcpserver. Kdo měl v kódu starý import, dostal od Pythonu jeho obvyklou větu: „No module named 'mcp.server.fastmcp'“. Z té se nedá poznat vůbec nic – ani to, že je balíček nainstalovaný, ani že jde o jinou hlavní verzi.
Šestnáct řádků, které nic nedělají
Právě to podle návrhu změny číslo 3388 vedlo k nápravě. Soubor mcp/server/fastmcp.py je krátký, nemá jedinou funkci a při načtení skončí výjimkou ModuleNotFoundError s tímto textem:
„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 (…) or pin 'mcp<2' to keep running v1 code.“
Přeloženo: tohle je verze 2, kde se FastMCP jmenuje MCPServer a změnila se i další rozhraní; podívej se do návodu k přechodu, nebo si zamkni mcp pod verzi 2, aby starý kód dál běžel. Volba výjimky není náhodná: zůstává to ModuleNotFoundError, takže kód, který kolem starého importu měl větev except ImportError, funguje dál stejně jako předtím.
Rozsah té změny se dá změřit na souborech ve vydaných kolech na PyPI. Poslední vydání staré řady, 1.29.1, veze pod cestou mcp/server/fastmcp devatenáct souborů. Kolo 2.0.0 nemá ani jeden. Kola 2.0.1 a 2.1.1 mají přesně jeden – ten, který spadne.
Osmdesát jedna hlášení předtím, jedenáct set potom
Kolik projektů na to narazilo, jde odečíst z veřejného vyhledávání GitHubu. Dotaz na doslovnou větu „No module named 'mcp.server.fastmcp'“ vrátil 28. srpna 2026 celkem 1 183 hlášení a návrhů změn. Před 28. červencem, tedy před vydáním 2.0.0, jich vzniklo 81; od toho dne do dne měření 1 102.
Je to vlastní měření přes rozhraní api.github.com/search/issues a má své meze: sčítá hlášení i návrhy změn dohromady, hledá shodu v názvu i v těle a vidí jen veřejné repozitáře. Skutečný počet zasažených projektů je tedy nejspíš jiný. Poměr mezi obdobími ale mění řád, ne desetiny.
Testy projdou, instalace ne
Proč se to nechytlo dřív, popisuje pěkně hlášení u serveru agy-mcp z 27. srpna. Projekt si v pyproject.toml žádá mcp[cli]>=1.21.2 bez horní hranice, takže čerstvá instalace z PyPI stáhne 2.1.1 a server se nespustí. Jeho vlastní testy přitom procházejí: zámek závislostí uv.lock drží mcp na verzi 1.27.1 a oba běhy testů instalují právě z něj. Prostředí, které vadu odhalí, je to jediné, kam se údržbář běžně nedívá – čistý virtuální stroj s instalací podle zveřejněných metadat.
Stejného dne přibylo podobné hlášení u serveru open-notebook-mcp, včetně obchozí cesty, kterou si uživatel poradí sám: spustit nástroj s --with 'mcp<2'. Návrhy změn, které v posledních dnech chodí do desítek dalších repozitářů, dělají v podstatě totéž – buď dopisují horní mez závislosti, nebo přepisují import na nové jméno.
Oprava dorazila i do řady, kterou už nahradila jiná
Nový modul přišel 25. srpna ve verzi 2.1.1. O den později ho správci vydali znovu jako 2.0.1, tedy do starší větve, kterou už mezitím vystřídala 2.1. Poznámka k tomu vydání říká rovnou proč: je to jednorázový zpětný přenos „kvůli tomu, že do téhle chyby padá spousta lidí a zakládají kvůli ní hlášení v cizích repozitářích“. A dodává radu, kterou obsahuje i ta chybová hláška: buď si zamkněte mcp<2, nebo přejděte na dvojku.
Návod k přechodu, na který se to všechno odkazuje, existoval od začátku a je obsáhlý; jen do něj nikdo neměl jak trefit. Vede tabulku, kde je v prvním sloupci změna a ve druhém „první příznak“, podle kterého se pozná – u přejmenování třídy je tím příznakem právě zmíněný ModuleNotFoundError. Od 25. srpna má ten řádek dovětek, že novější vydání dvojky za hlášku připojují i odkaz sem.
Za pozornost stojí ten rozdíl v rychlosti. Samotný protokol MCP si na rušení funkcí dal pravidla s lhůtou nejméně jednoho roku, aby se implementace stihly připravit. Knihovna, kterou se ten protokol v Pythonu píše, žádnou takovou lhůtu nemá – řídí se číslováním verzí, a to dovoluje nekompatibilní změnu kdykoli, když se zvedne první číslo. Mezi obojím stojí soubory pyproject.toml tisíců cizích projektů, ve kterých horní hranice závislosti většinou chybí.
Zdroje: vydání knihovny mcp na GitHubu, návrh změny 3393, návod k přechodu z verze 1 na 2 a obsah kol stažených z PyPI.