Packages
Model Context Protocol (MCP) implementation in Elixir with Phoenix integration
Retired package: Release invalid - Accidental version. Use 0.3.0 instead.
Current section
Files
Jump to
Current section
Files
lib/backplane/mcp_protocol/telemetry.ex
defmodule Backplane.McpProtocol.Telemetry do
@moduledoc false
@doc """
Execute a telemetry event with the Backplane.McpProtocol MCP namespace.
## Parameters
- `event_name` - List of atoms for the event name, excluding the :backplane_mcp_protocol prefix
- `measurements` - Map of measurements for the event
- `metadata` - Map of metadata for the event
"""
@spec execute(list(atom()), map(), map()) :: :ok
def execute(event_name, measurements, metadata) do
:telemetry.execute([:backplane_mcp_protocol | event_name], measurements, metadata)
end
# Define event name constants to ensure consistency
# Client events
def event_client_init, do: [:client, :init]
def event_client_request, do: [:client, :request]
def event_client_response, do: [:client, :response]
def event_client_terminate, do: [:client, :terminate]
def event_client_error, do: [:client, :error]
def event_client_notification, do: [:client, :notification]
# Server events
def event_server_init, do: [:server, :init]
def event_server_request, do: [:server, :request]
def event_server_response, do: [:server, :response]
def event_server_notification, do: [:server, :notification]
def event_server_error, do: [:server, :error]
def event_server_terminate, do: [:server, :terminate]
def event_server_tool_call, do: [:server, :tool_call]
def event_server_resource_read, do: [:server, :resource_read]
def event_server_prompt_get, do: [:server, :prompt_get]
# Transport events
def event_transport_init, do: [:transport, :init]
def event_transport_connect, do: [:transport, :connect]
def event_transport_send, do: [:transport, :send]
def event_transport_receive, do: [:transport, :receive]
def event_transport_disconnect, do: [:transport, :disconnect]
def event_transport_error, do: [:transport, :error]
def event_transport_terminate, do: [:transport, :terminate]
# Message events
def event_message_encode, do: [:message, :encode]
def event_message_decode, do: [:message, :decode]
# Progress events
def event_progress_update, do: [:progress, :update]
# Roots events
def event_client_roots, do: [:client, :roots]
# Session events (for StreamableHTTP transport)
def event_server_session_created, do: [:server, :session, :created]
def event_server_session_terminated, do: [:server, :session, :terminated]
def event_server_session_cleanup, do: [:server, :session, :cleanup]
end