Přeskočit na obsah
Nástroje 3 min čtení

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.

Sál plný účastníků konference PyCon
Setkání pythonistů PyCon v Dháce, 2014. Knihovna mcp je hlavní cesta, kterou se v Pythonu píšou servery protokolu MCP. Foto: Nasir Khan Saikat, Wikimedia Commons (CC BY-SA 3.0)

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.

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

  1. Nástroje

    Claude Duet čerpá při práci na pozadí stejný limit jako běžný Claude

    Anthropic otevřel čekací listinu na Claude Duet pro předplatitele Pro a Max v USA. Agent pracuje i po vypnutí počítače, ale jeho kontroly účtů a úkoly na pozadí ubírají…

  2. Nástroje

    ElevenLabs uvedlo Eleven Realtime pro hlasové rozhovory

    Varianta Max dosáhla v nezávislém testu mluvených logických úloh 98,8 procenta a první zvuk vydala za 0,57 sekundy. Menší Mini získalo lepší známku za průběh rozhovoru,…

  3. Nástroje

    ChatGPT v Chromu umí číst otevřené panely a pracovat v nich

    ChatGPT v Chromu umí číst otevřené panely a pracovat v nich. Rozšíření od OpenAI dostalo postranní chat s historií konverzací. Při odkazování na historii prohlížení a…

  4. Nástroje

    Claude Code dostal strop čekání na obnovení limitu u sezení bez dohledu

    Claude Code v režimu pro sezení bez dohledu opakuje odmítnuté požadavky tak dlouho, dokud neprojdou – a u vyčerpaného limitu předplatného to znamená čekat až do jeho…