Hermes.Server.Handlers.Prompts (hermes_mcp v0.9.1)

Handles MCP protocol prompt-related methods.

This module processes:

  • prompts/list - Lists available prompts with optional pagination
  • prompts/get - Retrieves and generates messages for a specific prompt

Pagination Support

The prompts/list method supports pagination through cursor parameters:

# Request
%{"method" => "prompts/list", "params" => %{"cursor" => "optional-cursor"}}

# Response with more results
%{
  "prompts" => [...],
  "nextCursor" => "next-page-cursor"
}

# Response for last page
%{"prompts" => [...]}

Summary

Functions

Handles the prompts/get request to retrieve messages for a specific prompt.

Handles the prompts/list request with optional pagination.

Functions

handle_get(map, frame, server_module)

@spec handle_get(map(), Hermes.Server.Frame.t(), module()) ::
  {:reply, map(), Hermes.Server.Frame.t()}
  | {:error, Hermes.MCP.Error.t(), Hermes.Server.Frame.t()}

Handles the prompts/get request to retrieve messages for a specific prompt.

Parameters

  • request - The MCP request containing prompt name and arguments
  • frame - The server frame
  • server_module - The server module implementing prompt components

Returns

  • {:reply, result, frame} - Generated messages from the prompt
  • {:error, error, frame} - If prompt not found or generation fails

handle_list(frame, server_module)

@spec handle_list(Hermes.Server.Frame.t(), module()) ::
  {:reply, map(), Hermes.Server.Frame.t()}
  | {:error, Hermes.MCP.Error.t(), Hermes.Server.Frame.t()}

Handles the prompts/list request with optional pagination.

Parameters

  • request - The MCP request containing optional cursor in params
  • frame - The server frame
  • server_module - The server module implementing prompt components

Returns

  • {:reply, result, frame} - List of prompts with optional nextCursor
  • {:error, error, frame} - If pagination cursor is invalid