This page is under construction. The outline below sketches what it will cover.
- Task modes —
forbidden(default: task requests rejected),optional(task: true: both sync and task execution work),required(sync calls rejected; advertised withexecution: { taskSupport: 'required' }). - Execution flow — server returns
CreateTaskResultimmediately; client pollstasks/getuntil terminal, then fetches output viatasks/result.ToolConfig.timeoutis intentionally not applied in task mode. - Stores —
InMemoryTaskStoreis used automatically; supply a customTaskStorevianew FastMCP({ tasks: { store: myStore } }), or enable the capability globally with{ tasks: true }. - Error model — server-side rejections and failed handlers surface as
{ type: 'error' }messages in task streams rather than thrown exceptions.