Back to Fastmcp

function_prompt

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

3.2.43.4 KB
Original Source

fastmcp.prompts.function_prompt

Standalone @prompt decorator for FastMCP.

Functions

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

python
prompt(name_or_fn: str | Callable[..., Any] | None = None) -> Any

Standalone decorator to mark a function as an MCP prompt.

Returns the original function with metadata attached. Register with a server using mcp.add_prompt().

Classes

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

Protocol for functions decorated with @prompt.

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

Metadata attached to functions by the @prompt decorator.

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

A prompt that is a function.

Methods:

from_function <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L85" 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.

Args:

  • fn: The function to wrap
  • metadata: PromptMeta object with all configuration. If provided, individual parameters must not be passed.
  • name, title, etc.: Individual parameters for backwards compatibility. Cannot be used together with metadata parameter.

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/function_prompt.py#L318" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

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

Render the prompt with arguments.

register_with_docket <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L368" 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/function_prompt.py#L374" 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.

FunctionPrompt splats the arguments dict since .fn expects **kwargs.

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()