---
title: protocol
sidebarTitle: protocol
---
# `fastmcp.server.tasks.protocol`
SEP-1686 task protocol handlers.
Implements MCP task protocol methods: tasks/get, tasks/result, tasks/list, tasks/cancel, tasks/delete.
## Functions
### `tasks_get_handler`
```python
tasks_get_handler(server: FastMCP, params: dict[str, Any]) -> GetTaskResult
```
Handle MCP 'tasks/get' request (SEP-1686).
**Args:**
- `server`: FastMCP server instance
- `params`: Request params containing taskId
**Returns:**
- Task status response with spec-compliant fields
### `tasks_result_handler`
```python
tasks_result_handler(server: FastMCP, params: dict[str, Any]) -> Any
```
Handle MCP 'tasks/result' request (SEP-1686).
Converts raw task return values to MCP types based on task type.
**Args:**
- `server`: FastMCP server instance
- `params`: Request params containing taskId
**Returns:**
- MCP result (CallToolResult, GetPromptResult, or ReadResourceResult)
### `tasks_list_handler`
```python
tasks_list_handler(server: FastMCP, params: dict[str, Any]) -> ListTasksResult
```
Handle MCP 'tasks/list' request (SEP-1686).
Note: With client-side tracking, this returns minimal info.
**Args:**
- `server`: FastMCP server instance
- `params`: Request params (cursor, limit)
**Returns:**
- Response with tasks list and pagination
### `tasks_cancel_handler`
```python
tasks_cancel_handler(server: FastMCP, params: dict[str, Any]) -> CancelTaskResult
```
Handle MCP 'tasks/cancel' request (SEP-1686).
Cancels a running task, transitioning it to cancelled state.
**Args:**
- `server`: FastMCP server instance
- `params`: Request params containing taskId
**Returns:**
- Task status response showing cancelled state