# ex_mcp v1.0.0-rc.4 - Table of Contents

> Elixir implementation of MCP and ACP. Build MCP clients/servers with tools, resources, prompts over stdio, HTTP/SSE, and BEAM. Control coding agents via ACP with adapters for Claude Code, Codex, and more.

## GUIDES

- Introduction
  - [ExMCP](readme.md)

- Guides
  - [ExMCP User Guide](user_guide.md)
  - [Phoenix Integration Guide](phoenix_guide.md)
  - [ExMCP Server DSL Guide](dsl_guide.md)
  - [ExMCP Transport Guide](transport_guide.md)
  - [ExMCP Configuration Guide](configuration.md)
  - [ExMCP Security Guide](security.md)
  - [ExMCP Architecture Guide](architecture.md)
  - [ExMCP Development Guide](development.md)
  - [ExMCP Troubleshooting Guide](troubleshooting.md)
  - [ACP Guide](acp_guide.md)

- Changelog
  - [Changelog](changelog.md)

## Modules

- [ExMCP](ExMCP.md): ExMCP - Complete Elixir implementation of the Model Context Protocol.
- [ExMCP.ACP.AdapterEvents](ExMCP.ACP.AdapterEvents.md): Pure ACP event builders for agent adapters.

- [ExMCP.ACP.Adapters.ClaudeSDK.Mapper](ExMCP.ACP.Adapters.ClaudeSDK.Mapper.md): Pure Claude SDK message to ACP message mapping.

- [ExMCP.ACP.Adapters.ClaudeSDK.Protocol](ExMCP.ACP.Adapters.ClaudeSDK.Protocol.md): Pure helpers for Claude Code's SDK-flavoured stream-json protocol.
- [ExMCP.ACP.Adapters.ClaudeSDK.ToolInfo](ExMCP.ACP.Adapters.ClaudeSDK.ToolInfo.md): Pure Claude tool-use to ACP tool-call metadata conversion.

- [ExMCP.ACP.Adapters.Codex.Config](ExMCP.ACP.Adapters.Codex.Config.md): Pure config and mode helpers for the Codex ACP adapter.

- [ExMCP.ACP.Adapters.Codex.Events](ExMCP.ACP.Adapters.Codex.Events.md): Pure event-mapping helpers for the Codex ACP adapter.

- [ExMCP.ACP.Adapters.Codex.Sessions](ExMCP.ACP.Adapters.Codex.Sessions.md): Pure session and thread helpers for the Codex ACP adapter.

- [ExMCP.ACP.Adapters.Codex.SlashCommands](ExMCP.ACP.Adapters.Codex.SlashCommands.md): Pure slash-command parsing helpers for the Codex ACP adapter.

- [ExMCP.ACP.Agent.Transport](ExMCP.ACP.Agent.Transport.md): Transport behaviour for ACP agent runtimes.
- [ExMCP.ACP.Agent.Transport.Memory](ExMCP.ACP.Agent.Transport.Memory.md): In-memory ACP transport for tests and local integration.
- [ExMCP.ACP.Agent.Transport.Stdio](ExMCP.ACP.Agent.Transport.Stdio.md): Server-side stdio transport for ACP agents.
- [ExMCP.ACP.Capabilities](ExMCP.ACP.Capabilities.md): Pure helpers for ACP capability maps.
- [ExMCP.ACP.Envelope](ExMCP.ACP.Envelope.md): Pure JSON-RPC 2.0 envelope builders for ACP messages.
- [ExMCP.ACP.LifecycleParams](ExMCP.ACP.LifecycleParams.md): Pure normalization and validation for ACP session lifecycle parameters.

- [ExMCP.ACP.Maps](ExMCP.ACP.Maps.md): Small pure map helpers used by ACP protocol, client, agent, and adapters.
- [ExMCP.ACP.Meta](ExMCP.ACP.Meta.md): Pure helpers for ACP `_meta` extension placement.

- [ExMCP.ACP.NameValue](ExMCP.ACP.NameValue.md): Pure normalizers for ACP name/value list shapes.

