# ConduitMCP v0.10.1 - API Reference

## Modules

- [ConduitMcp.Application](ConduitMcp.Application.md): OTP application for ConduitMCP.
- [ConduitMcp.Cancellation.Owner](ConduitMcp.Cancellation.Owner.md): Long-lived process that owns the `:conduit_mcp_cancellations` ETS
table so concurrent Bandit request handlers don't race on
`:ets.new/2` when the table doesn't exist yet (each handler calls
`Cancellation.clear/1` from a `try/after`). Started under
`ConduitMcp.Supervisor` by `ConduitMcp.Application`.

- [ConduitMcp.OAuth.KeyProvider.JWKS.Owner](ConduitMcp.OAuth.KeyProvider.JWKS.Owner.md): Long-lived process that owns the `:conduit_mcp_jwks_cache` ETS table so
the JWKS cache survives — and stays stable under concurrency — across
short-lived Bandit request processes. Started under `ConduitMcp.Supervisor`
by `ConduitMcp.Application` whenever this provider module is available.
- [ConduitMcp.Tasks.EtsStore.Owner](ConduitMcp.Tasks.EtsStore.Owner.md): Long-lived process that owns the `:conduit_mcp_tasks` ETS table so
the table outlives short-lived request handlers. Started under
`ConduitMcp.Supervisor` by `ConduitMcp.Application` when the
configured tasks store is the default `ConduitMcp.Tasks.EtsStore`.

- 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 &amp; Handler
  - [ConduitMcp.Cancellation](ConduitMcp.Cancellation.md): Cooperative request cancellation for long-running tools.
  - [ConduitMcp.Errors](ConduitMcp.Errors.md): Standard error codes for MCP and JSON-RPC 2.0 responses.
  - [ConduitMcp.Handler](ConduitMcp.Handler.md): Routes JSON-RPC 2.0 MCP requests to a server module's behaviour callbacks.
  - [ConduitMcp.Protocol](ConduitMcp.Protocol.md): JSON-RPC 2.0 message construction and MCP protocol version negotiation.

- 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.

- Security
  - [ConduitMcp.Plugs.OriginValidation](ConduitMcp.Plugs.OriginValidation.md): Plug that validates the `Origin` request header against an allowlist.
  - [ConduitMcp.Plugs.SecurityHeaders](ConduitMcp.Plugs.SecurityHeaders.md): Plug that adds standard security response headers to all responses.

- Sessions
  - [ConduitMcp.Session](ConduitMcp.Session.md): Session management facade for MCP protocol sessions.
  - [ConduitMcp.Session.EtsStore](ConduitMcp.Session.EtsStore.md): Default in-memory session store backed by a public, named ETS table.
  - [ConduitMcp.Session.Janitor](ConduitMcp.Session.Janitor.md): Periodically prunes expired sessions from a `ConduitMcp.Session.Store`.
  - [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).
  - [ConduitMcp.Tasks.EtsStore](ConduitMcp.Tasks.EtsStore.md): ETS-backed task store. Default implementation of `ConduitMcp.Tasks.Store`.
  - [ConduitMcp.Tasks.Janitor](ConduitMcp.Tasks.Janitor.md): Periodically prunes terminal-state tasks from `ConduitMcp.Tasks`.
  - [ConduitMcp.Tasks.Store](ConduitMcp.Tasks.Store.md): Behaviour for pluggable task storage backends.

- 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.

