# MCP Elixir SDK v1.1.0 - Table of Contents

Official-style Elixir SDK for the Model Context Protocol (MCP) — client and server with stdio and Streamable HTTP transports.

## Pages

- [MCP Elixir SDK](readme.md)

- Guides
  - [Architecture](architecture.md)

- Reference
  - [Changelog](changelog.md)
  - [LICENSE](license.md)
  - [Usage Rules (AI Agents)](usage-rules.md)

## Modules

- Client
  - [MCP.Client](MCP.Client.md): MCP client implementation.

- Server
  - [MCP.Server](MCP.Server.md): MCP server implementation.
  - [MCP.Server.Handler](MCP.Server.Handler.md): Behaviour for implementing MCP server feature handlers.
  - [MCP.Server.ToolContext](MCP.Server.ToolContext.md): Context passed to `handle_call_tool/4` handlers during tool execution.

- Protocol
  - [MCP.Protocol](MCP.Protocol.md): JSON-RPC 2.0 encoding/decoding for MCP messages.

  - [MCP.Protocol.Error](MCP.Protocol.Error.md): MCP protocol error codes and error struct.
  - [MCP.Protocol.Methods](MCP.Protocol.Methods.md): MCP method name constants and notification method constants.

- Capabilities
  - [MCP.Protocol.Capabilities.ClientCapabilities](MCP.Protocol.Capabilities.ClientCapabilities.md): Capabilities declared by an MCP client during initialization.

  - [MCP.Protocol.Capabilities.CompletionCapabilities](MCP.Protocol.Capabilities.CompletionCapabilities.md): Server capability for argument auto-completion. Empty struct indicates support.

  - [MCP.Protocol.Capabilities.ElicitationCapabilities](MCP.Protocol.Capabilities.ElicitationCapabilities.md): Client capability for elicitation (form and/or URL modes).

  - [MCP.Protocol.Capabilities.LoggingCapabilities](MCP.Protocol.Capabilities.LoggingCapabilities.md): Server capability for logging. Empty struct indicates support.

  - [MCP.Protocol.Capabilities.PromptCapabilities](MCP.Protocol.Capabilities.PromptCapabilities.md): Server capability for prompts.

  - [MCP.Protocol.Capabilities.ResourceCapabilities](MCP.Protocol.Capabilities.ResourceCapabilities.md): Server capability for resources.

  - [MCP.Protocol.Capabilities.RootCapabilities](MCP.Protocol.Capabilities.RootCapabilities.md): Client capability for filesystem roots.

  - [MCP.Protocol.Capabilities.SamplingCapabilities](MCP.Protocol.Capabilities.SamplingCapabilities.md): Client capability for sampling. Empty struct indicates support.

  - [MCP.Protocol.Capabilities.ServerCapabilities](MCP.Protocol.Capabilities.ServerCapabilities.md): Capabilities declared by an MCP server during initialization.

  - [MCP.Protocol.Capabilities.ToolCapabilities](MCP.Protocol.Capabilities.ToolCapabilities.md): Server capability for tools.