- [ExMCP.ACP.PromptQueue](ExMCP.ACP.PromptQueue.md): Small functional queue core for ACP adapter prompt backlogs.

- [ExMCP.Approval](ExMCP.Approval.md): Behaviour for implementing approval handlers in MCP clients.
- [ExMCP.Authorization](ExMCP.Authorization.md): MCP Authorization support for OAuth 2.1 with PKCE.
- [ExMCP.Authorization.AuthorizationServerMetadata](ExMCP.Authorization.AuthorizationServerMetadata.md): OAuth 2.1 Authorization Server Metadata Discovery (RFC 8414).
- [ExMCP.Authorization.ClientAssertion](ExMCP.Authorization.ClientAssertion.md): RFC 7523 Section 2.2 — JWT client assertions for `private_key_jwt` authentication.
- [ExMCP.Authorization.ClientIdMetadata](ExMCP.Authorization.ClientIdMetadata.md): OAuth Client ID Metadata Document support for MCP authorization.
- [ExMCP.Authorization.ClientRegistration](ExMCP.Authorization.ClientRegistration.md): This module implements the standard MCP specification.
- [ExMCP.Authorization.DiscoveryFlow](ExMCP.Authorization.DiscoveryFlow.md): Full 401 -> discovery -> auth orchestrator for MCP OAuth.
- [ExMCP.Authorization.EnterpriseFlow](ExMCP.Authorization.EnterpriseFlow.md): Client-side enterprise SSO orchestrator for MCP.
- [ExMCP.Authorization.ErrorHandler](ExMCP.Authorization.ErrorHandler.md): Handles authorization-related errors and triggers appropriate OAuth flows.
- [ExMCP.Authorization.FullOAuthFlow](ExMCP.Authorization.FullOAuthFlow.md): Full OAuth 2.1 authorization code flow with PKCE for MCP.
- [ExMCP.Authorization.HTTPClient](ExMCP.Authorization.HTTPClient.md): HTTP client functionality for OAuth 2.1 requests.
- [ExMCP.Authorization.IdJag](ExMCP.Authorization.IdJag.md): ID-JAG (Identity JWT Authorization Grant) creation and validation.
- [ExMCP.Authorization.IdJagHandler](ExMCP.Authorization.IdJagHandler.md): Server-side handler for processing ID-JAG tokens in JWT bearer grants.
- [ExMCP.Authorization.Interceptor](ExMCP.Authorization.Interceptor.md): Request interceptor that automatically adds authorization headers.
- [ExMCP.Authorization.JWT](ExMCP.Authorization.JWT.md): General-purpose JWT module wrapping JOSE for MCP authorization.
- [ExMCP.Authorization.JWTBearerAssertion](ExMCP.Authorization.JWTBearerAssertion.md): RFC 7523 Section 2.1 — JWT Bearer Grant.
- [ExMCP.Authorization.OAuthFlow](ExMCP.Authorization.OAuthFlow.md): OAuth 2.1 flow implementations for MCP authorization.
- [ExMCP.Authorization.OIDCDiscovery](ExMCP.Authorization.OIDCDiscovery.md): OpenID Connect Discovery support for MCP authorization.
- [ExMCP.Authorization.PKCE](ExMCP.Authorization.PKCE.md): PKCE (Proof Key for Code Exchange) implementation for OAuth 2.1.
- [ExMCP.Authorization.ProtectedResourceMetadata](ExMCP.Authorization.ProtectedResourceMetadata.md): OAuth 2.0 Protected Resource Metadata Discovery (RFC 9728 - Draft).
- [ExMCP.Authorization.Provider](ExMCP.Authorization.Provider.md): Behaviour for pluggable OAuth/auth providers in MCP transports.
- [ExMCP.Authorization.Provider.OAuth](ExMCP.Authorization.Provider.OAuth.md): OAuth 2.1 authorization provider with PKCE, PRM discovery, and scope step-up.
- [ExMCP.Authorization.Provider.Static](ExMCP.Authorization.Provider.Static.md): Static token provider for pre-existing bearer tokens.
- [ExMCP.Authorization.ScopeValidator](ExMCP.Authorization.ScopeValidator.md): Maps MCP operations to required OAuth scopes and validates them.
- [ExMCP.Authorization.ServerConfig](ExMCP.Authorization.ServerConfig.md): Centralized configuration management for OAuth 2.1 authorization server settings.
- [ExMCP.Authorization.ServerGuard](ExMCP.Authorization.ServerGuard.md): OAuth 2.1 Resource Server guard for validating bearer tokens.
- [ExMCP.Authorization.TokenExchange](ExMCP.Authorization.TokenExchange.md): RFC 8693 Token Exchange implementation.
- [ExMCP.Authorization.TokenManager](ExMCP.Authorization.TokenManager.md): Manages OAuth tokens with automatic refresh and expiration tracking.
- [ExMCP.Authorization.TokenRevocation](ExMCP.Authorization.TokenRevocation.md): Client-side OAuth 2.0 Token Revocation (RFC 7009).
- [ExMCP.Authorization.Validator](ExMCP.Authorization.Validator.md): Validation functions for OAuth 2.1 parameters and endpoints.
- [ExMCP.Client.CallbackHandler](ExMCP.Client.CallbackHandler.md): Callback-based handler for MCP client events.
- [ExMCP.Client.ConnectionManager](ExMCP.Client.ConnectionManager.md): Connection lifecycle management for ExMCP client.
- [ExMCP.Client.DefaultHandler](ExMCP.Client.DefaultHandler.md): This module provides ExMCP extensions beyond the standard MCP specification.
- [ExMCP.Client.ElicitationHandler](ExMCP.Client.ElicitationHandler.md): Default elicitation handler for MCP clients.
- [ExMCP.Client.Error](ExMCP.Client.Error.md): Enhanced error formatting and actionable guidance for MCP.
- [ExMCP.Client.Handler](ExMCP.Client.Handler.md): This module implements the standard MCP specification.
- [ExMCP.Client.InteractiveHandler](ExMCP.Client.InteractiveHandler.md): Interactive terminal handler for MCP client events.
- [ExMCP.Client.Middleware](ExMCP.Client.Middleware.md): Middleware pipeline for cross-cutting concerns in the ExMCP client.
- [ExMCP.Client.Operations.Prompts](ExMCP.Client.Operations.Prompts.md): Prompt operations for ExMCP client.
- [ExMCP.Client.Operations.Resources](ExMCP.Client.Operations.Resources.md): Resource operations for ExMCP client.
- [ExMCP.Client.Operations.Tools](ExMCP.Client.Operations.Tools.md): Tool operations for ExMCP client.
- [ExMCP.Client.RequestHandler](ExMCP.Client.RequestHandler.md): Request/response processing for ExMCP client.
- [ExMCP.Client.Response](ExMCP.Client.Response.md): Response normalization and transformation utilities for MCP.
- [ExMCP.Client.StateMachine](ExMCP.Client.StateMachine.md): GenStateMachine implementation for ExMCP.Client.
- [ExMCP.Client.States](ExMCP.Client.States.md): State-specific data structures for the ExMCP client state machine.
- [ExMCP.Client.States.Common](ExMCP.Client.States.Common.md): Common data shared across all states.

