# MCP Elixir SDK v1.0.1 - 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) - [Onboarding](onboarding.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.