ExMCP.Server.Capabilities (ex_mcp v0.9.2)

View Source

Helper module to build server capabilities.

Uses the VersionRegistry to return appropriate capabilities based on the negotiated protocol version.

Summary

Functions

Builds server capabilities object based on protocol version.

Functions

build_capabilities(handler_module, version \\ nil)

@spec build_capabilities(module(), String.t() | nil) :: map()

Builds server capabilities object based on protocol version.

Returns version-specific capabilities from the VersionRegistry. Handlers can still override this in their handle_initialize/2 if they want to advertise different capabilities.

Parameters

  • handler_module: The handler module (reserved for future use)
  • version: The negotiated protocol version (defaults to latest)

Examples

iex> ExMCP.Server.Capabilities.build_capabilities(MyHandler, "2025-03-26")
%{
  "prompts" => %{"listChanged" => true},
  "resources" => %{"subscribe" => true, "listChanged" => true},
  "tools" => %{},
  "logging" => %{"setLevel" => true},
  "completion" => %{},
  "experimental" => %{}
}