- [ExMCP.Client.States.Connecting](ExMCP.Client.States.Connecting.md): State data for connecting state.

- [ExMCP.Client.States.Disconnected](ExMCP.Client.States.Disconnected.md): State data for disconnected state.

- [ExMCP.Client.States.Handshaking](ExMCP.Client.States.Handshaking.md): State data for handshaking state.

- [ExMCP.Client.States.Ready](ExMCP.Client.States.Ready.md): State data for ready state.

- [ExMCP.Client.States.Reconnecting](ExMCP.Client.States.Reconnecting.md): State data for reconnecting state.

- [ExMCP.Client.Transitions](ExMCP.Client.Transitions.md): State transition logic and guards for the ExMCP client state machine.
- [ExMCP.Client.Types](ExMCP.Client.Types.md): Shared type definitions for ExMCP.Client modules.
- [ExMCP.ClientConfig](ExMCP.ClientConfig.md): Configuration builder for ExMCP clients.
- [ExMCP.ConsentHandler](ExMCP.ConsentHandler.md): A behaviour for handling user consent for accessing external resources.

- [ExMCP.ConsentHandler.CLI](ExMCP.ConsentHandler.CLI.md): A consent handler that prompts the user for consent via the command line.
Suitable for interactive `stdio` transport sessions.

