Znáte to: spustíte v Claude Code MCP nástroj, který má postavit build, projet testy nebo stáhnout report – a terminál visí. Dvě minuty, pět minut, deset. Buď to doběhne, nebo to spadne na timeoutu. A kdyby se vás server chtěl uprostřed něco zeptat? Nemohl. Volba tools/call v MCP byla vždy synchronní: jedna otázka, jedna odpověď, a nic mezi tím.
Přesně tohle se změnilo minulý týden. Na konferencích AGNTCon a MCPCon North America (22.–23. října 2026) Anthropic představil MCP Tasks a Elicitations a hned druhý den potvrdil podporu v Claude Code – veřejná beta běží od verze v2.1.304. MCP server teď může místo blokující odpovědi vrátit „úkol na pozadí“ a Claude Code mu jen průběžně kontroluje stav. A pokud server potřebuje od uživatele rozhodnutí, úkol se pozastaví a zeptá se. Podívejme se, co to znamená v praxi.
Problém, který Tasks řeší
Standardní MCP volání funguje jako telefonát: klient zavolá, server odpracuje, klient čeká na lince. To je OK pro „načti soubor“ nebo „vyhledej issue“. Ale pro dlouhé operace – build Unreal projektu, hodinový research job, dávkové zpracování – narazíte na tři zdi:
- Timeouty. HTTP spojení nechce viset hodinu. Serverless funkce mají limit v řádu minut, takže dlouhá práce na Vercelu nebo AWS Lambda přes MCP byla prakticky nemožná.
- Zbytečné držení session. Klient musí držet požadavek otevřený, i když se neděje nic.
- Žádná interakce. Když deploy nástroj potřeboval „opravdu nasadit do produkce? ano/ne“, neměl se jak zeptat – mohl jen selhat nebo uhodnout.
Claude Code sice od verze v2.1.212 umí auto-backgrounding – volání, které běží déle než dvě minuty (laditelné přes CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS), přesune na pozadí. Ale to je řešení na straně klienta: server musí požadavek dál držet otevřený a všechno umírá se session. MCP Tasks to řeší na straně serveru – a to je ten zásadní rozdíl.
Jak MCP Tasks fungují
Mechanika je překvapivě jednoduchá a stojí na rozšíření io.modelcontextprotocol/tasks v revizi protokolu 2026-07-28:
- Klient (Claude Code) při volání nástroje deklaruje, že umí tasks.
- Server místo finálního výsledku okamžitě odpoví task handlem:
resultType: "task",taskId, stavworkingapollIntervalMs. - Claude Code pak pomocí
tasks/getpolluje stav úkolu, dokud neskončí jakocompleted,failednebocancelled. - Výsledek se objeví v konverzaci, až je hotový – mezitím můžete dál pracovat nebo terminál klidně zavřít.
Pár technických detailů, které se hodí znát:
- Interval pollování určuje server, Claude Code ho sevře mezi 250 ms až 30 s (výchozí 2 s). Žádné push notifikace – jen polling.
- taskId může mít max. 128 printable ASCII znaků bez mezer.
- Žádný časový limit výsledku. Jakmile server vrátí task handle, přestávají platit timeouty tool-callu. Dlouhý job klidně běží hodiny.
- Seznam běžících úkolů uvidíte v CLI příkazem
/tasks.
Praktický dopad: MCP server nasazený na serverless teď může vrátit task během milisekund a skutečnou práci odfrontovat jinam. Timeout funkce přestává být limit celé operace.
Elicitations: když se úkol zeptá
Druhá půlka novinky je ještě zajímavější. Úkol může přejít do stavu input_required – server řekne „potřebuju od člověka rozhodnutí“ a Claude Code zobrazí v terminálu formulář (třeba „Nasadit do produkce?“ s výběrem ano/ne, nebo „Vyber prostředí: staging/prod“). Odpověď se odešle jedním tasks/update a úkol pokračuje.
Elicitační dialogy přitom nejsou úplně nové – v Claude Code jsou od verze v2.1.76 a URL režim přibyl ve v2.1.281. Nové je, že teď fungují uvnitř běžícího úkolu, ne jen při startu.
Důležitá pravidla:
- Formulářový režim se nesmí používat na citlivé údaje. Hesla, API klíče, tokeny a platební údaje patří do URL režimu – Claude Code otevře prohlížeč a odpověď jde přímo na server, ne přes model. Limit URL je zhruba 8 000 znaků.
- Model otázku ani odpověď nevidí – jde o čistě uživatelský kanál mezi serverem a člověkem, takže se váš API klíč nedostane do kontextu konverzace.
- V headless režimu (Agent SDK, GitHub Actions,
stream-json) se formulář zobrazit nedá. Úkol, který požádá o vstup, se okamžitě zruší (tasks/cancel), místo aby visel. Na to pozor při návrhu automatizací – pro noční běhy bez dohledu navrhujte servery tak, aby si vystačily s konfigurací, ne s dotazy.
Kde to funguje – a kde (zatím) ne
Dostupnost je křehčí, než by čekal, takže rovnou tabulka podle oficiální dokumentace:
| Prostředí | MCP Tasks |
|---|---|
| Terminál (interaktivní CLI) | ✅ |
Agent SDK (CLAUDE_AUTO_BACKGROUND_TASKS=1) |
✅ |
| GitHub Actions | ✅ |
| VS Code extension | ❌ |
| Desktop aplikace | ❌ |
One-shot claude -p "prompt" |
❌ |
| Subagenti | ❌ |
| Bedrock a jiní third-party provideři | ❌ |
Pozor i na známý bug: vestavěný claude-code v Claude Desktop/Cowork deklaruje elicitační schopnost, ale dialog nikdy nevykreslí – volání pak visí až do timeoutu (GitHub issue #88901). Pokud tedy server s elicitací testujete, zkoušejte ho v čistém terminálu.
Tasks vs. auto-backgrounding: co přežije restart
Kdy už jsme u toho – čím se Tasks liší od backgroundingu, který Claude Code umí už od srpna?
- Auto-backgrounding je klient-side trik. Claude Code po dvou minutách přesune čekání na pozadí, ale server pořád drží otevřený požadavek. Zavřete terminál → konec.
- MCP Tasks jsou server-side. Server odpověděl hned a práce žije u něj. Task na vzdáleném serveru přežije i vypnutí Claude Code – po návratu do stejné interaktivní session se Claude Code k úkolu znovu připojí a dopolluje výsledek. U stdio serverů (lokální proces) ale úkol umírá spolu s ním.
- Resume má podmínky: stejná session, interaktivní režim, nezměněná konfigurace serveru.
--fork-sessionneboclaude -p --resumeza starými úkoly nedokážou jít.
Pokud řešíte řízení dlouhých běhů agenta obecně, doporučujeme náš článek o Chief of Staff patternu pro verifikaci dlouhých běhů – Tasks se k němu skvěle doplňují.
Příklady, kde to okamžitě dává smysl
- Dlouhé buildy a testy. CI server vrátí task, Claude Code mezitím píše další kód, výsledek dojde sám. Studio Stray Spark tohle popisuje u buildů Unreal Engine 5 – místo „hlídání“ buildu agent pracuje dál.
- Deploy s approval gatem. Deploy nástroj přejde do
input_requireda čeká na vaše potvrzení, místo aby nasadil slepě nebo selhal. Přesně takový gate chcete u produkce. - Research a report joby. Hodinový deep-research úkol na serveru, výsledek dorazí do konverzace, až je hotový.
- Serverless MCP. Doteď neřešitelné: funkce s pětiminutovým limitem teď práci jen odfrontuje.
- Outbound akce. Odeslání e-mailové kampaně nebo dávková migrace dat – s potvrzením od člověka uprostřed.
Co to znamená pro autory MCP serverů
Píšete vlastní MCP servery? Přidání Tasks znamená deklarovat rozšíření io.modelcontextprotocol/tasks, vracet task handle místo blokování a implementovat tasks/get + tasks/update. Pozor na tři věci:
- Trvanlivá taskId. Server musí umět úkol najít i po reconnectu – stateless server bez úložiště Tasks nenabídne. Upstash pro tohle už vydal toolkit
@upstash/mcp-toolkit/tasks(Redis/QStash). - Nikdy nevracejte task klientovi, který ho nedeklaroval – starší klienti by ho neuměli dopolllovat.
- Bezpečnost zůstává vaše zodpovědnost. Elicitace je nový kanál, jak ze serveru oslovit uživatele – a jak jsme psali v článku o falešných MCP serverech, každý nový kanál je i nový vektor útoku. Server, který se ptá na citlivé údaje formulářem místo URL režimu, je red flag.
Širší kontext vývoje protokolu shrnuje naše MCP roadmap 2026 – Tasks jsou přesně ten typ rozšíření, který z MCP dělá plnohodnotnou agentní vrstvu, ne jen „pipu pro nástroje“.
Praktické tipy pro první týden
- Aktualizujte Claude Code na v2.1.304+ (
claude update) a ověřte, že vám běží interaktivní terminál – ne VS Code extension. - Běžící úkoly kontrolujte příkazem
/tasks. - Chcete-li vynutit staré synchronní chování, nastavte
CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS=0. - V SDK/headless režimu tasks zapnete přes
CLAUDE_AUTO_BACKGROUND_TASKS=1– a pamatujte, že elicitace se tam ruší, ne zobrazují. - Timeouty do návratu task handle ladí
MCP_TIMEOUTresp.CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT(idle 5 min HTTP / 30 min stdio).
Často kladené otázky
Musím jako uživatel něco nastavovat?
Ne. Stačí Claude Code v2.1.304 nebo novější v interaktivním terminálu. Jestli váš MCP server Tasks podporuje, poznáte podle toho, že dlouhé volání vrátí úkol místo čekání – a běžící úkoly uvidíte příkazem /tasks.
Co se stane s úkolem, když zavřu terminál?
U vzdáleného (remote) serveru úkol běží dál a po návratu do stejné interaktivní session se k němu Claude Code znovu připojí. U lokálního stdio serveru úkol umírá spolu s jeho procesem. Přes --fork-session nebo claude -p --resume se k běžícím úkolům nedostanete.
Fungují elicitace v automatizacích a CI?
Ne – v headless režimu (Agent SDK, GitHub Actions) se formulář nezobrazí a úkol žádající o vstup se okamžitě zruší. Pro automatizace navrhujte servery tak, aby potřebné parametry dostaly předem v konfiguraci, a elicitaci používaly jen jako pojistku v interaktivním běhu.
Je bezpečné, když se server ptá na heslo?
Citlivé údaje (hesla, klíče, tokeny) smí server žádat jen URL režimem, kde odpovídáte v prohlížeči přímo serveru. Formulář v terminálu je podle specifikace na citlivé údaje zakázaný – a model se k otázce ani odpovědi vůbec nedostane.
Závěr: MCP dospělo z „nástrojů“ do „jobů“
MCP Tasks a Elicitations mění charakter protokolu. MCP přestává být jen způsob, jak agentovi přihodit funkci navíc – stává se z něj systém pro dlouhodobou, člověkem přerušitelnou práci. Server může pracovat hodiny bez držení spojení, zeptat se na rozhodnutí, přežít restart klienta a běžet na serverless infrastruktuře.
Pro běžného uživatele Claude Code se zatím změní málo – počkejte, až vaše oblíbené MCP servery Tasks implementují. Pro autory serverů a týmy, které staví interní nástroje, je ale teď ideální čas začít: veřejná beta běží, dokumentace je venku a kdo si osvojí Tasks dnes, bude mít v agentních workflow náskok. Pokud teprve s MCP začínáte, nejdřív si přečtěte, jak připojit remote MCP servery jako GitHub, Linear nebo Notion – a až budete chtít vlastní server s dlouhými úkoly, vraťte se k tomuto článku.