ExUtcp.Transports.Mcp.Message (ex_utcp v0.3.2)

Copy Markdown View Source

Handles JSON-RPC 2.0 message formatting and parsing for MCP protocol.

Summary

Functions

Builds a JSON-RPC 2.0 error response message.

Builds a JSON-RPC 2.0 notification message.

Builds a JSON-RPC 2.0 request message.

Builds a JSON-RPC 2.0 response message.

Checks if a message is an error response.

Extracts error information from an error response.

Extracts the request ID from a message.

Extracts the method name from a request message.

Extracts result from a successful response.

Checks if a message is a notification.

Parses a JSON-RPC 2.0 response.

Checks if a message is a request.

Checks if a message is a response.

Validates a JSON-RPC 2.0 message.

Functions

build_error_response(code, message, data \\ nil, id \\ nil)

@spec build_error_response(integer(), String.t(), any(), integer() | nil) :: map()

Builds a JSON-RPC 2.0 error response message.

build_notification(method, params)

@spec build_notification(String.t(), map()) :: map()

Builds a JSON-RPC 2.0 notification message.

build_request(method, params, id \\ nil)

@spec build_request(String.t(), map(), integer() | nil) :: map()

Builds a JSON-RPC 2.0 request message.

build_response(result, id)

@spec build_response(any(), integer() | nil) :: map()

Builds a JSON-RPC 2.0 response message.

error?(arg1)

@spec error?(map()) :: boolean()

Checks if a message is an error response.

extract_error(map)

@spec extract_error(map()) :: {integer(), String.t(), any()}

Extracts error information from an error response.

extract_id(arg1)

@spec extract_id(map()) :: integer() | nil

Extracts the request ID from a message.

extract_method(arg1)

@spec extract_method(map()) :: String.t() | nil

Extracts the method name from a request message.

extract_result(arg1)

@spec extract_result(map()) :: any()

Extracts result from a successful response.

notification?(arg1)

@spec notification?(map()) :: boolean()

Checks if a message is a notification.

parse_response(json_string)

@spec parse_response(String.t()) :: {:ok, any()} | {:error, String.t()}

Parses a JSON-RPC 2.0 response.

request?(arg1)

@spec request?(map()) :: boolean()

Checks if a message is a request.

response?(arg1)

@spec response?(map()) :: boolean()

Checks if a message is a response.

validate_message(message)

@spec validate_message(map()) :: :ok | {:error, String.t()}

Validates a JSON-RPC 2.0 message.