- [ExMCP.ConsentHandler.Deny](ExMCP.ConsentHandler.Deny.md): A consent handler that denies all requests for external resource access.
This is the default, production-safe handler.

- [ExMCP.ConsentHandler.Web](ExMCP.ConsentHandler.Web.md): A consent handler for web applications.
- [ExMCP.Content](ExMCP.Content.md): Content handling utilities for MCP messages.
- [ExMCP.Content.Builders](ExMCP.Content.Builders.md): Smart constructors and builder patterns for ExMCP content creation.
- [ExMCP.Content.Protocol](ExMCP.Content.Protocol.md): Content protocol for ExMCP - type-safe content handling system.
- [ExMCP.Content.Sanitizer](ExMCP.Content.Sanitizer.md): Content sanitization utilities for MCP content.
- [ExMCP.Content.SchemaValidator](ExMCP.Content.SchemaValidator.md): Schema validation for MCP content.
- [ExMCP.Content.SecurityScanner](ExMCP.Content.SecurityScanner.md): Security scanning utilities for MCP content.
- [ExMCP.Content.Transformer](ExMCP.Content.Transformer.md): Content transformation utilities for MCP content.
- [ExMCP.Content.Validation](ExMCP.Content.Validation.md): Content validation and transformation utilities for ExMCP.
- [ExMCP.Content.ValidatorRegistry](ExMCP.Content.ValidatorRegistry.md): GenServer-based validator registry that replaces Process dictionary usage.
- [ExMCP.FeatureFlags](ExMCP.FeatureFlags.md): Feature flag system for controlling rollout of new MCP features.
- [ExMCP.Helpers](ExMCP.Helpers.md): Helper macros and functions for common MCP patterns in ExMCP.
- [ExMCP.HttpPlug](ExMCP.HttpPlug.md): HTTP Plug for MCP (Model Context Protocol) requests.
Compatible with Phoenix and Cowboy servers.
- [ExMCP.HttpPlug.Core](ExMCP.HttpPlug.Core.md): Pure request/response decisions for `ExMCP.HttpPlug`.
- [ExMCP.HttpPlug.SSEHandler](ExMCP.HttpPlug.SSEHandler.md): Server-Sent Events handler with backpressure control.
- [ExMCP.Internal.AtomUtils](ExMCP.Internal.AtomUtils.md): Internal utilities for safe atom handling.
- [ExMCP.Internal.Authorization.PKCE](ExMCP.Internal.Authorization.PKCE.md): This module implements the standard MCP specification.
- [ExMCP.Internal.ConsentCache](ExMCP.Internal.ConsentCache.md): A GenServer and ETS-based cache for user consent decisions.

- [ExMCP.Internal.MapBuilder](ExMCP.Internal.MapBuilder.md): Small pipe-friendly helpers for building protocol maps.
- [ExMCP.Internal.SecurityConfig](ExMCP.Internal.SecurityConfig.md): Centralized security configuration management with validation.
- [ExMCP.MessageProcessor](ExMCP.MessageProcessor.md): Core message processing abstraction for ExMCP.
- [ExMCP.MessageProcessor.Conn](ExMCP.MessageProcessor.Conn.md): Connection struct representing an MCP message processing context.

