Back to Fastmcp

base

docs/python-sdk/fastmcp-prompts-base.mdx

3.2.44.7 KB
Original Source

fastmcp.prompts.base

Base classes for FastMCP prompts.

Classes

Message <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L44" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

Wrapper for prompt message with auto-serialization.

Accepts any content - strings pass through, other types (dict, list, BaseModel) are JSON-serialized to text.

Methods:

to_mcp_prompt_message <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L99" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
to_mcp_prompt_message(self) -> PromptMessage

Convert to MCP PromptMessage.

PromptArgument <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L104" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

An argument that can be passed to a prompt.

PromptResult <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L116" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

Canonical result type for prompt rendering.

Provides explicit control over prompt responses: multiple messages, roles, and metadata at both the message and result level.

Methods:

to_mcp_prompt_result <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L188" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
to_mcp_prompt_result(self) -> GetPromptResult

Convert to MCP GetPromptResult.

Prompt <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L198" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

A prompt template that can be rendered with parameters.

Methods:

to_mcp_prompt <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L210" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
to_mcp_prompt(self, **overrides: Any) -> SDKPrompt

Convert the prompt to an MCP prompt.

from_function <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L236" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
from_function(cls, fn: Callable[..., Any]) -> FunctionPrompt

Create a Prompt from a function.

The function can return:

  • str: wrapped as single user Message
  • list[Message | str]: converted to list[Message]
  • PromptResult: used directly

render <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L272" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
render(self, arguments: dict[str, Any] | None = None) -> str | list[Message | str] | PromptResult

Render the prompt with arguments.

Subclasses must implement this method. Return one of:

  • str: Wrapped as single user Message
  • list[Message | str]: Converted to list[Message]
  • PromptResult: Used directly

convert_result <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L285" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
convert_result(self, raw_value: Any) -> PromptResult

Convert a raw return value to PromptResult.

Raises:

  • TypeError: for unsupported types

register_with_docket <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L375" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
register_with_docket(self, docket: Docket) -> None

Register this prompt with docket for background execution.

add_to_docket <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L381" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
add_to_docket(self, docket: Docket, arguments: dict[str, Any] | None, **kwargs: Any) -> Execution

Schedule this prompt for background execution via docket.

Args:

  • docket: The Docket instance
  • arguments: Prompt arguments
  • fn_key: Function lookup key in Docket registry (defaults to self.key)
  • task_key: Redis storage key for the result
  • **kwargs: Additional kwargs passed to docket.add()

get_span_attributes <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/base.py#L404" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
get_span_attributes(self) -> dict[str, Any]