Skip to main content

fastmcp.server.tasks.keys

Task key management for SEP-1686 background tasks. Task keys encode security scoping and metadata in the Docket key format: {session_id}:{client_task_id}:{task_type}:{component_identifier} This format provides:
  • Session-based security scoping (prevents cross-session access)
  • Task type identification (tool/prompt/resource)
  • Component identification (name or URI for result conversion)

Functions

build_task_key

build_task_key(session_id: str, client_task_id: str, task_type: str, component_identifier: str) -> str
Build Docket task key with embedded metadata. Format: {session_id}:{client_task_id}:{task_type}:{component_identifier} The component_identifier is URI-encoded to handle special characters (colons, slashes, etc.). Args:
  • session_id: Session ID for security scoping
  • client_task_id: Client-provided task ID
  • task_type: Type of task (“tool”, “prompt”, “resource”)
  • component_identifier: Tool name, prompt name, or resource URI
Returns:
  • Encoded task key for Docket
Examples:
build_task_key(“session123”, “task456”, “tool”, “my_tool”) ‘session123:task456:tool:my_tool’ build_task_key(“session123”, “task456”, “resource”, “file://data.txt”) ‘session123:task456:resource:file%3A%2F%2Fdata.txt’

parse_task_key

parse_task_key(task_key: str) -> dict[str, str]
Parse Docket task key to extract metadata. Args:
  • task_key: Encoded task key from Docket
Returns:
  • Dict with keys: session_id, client_task_id, task_type, component_identifier
Examples:
parse_task_key(“session123:task456:tool:my_tool”) {'session_id': 'session123', 'client_task_id': 'task456', 'task_type': 'tool', 'component_identifier': 'my_tool'} parse_task_key(“session123:task456:resource:file%3A%2F%2Fdata.txt”) {'session_id': 'session123', 'client_task_id': 'task456', 'task_type': 'resource', 'component_identifier': 'file://data.txt'}

get_client_task_id_from_key

get_client_task_id_from_key(task_key: str) -> str
Extract just the client task ID from a task key. Args:
  • task_key: Full encoded task key
Returns:
  • Client-provided task ID (second segment)