- [ExMCP.Plugs.DnsRebinding](ExMCP.Plugs.DnsRebinding.md): Plug for DNS rebinding protection.
- [ExMCP.Plugs.JWKS](ExMCP.Plugs.JWKS.md): Serves a JSON Web Key Set (JWKS) for token signature verification.
- [ExMCP.Plugs.ProtectedResourceMetadata](ExMCP.Plugs.ProtectedResourceMetadata.md): Serves Protected Resource Metadata per RFC 9728.
- [ExMCP.Plugs.ProtocolVersion](ExMCP.Plugs.ProtocolVersion.md): Plug for validating and extracting the MCP-Protocol-Version header.
- [ExMCP.Plugs.TokenIntrospection](ExMCP.Plugs.TokenIntrospection.md): Server-side token introspection endpoint (RFC 7662).
- [ExMCP.Plugs.TokenRevocation](ExMCP.Plugs.TokenRevocation.md): Server-side token revocation endpoint (RFC 7009).
- [ExMCP.ProgressTracker](ExMCP.ProgressTracker.md): Progress tracking for MCP 2025-06-18 specification compliance.
- [ExMCP.Registry](ExMCP.Registry.md): Registry for managing tools, resources, and prompts in ExMCP.
- [ExMCP.Reliability](ExMCP.Reliability.md): Convenience functions for reliability features.
- [ExMCP.Reliability.CircuitBreaker](ExMCP.Reliability.CircuitBreaker.md): Circuit breaker GenServer wrapper.
- [ExMCP.Reliability.CircuitBreaker.Core](ExMCP.Reliability.CircuitBreaker.Core.md): Pure circuit-breaker state machine used by `ExMCP.Reliability.CircuitBreaker`.

- [ExMCP.Reliability.HealthCheck](ExMCP.Reliability.HealthCheck.md): Health check system for MCP clients and servers.
- [ExMCP.Reliability.Retry](ExMCP.Reliability.Retry.md): Retry logic with exponential backoff for MCP operations.
- [ExMCP.Reliability.Supervisor](ExMCP.Reliability.Supervisor.md): Supervisor for reliability components in ExMCP.
- [ExMCP.Reliability.Supervisor.ClientWrapper](ExMCP.Reliability.Supervisor.ClientWrapper.md): Wrapper process that integrates reliability features for MCP clients.
- [ExMCP.Response](ExMCP.Response.md): Structured response types for MCP operations.
- [ExMCP.Security.CORS](ExMCP.Security.CORS.md): Handles Cross-Origin Resource Sharing (CORS) logic.
- [ExMCP.Security.Consent](ExMCP.Security.Consent.md): Manages user consent for various operations.
- [ExMCP.Security.TokenHandler](ExMCP.Security.TokenHandler.md): Handles token processing and sanitization of requests.
- [ExMCP.Security.Validation](ExMCP.Security.Validation.md): Handles request and response validation, including transport layer security configurations.
- [ExMCP.Server.Capabilities](ExMCP.Server.Capabilities.md): Helper module to build server capabilities.
- [ExMCP.Server.DSL](ExMCP.Server.DSL.md): Modern DSL for defining MCP server primitives next to their handlers.
- [ExMCP.Server.DSL.Result](ExMCP.Server.DSL.Result.md): Response helpers for the modern server DSL.

- [ExMCP.Server.Handler.Echo](ExMCP.Server.Handler.Echo.md): This module provides ExMCP extensions beyond the standard MCP specification.
- [ExMCP.Server.HandlerServer](ExMCP.Server.HandlerServer.md): Transport-aware process for `ExMCP.Server.Handler` modules.
- [ExMCP.Server.SSESession](ExMCP.Server.SSESession.md): Server-side SSE session manager for bidirectional MCP communication.
- [ExMCP.Server.StdioServer](ExMCP.Server.StdioServer.md): STDIO transport server for MCP protocol.
- [ExMCP.Server.Tools](ExMCP.Server.Tools.md): DSL for defining MCP tools in server handlers.
- [ExMCP.Server.Tools.ASTValidator](ExMCP.Server.Tools.ASTValidator.md): Validates AST nodes to ensure they are safe for evaluation.
- [ExMCP.Server.Tools.Builder](ExMCP.Server.Tools.Builder.md): Simplified tool builder that reduces metaprogramming complexity.
- [ExMCP.Server.Tools.Builder.Tool](ExMCP.Server.Tools.Builder.Tool.md): Runtime representation of a tool definition.

