Interface McpPromptHandler


public interface McpPromptHandler
Handler for a single MCP prompt.

Implementations declare a descriptor (the McpPromptSpec returned by prompts/list) and a get body invoked when the matching prompts/get method runs.

This is a genuine two-method contract, not a single-method one: both descriptor() and get(Map, BeanStore) are abstract, so it is deliberately not annotated @FunctionalInterface and a bare lambda cannot implement it. Routing calls descriptor() on every registered handler for both prompts/list and prompts/get, so a handler with no usable descriptor is not a valid handler; making descriptor() abstract catches that at compile time instead of the first request to reach it at runtime. Use of(McpPromptSpec, BiFunction) for the common case of wiring both in a single expression.

  • Method Details

    • of

      Builds a handler from a fixed descriptor and a get lambda.

      The sanctioned one-expression path for registering a prompt: unlike a bare lambda (which cannot satisfy this two-method interface at all), this factory wires both descriptor() and get(Map, BeanStore) from a single call.

      Parameters:
      descriptor - The static descriptor returned from every descriptor() call. Must not be null and must carry a non-blank name (routing matches incoming prompts/get requests on name, so a nameless prompt would be silently unreachable).
      get - The get body, invoked with the incoming arguments and the per-request bean store. Must not be null.
      Returns:
      A new handler wiring both. Never null.
    • descriptor

      Returns the static descriptor for this prompt.

      The name value is used by the bound McpRevision to route incoming prompts/get requests, so each handler in an McpServerConfig must use a unique name.

      Returns:
      The prompt descriptor. Never null.
    • get

      Renders the prompt.
      Parameters:
      arguments - The arguments object passed in the JSON-RPC params (never null; empty map when omitted).
      ctx - Per-request bean store. Never null.
      Returns:
      The rendered prompt. Never null.