# ConduitMCP v0.9.0 - Table of Contents Elixir implementation of the Model Context Protocol (MCP) specification. Build MCP servers to expose tools, resources, and prompts to LLM applications like Claude Desktop and VS Code extensions. Supports both Streamable HTTP and SSE transports with configurable authentication and CORS. ## Pages - [README](readme.md) - Changelog - [Changelog](changelog.md) - Getting Started - [Choosing a Mode](choosing_a_mode.md) - [Endpoint Mode](endpoint_mode.md) - [DSL Mode](dsl_mode.md) - [Manual Mode](manual_mode.md) - Features - [Authentication](authentication.md) - [Rate Limiting](rate_limiting.md) - [Multi-Node Session Stores](multi_node_sessions.md) - [Using Oban for MCP Tasks](oban_tasks.md) - [MCP Apps](mcp_apps.md) ## Modules - Core - [ConduitMcp](ConduitMcp.md): ConduitMCP - Elixir implementation of the Model Context Protocol (MCP). - [ConduitMcp.DSL](ConduitMcp.DSL.md): DSL for defining MCP servers with a clean, declarative syntax. - [ConduitMcp.DSL.Helpers](ConduitMcp.DSL.Helpers.md): Helper macros for building MCP responses in the DSL. - [ConduitMcp.DSL.SchemaBuilder](ConduitMcp.DSL.SchemaBuilder.md): Builds JSON Schema and NimbleOptions schemas from DSL parameter definitions. - [ConduitMcp.Server](ConduitMcp.Server.md): Behaviour for implementing stateless MCP servers. - Endpoint Mode - [ConduitMcp.Component](ConduitMcp.Component.md): Behaviour for defining individual MCP tools, resources, and prompts as separate modules. - [ConduitMcp.Component.Schema](ConduitMcp.Component.Schema.md): Schema DSL for defining parameters in Component modules. - [ConduitMcp.Endpoint](ConduitMcp.Endpoint.md): Aggregates `ConduitMcp.Component` modules into a full MCP server. - Protocol & Handler - [ConduitMcp.Errors](ConduitMcp.Errors.md): Standard error codes for MCP and JSON-RPC 2.0 responses. - [ConduitMcp.Handler](ConduitMcp.Handler.md): Handles MCP protocol requests and routes them to the appropriate server callbacks. - [ConduitMcp.Protocol](ConduitMcp.Protocol.md): Core MCP (Model Context Protocol) definitions and message handling. Based on specification version 2025-11-25. - Transport - [ConduitMcp.Transport.SSE](ConduitMcp.Transport.SSE.md): Server-Sent Events (SSE) transport layer for MCP. - [ConduitMcp.Transport.StreamableHTTP](ConduitMcp.Transport.StreamableHTTP.md): Streamable HTTP transport for MCP (recommended). - Authentication - [ConduitMcp.OAuth.KeyProvider](ConduitMcp.OAuth.KeyProvider.md): Behaviour for pluggable JWKS key providers. - [ConduitMcp.OAuth.KeyProvider.JWKS](ConduitMcp.OAuth.KeyProvider.JWKS.md): JWKS key provider that fetches keys from an HTTP endpoint with ETS caching. - [ConduitMcp.OAuth.KeyProvider.Static](ConduitMcp.OAuth.KeyProvider.Static.md): Static key provider for testing and development. - [ConduitMcp.OAuth.ResourceMetadata](ConduitMcp.OAuth.ResourceMetadata.md): Generates OAuth 2.0 Protected Resource Metadata (RFC 9728) for MCP servers. - [ConduitMcp.Plugs.Auth](ConduitMcp.Plugs.Auth.md): Authentication plug for MCP servers. - [ConduitMcp.Plugs.OAuth](ConduitMcp.Plugs.OAuth.md): OAuth 2.1 authentication plug for MCP servers. - Rate Limiting - [ConduitMcp.Plugs.MessageRateLimit](ConduitMcp.Plugs.MessageRateLimit.md): Message-level rate limiting plug for MCP servers. - [ConduitMcp.Plugs.RateLimit](ConduitMcp.Plugs.RateLimit.md): Rate limiting plug for MCP servers. - Sessions - [ConduitMcp.Session](ConduitMcp.Session.md): Session management facade for MCP protocol sessions. - [ConduitMcp.Session.EtsStore](ConduitMcp.Session.EtsStore.md): Default ETS-based session store. Zero-dependency, works out of the box. - [ConduitMcp.Session.Store](ConduitMcp.Session.Store.md): Behaviour for pluggable session storage backends. - Tasks - [ConduitMcp.Tasks](ConduitMcp.Tasks.md): Task management for long-running MCP operations (experimental). - Client - [ConduitMcp.Client](ConduitMcp.Client.md): Server-to-client request helpers for bidirectional MCP communication. - Validation - [ConduitMcp.Validation](ConduitMcp.Validation.md): Runtime parameter validation using NimbleOptions. - [ConduitMcp.Validation.SchemaConverter](ConduitMcp.Validation.SchemaConverter.md): Converts DSL parameter definitions to NimbleOptions validation schemas. - [ConduitMcp.Validation.Validators](ConduitMcp.Validation.Validators.md): Common validation functions for use with the ConduitMCP DSL. - Observability - [ConduitMcp.PromEx](ConduitMcp.PromEx.md): A PromEx plugin for monitoring ConduitMCP operations. - [ConduitMcp.Telemetry](ConduitMcp.Telemetry.md): Telemetry integration for ConduitMCP. ## Mix Tasks - [mix bench](Mix.Tasks.Bench.md): Runs ConduitMCP benchmarks.