- [ExMCP.Server.Tools.Helpers](ExMCP.Server.Tools.Helpers.md): Helper functions for building tool responses and working with schemas.
- [ExMCP.Server.Tools.Registry](ExMCP.Server.Tools.Registry.md): Runtime tool registry that manages tool definitions and handlers.
- [ExMCP.Server.Tools.ResponseNormalizer](ExMCP.Server.Tools.ResponseNormalizer.md): Normalizes tool responses to comply with MCP specification.
- [ExMCP.Server.Tools.Simplified](ExMCP.Server.Tools.Simplified.md): Simplified tool definition DSL that reduces metaprogramming complexity.
- [ExMCP.Server.Transport](ExMCP.Server.Transport.md): Transport configuration and lifecycle management for ExMCP servers.
- [ExMCP.SessionManager](ExMCP.SessionManager.md): Session management for streamable HTTP connections.
- [ExMCP.SpecSync.FileMapper](ExMCP.SpecSync.FileMapper.md): Maps GitHub paths to local paths for MCP specification files.
- [ExMCP.SpecSync.GitHubClient](ExMCP.SpecSync.GitHubClient.md): GitHub API client for fetching MCP specification files.
- [ExMCP.SpecSync.Metadata](ExMCP.SpecSync.Metadata.md): Manages sync metadata for MCP specification files.
- [ExMCP.StdioLauncher](ExMCP.StdioLauncher.md): Launcher module for STDIO servers that handles Mix.install output.
- [ExMCP.Tasks.Task](ExMCP.Tasks.Task.md): Task struct and state machine validation for MCP Tasks (2025-11-25).
- [ExMCP.Telemetry](ExMCP.Telemetry.md): Telemetry integration for ExMCP.
- [ExMCP.TestCase](ExMCP.TestCase.md): Custom test case for ExMCP with MCP-specific testing utilities.
- [ExMCP.Testing.Assertions](ExMCP.Testing.Assertions.md): Custom assertions for MCP protocol testing.
- [ExMCP.Testing.Builders](ExMCP.Testing.Builders.md): Test data builders and generators for ExMCP.
- [ExMCP.Testing.MockServer](ExMCP.Testing.MockServer.md): Mock MCP server implementation for testing.
- [ExMCP.Testing.MockTransport](ExMCP.Testing.MockTransport.md): Mock transport implementation that connects to MockServer.
- [ExMCP.Testing.SchemaGenerator](ExMCP.Testing.SchemaGenerator.md): Generates valid test values from JSON Schema definitions.
- [ExMCP.Transport.Error](ExMCP.Transport.Error.md): Standardized error handling for MCP transports.
- [ExMCP.Transport.HTTPServer](ExMCP.Transport.HTTPServer.md):   HTTP server transport for MCP with security and CORS support.
- [ExMCP.Transport.HTTPServerWithVersion](ExMCP.Transport.HTTPServerWithVersion.md): Example HTTP server configuration that includes protocol version validation.
- [ExMCP.Transport.Local](ExMCP.Transport.Local.md): Local BEAM transport for ExMCP.
- [ExMCP.Transport.ReliabilityWrapper](ExMCP.Transport.ReliabilityWrapper.md): Transport wrapper that adds circuit breaker protection to any MCP transport.
- [ExMCP.Transport.SecurityError](ExMCP.Transport.SecurityError.md): Standardized security error handling across transports.
- [ExMCP.Transport.SecurityGuard](ExMCP.Transport.SecurityGuard.md): Transport-layer security interceptor that enforces MCP security policies.
- [ExMCP.Transport.Test](ExMCP.Transport.Test.md): In-memory transport for testing purposes.
- [ExMCP.TransportManager](ExMCP.TransportManager.md): Transport abstraction layer with fallback mechanisms.
- [ExMCP.Types.V20241105](ExMCP.Types.V20241105.md): Type definitions for MCP protocol version 2024-11-05.
- [ExMCP.Types.V20250326](ExMCP.Types.V20250326.md): Type definitions for MCP protocol version 2025-03-26.
- [ExMCP.Types.V20250618](ExMCP.Types.V20250618.md): Type definitions for MCP protocol version 2025-06-18.
- [ExMCP.Types.V20251125](ExMCP.Types.V20251125.md): Type definitions for MCP protocol version 2025-11-25.
- [ExMCP.Validation.ToolName](ExMCP.Validation.ToolName.md): Validates MCP tool names according to the 2025-11-25 specification.
- [ExMcp.Test.Support.Transports](ExMcp.Test.Support.Transports.md): Test support module for transport-related testing utilities.
- [ExMcp.Test.Support.Transports.Beam](ExMcp.Test.Support.Transports.Beam.md): BEAM transport test helper with SecurityGuard integration.
- [ExMcp.Test.Support.Transports.Http](ExMcp.Test.Support.Transports.Http.md): HTTP transport test helper with SecurityGuard integration.
- [ExMcp.Test.Support.Transports.Stdio](ExMcp.Test.Support.Transports.Stdio.md): Stdio transport test helper with SecurityGuard integration.

