Menu
Přihlásit
Článek Claude Code

Claude Code MCP Tasks a Elicitations: dlouhé joby na pozadí, které se umí zeptat

MCP server teď může vrátit úkol na pozadí místo blokující odpovědi – a uprostřed práce se zeptat. Co umí MCP Tasks a Elicitations v Claude Code od v2.1.304, kde fungují a jak je použít.

Aktualizováno 8 min čtení 10 sekcí

Obsah článku 10 sekcí

V kostce

  • MCP Tasks (public beta od Claude Code v2.1.304, představeno 22.–23. 10. 2026) umožní serveru vrátit místo blokující odpovědi task handle; klient stav polljuje přes tasks/get.
  • Interval pollování určuje server, Claude Code ho sevírá mezi 250 ms a 30 s (výchozí 2 s); po návratu task handle přestávají platit timeouty tool-callu.
  • Elicitations: úkol ve stavu input_required se zeptá uživatele formulářem v terminálu; citlivé údaje patří jen do URL režimu, model otázku ani odpověď nevidí.
  • Funguje v terminálu, Agent SDK a GitHub Actions; nefunguje ve VS Code extension, desktopu, one-shot claude -p, subagentech ani přes Bedrock.
  • Na rozdíl od client-side auto-backgroundingu přežije task na vzdáleném serveru i vypnutí Claude Code; běžící úkoly ukáže příkaz /tasks.

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:

  1. Klient (Claude Code) při volání nástroje deklaruje, že umí tasks.
  2. Server místo finálního výsledku okamžitě odpoví task handlem: resultType: "task", taskId, stav working a pollIntervalMs.
  3. Claude Code pak pomocí tasks/get polluje stav úkolu, dokud neskončí jako completed, failed nebo cancelled.
  4. 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-session nebo claude -p --resume za 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

  1. 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.
  2. Deploy s approval gatem. Deploy nástroj přejde do input_required a čeká na vaše potvrzení, místo aby nasadil slepě nebo selhal. Přesně takový gate chcete u produkce.
  3. Research a report joby. Hodinový deep-research úkol na serveru, výsledek dorazí do konverzace, až je hotový.
  4. Serverless MCP. Doteď neřešitelné: funkce s pětiminutovým limitem teď práci jen odfrontuje.
  5. 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_TIMEOUT resp. 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.

Pokračuj dál

Všechny články →