Skip to content

PromptProvider

autogen.beta.mcp.prompts.PromptProvider #

PromptProvider(prompts)

Serves a fixed set of :class:Prompt over MCP.

Source code in autogen/beta/mcp/prompts.py
def __init__(self, prompts: Sequence[Prompt]) -> None:
    self._prompts = tuple(prompts)
    self._by_name = {p.name: p for p in self._prompts}

register #

register(server)
Source code in autogen/beta/mcp/prompts.py
def register(self, server: "Server") -> None:
    provider = self

    # ``mcp``'s low-level decorators are untyped; ignore the resulting noise.
    @server.list_prompts()  # type: ignore[no-untyped-call, misc]
    async def _list_prompts() -> list[MCPPrompt]:
        return [_to_mcp_prompt(p) for p in provider._prompts]

    @server.get_prompt()  # type: ignore[no-untyped-call, misc]
    async def _get_prompt(name: str, arguments: dict[str, str] | None) -> GetPromptResult:
        return await provider.get(name, arguments or {})

get async #

get(name, arguments)
Source code in autogen/beta/mcp/prompts.py
async def get(self, name: str, arguments: dict[str, str]) -> GetPromptResult:
    prompt = self._by_name.get(name)
    if prompt is None:
        raise MCPPromptNotFoundError(name)
    result = await call_user_fn(prompt.render, dict(arguments))
    return GetPromptResult(description=prompt.description, messages=_to_mcp_messages(result))