- MCP Specification
  - [ExMCP.Protocol.ErrorCodes](ExMCP.Protocol.ErrorCodes.md): JSON-RPC 2.0 and MCP-specific error codes.
  - [ExMCP.Protocol.RequestProcessor](ExMCP.Protocol.RequestProcessor.md): Processes JSON-RPC requests for MCP servers.
  - [ExMCP.Protocol.RequestTracker](ExMCP.Protocol.RequestTracker.md): Manages tracking of pending requests and cancellations for MCP servers.
  - [ExMCP.Protocol.ResponseBuilder](ExMCP.Protocol.ResponseBuilder.md): Utility module for building JSON-RPC 2.0 responses in MCP.
  - [ExMCP.Protocol.VersionNegotiator](ExMCP.Protocol.VersionNegotiator.md): Handles protocol version negotiation during the MCP initialization phase.
  - [ExMCP.Server](ExMCP.Server.md): Public server-side helpers for running MCP servers.
  - [ExMCP.Server.Handler](ExMCP.Server.Handler.md): This module implements the standard MCP specification.
  - [ExMCP.Types](ExMCP.Types.md): Type definitions for the Model Context Protocol.

- MCP Transports
  - [ExMCP.Transport](ExMCP.Transport.md): Behaviour definition for MCP transport implementations.
  - [ExMCP.Transport.HTTP](ExMCP.Transport.HTTP.md): This module implements the standard MCP specification.
  - [ExMCP.Transport.SSEClient](ExMCP.Transport.SSEClient.md): Server-Sent Events client for the Streamable HTTP transport.
  - [ExMCP.Transport.Stdio](ExMCP.Transport.Stdio.md): This module implements the standard MCP specification.

- MCP + Extensions
  - [ExMCP.Client](ExMCP.Client.md): Unified MCP client combining the best features of all implementations.