- Messages
  - [MCP.Protocol.Messages.Completion](MCP.Protocol.Messages.Completion.md): Message types for `completion/complete`.

  - [MCP.Protocol.Messages.Completion.Params](MCP.Protocol.Messages.Completion.Params.md): Parameters for `completion/complete`.

  - [MCP.Protocol.Messages.Completion.Result](MCP.Protocol.Messages.Completion.Result.md): Result of `completion/complete`.

  - [MCP.Protocol.Messages.Elicitation](MCP.Protocol.Messages.Elicitation.md): Message types for `elicitation/create`.

  - [MCP.Protocol.Messages.Elicitation.Params](MCP.Protocol.Messages.Elicitation.Params.md): Parameters for `elicitation/create`.

  - [MCP.Protocol.Messages.Elicitation.Result](MCP.Protocol.Messages.Elicitation.Result.md): Result of `elicitation/create`.

  - [MCP.Protocol.Messages.Initialize](MCP.Protocol.Messages.Initialize.md): Message types for the MCP initialize handshake.

  - [MCP.Protocol.Messages.Initialize.Params](MCP.Protocol.Messages.Initialize.Params.md): Parameters for the `initialize` request.

  - [MCP.Protocol.Messages.Initialize.Result](MCP.Protocol.Messages.Initialize.Result.md): Result of the `initialize` request.

  - [MCP.Protocol.Messages.Logging](MCP.Protocol.Messages.Logging.md): Message types for logging operations.

  - [MCP.Protocol.Messages.Logging.MessageParams](MCP.Protocol.Messages.Logging.MessageParams.md): Parameters for `notifications/message` (log message from server).

  - [MCP.Protocol.Messages.Logging.SetLevelParams](MCP.Protocol.Messages.Logging.SetLevelParams.md): Parameters for `logging/setLevel`.

  - [MCP.Protocol.Messages.Notification](MCP.Protocol.Messages.Notification.md): A JSON-RPC 2.0 notification message.
  - [MCP.Protocol.Messages.Notifications](MCP.Protocol.Messages.Notifications.md): Parameter types for various MCP notifications.

  - [MCP.Protocol.Messages.Notifications.CancelledParams](MCP.Protocol.Messages.Notifications.CancelledParams.md): Parameters for `notifications/cancelled`.

  - [MCP.Protocol.Messages.Notifications.ProgressParams](MCP.Protocol.Messages.Notifications.ProgressParams.md): Parameters for `notifications/progress`.

  - [MCP.Protocol.Messages.Notifications.ResourceUpdatedParams](MCP.Protocol.Messages.Notifications.ResourceUpdatedParams.md): Parameters for `notifications/resources/updated`.

  - [MCP.Protocol.Messages.Ping](MCP.Protocol.Messages.Ping.md): Message types for the `ping` method.

  - [MCP.Protocol.Messages.Ping.Params](MCP.Protocol.Messages.Ping.Params.md): Parameters for the `ping` request (empty).

  - [MCP.Protocol.Messages.Prompts](MCP.Protocol.Messages.Prompts.md): Message types for prompt operations.

  - [MCP.Protocol.Messages.Prompts.GetParams](MCP.Protocol.Messages.Prompts.GetParams.md): Parameters for `prompts/get`.

  - [MCP.Protocol.Messages.Prompts.GetResult](MCP.Protocol.Messages.Prompts.GetResult.md): Result of `prompts/get`.

  - [MCP.Protocol.Messages.Prompts.ListParams](MCP.Protocol.Messages.Prompts.ListParams.md): Parameters for `prompts/list`.

  - [MCP.Protocol.Messages.Prompts.ListResult](MCP.Protocol.Messages.Prompts.ListResult.md): Result of `prompts/list`.

  - [MCP.Protocol.Messages.Request](MCP.Protocol.Messages.Request.md): A JSON-RPC 2.0 request message.
  - [MCP.Protocol.Messages.Resources](MCP.Protocol.Messages.Resources.md): Message types for resource operations.

  - [MCP.Protocol.Messages.Resources.ListParams](MCP.Protocol.Messages.Resources.ListParams.md): Parameters for `resources/list`.

  - [MCP.Protocol.Messages.Resources.ListResult](MCP.Protocol.Messages.Resources.ListResult.md): Result of `resources/list`.

  - [MCP.Protocol.Messages.Resources.ListTemplatesParams](MCP.Protocol.Messages.Resources.ListTemplatesParams.md): Parameters for `resources/templates/list`.

  - [MCP.Protocol.Messages.Resources.ListTemplatesResult](MCP.Protocol.Messages.Resources.ListTemplatesResult.md): Result of `resources/templates/list`.

  - [MCP.Protocol.Messages.Resources.ReadParams](MCP.Protocol.Messages.Resources.ReadParams.md): Parameters for `resources/read`.

  - [MCP.Protocol.Messages.Resources.ReadResult](MCP.Protocol.Messages.Resources.ReadResult.md): Result of `resources/read`.

  - [MCP.Protocol.Messages.Resources.SubscribeParams](MCP.Protocol.Messages.Resources.SubscribeParams.md): Parameters for `resources/subscribe`.

  - [MCP.Protocol.Messages.Resources.UnsubscribeParams](MCP.Protocol.Messages.Resources.UnsubscribeParams.md): Parameters for `resources/unsubscribe`.

  - [MCP.Protocol.Messages.Response](MCP.Protocol.Messages.Response.md): A JSON-RPC 2.0 response message.
  - [MCP.Protocol.Messages.Roots](MCP.Protocol.Messages.Roots.md): Message types for `roots/list`.

  - [MCP.Protocol.Messages.Roots.ListParams](MCP.Protocol.Messages.Roots.ListParams.md): Parameters for `roots/list` (empty).

  - [MCP.Protocol.Messages.Roots.ListResult](MCP.Protocol.Messages.Roots.ListResult.md): Result of `roots/list`.

  - [MCP.Protocol.Messages.Sampling](MCP.Protocol.Messages.Sampling.md): Message types for `sampling/createMessage`.

  - [MCP.Protocol.Messages.Sampling.CreateMessageParams](MCP.Protocol.Messages.Sampling.CreateMessageParams.md): Parameters for `sampling/createMessage`.

  - [MCP.Protocol.Messages.Sampling.CreateMessageResult](MCP.Protocol.Messages.Sampling.CreateMessageResult.md): Result of `sampling/createMessage`.

  - [MCP.Protocol.Messages.Tools](MCP.Protocol.Messages.Tools.md): Message types for `tools/list` and `tools/call`.

  - [MCP.Protocol.Messages.Tools.CallParams](MCP.Protocol.Messages.Tools.CallParams.md): Parameters for `tools/call`.

  - [MCP.Protocol.Messages.Tools.CallResult](MCP.Protocol.Messages.Tools.CallResult.md): Result of `tools/call`.

  - [MCP.Protocol.Messages.Tools.ListParams](MCP.Protocol.Messages.Tools.ListParams.md): Parameters for `tools/list`.

  - [MCP.Protocol.Messages.Tools.ListResult](MCP.Protocol.Messages.Tools.ListResult.md): Result of `tools/list`.

