Hermes.Transport.SSE (hermes_mcp v0.3.6)

A transport implementation that uses Server-Sent Events (SSE) for receiving messages and HTTP POST requests for sending messages back to the server.

Notes

For initialization and setup, check our Installation & Setup and the Transport options guides for reference.

Summary

Types

The options for the SSE transport.

The options for the MCP server.

t()

Functions

Returns a specification to start this module under a supervisor.

Types

option()

@type option() ::
  {:name, GenServer.name()}
  | {:client, GenServer.server()}
  | {:server, server()}
  | {:headers, map()}
  | {:transport_opts, keyword()}
  | {:http_options, Finch.request_opts()}
  | GenServer.option()

The options for the SSE transport.

  • :name - The name of the transport process, respecting the GenServer "Name Registration" section.
  • :client - The client to send the messages to, respecting the GenServer "Name Registration" section.
  • :server - The server configuration.
  • :headers - The headers to send with the HTTP requests.
  • :transport_opts - The underlying HTTP transport options to pass to the HTTP client. You can check on the Mint docs
  • :http_options - The underlying HTTP client options to pass to the HTTP client. You can check on the Finch docs

params_t()

@type params_t() :: Enumerable.t(option())

server()

@type server() ::
  Enumerable.t(
    {:base_url, String.t()}
    | {:base_path, String.t()}
    | {:sse_path, String.t()}
  )

The options for the MCP server.

  • :base_url - The base URL of the MCP server (e.g. http://localhost:8000) (required).
  • :base_path - The base path of the MCP server (e.g. /mcp).
  • :sse_path - The path to the SSE endpoint (e.g. /mcp/sse) (default :base_path + /sse).

t()

@type t() :: GenServer.server()

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

get_schema(atom)

options_schema(data)

options_schema!(data)