- Agent Client Protocol (ACP)
  - [ExMCP.ACP](ExMCP.ACP.md): Facade for the Agent Client Protocol (ACP).
  - [ExMCP.ACP.Adapter](ExMCP.ACP.Adapter.md): Behaviour for adapting non-native CLI agents to ACP.
  - [ExMCP.ACP.AdapterBridge](ExMCP.ACP.AdapterBridge.md): GenServer bridge between ACP clients and non-native CLI agents.
  - [ExMCP.ACP.AdapterTransport](ExMCP.ACP.AdapterTransport.md): `ExMCP.Transport` implementation that delegates to an `AdapterBridge`.
  - [ExMCP.ACP.Adapters.ClaudeSDK](ExMCP.ACP.Adapters.ClaudeSDK.md): Adapter for Claude Code using the Claude Agent SDK process protocol.
  - [ExMCP.ACP.Adapters.ClaudeSDK.SessionStore](ExMCP.ACP.Adapters.ClaudeSDK.SessionStore.md): Pure helpers for Claude Code's SDK session store.
  - [ExMCP.ACP.Adapters.Codex](ExMCP.ACP.Adapters.Codex.md): Adapter for Codex CLI using `codex app-server` persistent mode.
  - [ExMCP.ACP.Adapters.Pi](ExMCP.ACP.Adapters.Pi.md): ACP adapter for the Pi coding agent.
  - [ExMCP.ACP.Agent](ExMCP.ACP.Agent.md): Runtime for building native Elixir Agent Client Protocol agents.
  - [ExMCP.ACP.Agent.Handler](ExMCP.ACP.Agent.Handler.md): Behaviour for native Elixir ACP agents.
  - [ExMCP.ACP.Client](ExMCP.ACP.Client.md): GenServer client for the Agent Client Protocol (ACP).
  - [ExMCP.ACP.Client.DefaultHandler](ExMCP.ACP.Client.DefaultHandler.md): Default ACP handler that collects events and denies permissions.
  - [ExMCP.ACP.Client.Handler](ExMCP.ACP.Client.Handler.md): Behaviour for handling ACP session events and agent requests.
  - [ExMCP.ACP.Protocol](ExMCP.ACP.Protocol.md): ACP-specific message encoding.
  - [ExMCP.ACP.Registry](ExMCP.ACP.Registry.md): Helpers for the public ACP agent registry.
  - [ExMCP.ACP.Types](ExMCP.ACP.Types.md): Type specifications and builder functions for the Agent Client Protocol (ACP).

- Exceptions
  - [ExMCP.ClientError](ExMCP.ClientError.md): Raised when client operations fail
  - [ExMCP.ConnectionError](ExMCP.ConnectionError.md): Raised when MCP connection fails
  - [ExMCP.Error](ExMCP.Error.md): Error types and utilities for ExMCP.
  - [ExMCP.Error.ProtocolError](ExMCP.Error.ProtocolError.md): Errors related to MCP protocol violations.

  - [ExMCP.Error.ResourceError](ExMCP.Error.ResourceError.md): Errors that occur during resource operations.

  - [ExMCP.Error.ToolError](ExMCP.Error.ToolError.md): Errors that occur during tool execution.

  - [ExMCP.Error.TransportError](ExMCP.Error.TransportError.md): Errors related to transport layer issues.

  - [ExMCP.Error.ValidationError](ExMCP.Error.ValidationError.md): Errors related to input validation.

  - [ExMCP.PromptError](ExMCP.PromptError.md): Raised when prompt operations fail
  - [ExMCP.ResourceError](ExMCP.ResourceError.md): Raised when resource operations fail
  - [ExMCP.ToolError](ExMCP.ToolError.md): Raised when tool operations fail

## Mix Tasks

- [mix acp.everything_agent](Mix.Tasks.Acp.EverythingAgent.md): Runs an ACP agent that exercises the stable protocol surface for interop tests.
- [mix acp.interop_agent](Mix.Tasks.Acp.InteropAgent.md): Runs a minimal stdio ACP agent for cross-language interop tests.
- [mix check_skip_tags](Mix.Tasks.CheckSkipTags.md): Checks test files for @tag :skip annotations.
- [mix interop_server](Mix.Tasks.InteropServer.md): Mix task to run a stdio MCP server for interop testing.
- [mix mcp.sync_spec](Mix.Tasks.Mcp.SyncSpec.md): Syncs MCP specification documentation from the upstream GitHub repository.
- [mix stdio_server](Mix.Tasks.StdioServer.md): Mix task to run a stdio MCP server for testing and development.
- [mix test.cleanup](Mix.Tasks.Test.Cleanup.md): Cleans up stray processes and ports left over from crashed tests.
- [mix test.suite](Mix.Tasks.Test.Suite.md): Run specific test suites for ExMCP.
- [mix test.tags](Mix.Tasks.Test.Tags.md): List and describe test tags used in ExMCP.