- Types
  - [MCP.Protocol.Types.Annotations](MCP.Protocol.Types.Annotations.md): Content annotations describing audience, priority, and modification time.

  - [MCP.Protocol.Types.Content](MCP.Protocol.Types.Content.md): Polymorphic content types used in tool results, prompts, and resources.
  - [MCP.Protocol.Types.Content.AudioContent](MCP.Protocol.Types.Content.AudioContent.md): Base64-encoded audio content block.

  - [MCP.Protocol.Types.Content.EmbeddedResource](MCP.Protocol.Types.Content.EmbeddedResource.md): An embedded resource content block (type: "resource").

  - [MCP.Protocol.Types.Content.ImageContent](MCP.Protocol.Types.Content.ImageContent.md): Base64-encoded image content block.

  - [MCP.Protocol.Types.Content.ResourceLink](MCP.Protocol.Types.Content.ResourceLink.md): A link to a resource (type: "resource_link").

  - [MCP.Protocol.Types.Content.TextContent](MCP.Protocol.Types.Content.TextContent.md): Text content block.

  - [MCP.Protocol.Types.Icon](MCP.Protocol.Types.Icon.md): Icon for visual identification of tools, resources, prompts, etc.

  - [MCP.Protocol.Types.Implementation](MCP.Protocol.Types.Implementation.md): Identifies an MCP client or server implementation.

  - [MCP.Protocol.Types.ModelHint](MCP.Protocol.Types.ModelHint.md): A hint for model selection in sampling requests.

  - [MCP.Protocol.Types.ModelPreferences](MCP.Protocol.Types.ModelPreferences.md): Model selection preferences for sampling requests.

  - [MCP.Protocol.Types.Prompt](MCP.Protocol.Types.Prompt.md): An MCP prompt — a template for user interactions.

  - [MCP.Protocol.Types.PromptArgument](MCP.Protocol.Types.PromptArgument.md): An argument for an MCP prompt template.

  - [MCP.Protocol.Types.PromptMessage](MCP.Protocol.Types.PromptMessage.md): A message within a prompt result.

  - [MCP.Protocol.Types.Resource](MCP.Protocol.Types.Resource.md): An MCP resource — data or context available to the LLM.

  - [MCP.Protocol.Types.ResourceContents](MCP.Protocol.Types.ResourceContents.md): Contents of a resource, returned by resources/read.
  - [MCP.Protocol.Types.ResourceTemplate](MCP.Protocol.Types.ResourceTemplate.md): An MCP resource template — a URI template (RFC 6570) for dynamic resources.

  - [MCP.Protocol.Types.Root](MCP.Protocol.Types.Root.md): A filesystem root that a client exposes to servers.

  - [MCP.Protocol.Types.SamplingMessage](MCP.Protocol.Types.SamplingMessage.md): A message in a sampling request conversation.

  - [MCP.Protocol.Types.Tool](MCP.Protocol.Types.Tool.md): An MCP tool definition.
  - [MCP.Protocol.Types.ToolAnnotations](MCP.Protocol.Types.ToolAnnotations.md): Additional properties describing a tool's behavior.

- Transport
  - [MCP.Transport](MCP.Transport.md): Behaviour for MCP transports.
  - [MCP.Transport.SSE](MCP.Transport.SSE.md): Server-Sent Events (SSE) encoding and decoding utilities.
  - [MCP.Transport.Stdio](MCP.Transport.Stdio.md): Stdio transport for MCP.
  - [MCP.Transport.StreamableHTTP.Client](MCP.Transport.StreamableHTTP.Client.md): Streamable HTTP client transport for MCP.
  - [MCP.Transport.StreamableHTTP.Plug](MCP.Transport.StreamableHTTP.Plug.md): Plug endpoint for the MCP Streamable HTTP transport.
  - [MCP.Transport.StreamableHTTP.PreStarted](MCP.Transport.StreamableHTTP.PreStarted.md): A transport adapter that wraps an already-started transport process.
  - [MCP.Transport.StreamableHTTP.Server](MCP.Transport.StreamableHTTP.Server.md): Streamable HTTP server transport for MCP.

