Modules
ConduitMCP - Elixir implementation of the Model Context Protocol (MCP).
Cooperative request cancellation for long-running tools.
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.
Server-to-client request helpers for bidirectional MCP communication.
Behaviour for defining individual MCP tools, resources, and prompts as separate modules.
Schema DSL for defining parameters in Component modules.
DSL for defining MCP servers with a clean, declarative syntax.
Helper macros for building MCP responses in the DSL.
Builds JSON Schema and NimbleOptions schemas from DSL parameter definitions.
Aggregates ConduitMcp.Component modules into a full MCP server.
Standard error codes for MCP and JSON-RPC 2.0 responses.
Routes JSON-RPC 2.0 MCP requests to a server module's behaviour callbacks.
Behaviour for pluggable JWKS key providers.
JWKS key provider that fetches keys from an HTTP endpoint with ETS caching.
Static key provider for testing and development.
Generates OAuth 2.0 Protected Resource Metadata (RFC 9728) for MCP servers.
Authentication plug for MCP servers.
Message-level rate limiting plug for MCP servers.
OAuth 2.1 authentication plug for MCP servers.
Plug that validates the Origin request header against an allowlist.
Rate limiting plug for MCP servers.
Plug that adds standard security response headers to all responses.
A PromEx plugin for monitoring ConduitMCP operations.
JSON-RPC 2.0 message construction and MCP protocol version negotiation.
Behaviour for implementing stateless MCP servers.
Session management facade for MCP protocol sessions.
Default in-memory session store backed by a public, named ETS table.
Periodically prunes expired sessions from a ConduitMcp.Session.Store.
Behaviour for pluggable session storage backends.
Task management for long-running MCP operations (experimental).
ETS-backed task store. Default implementation of ConduitMcp.Tasks.Store.
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.
Periodically prunes terminal-state tasks from ConduitMcp.Tasks.
Behaviour for pluggable task storage backends.
Telemetry integration for ConduitMCP.
Server-Sent Events (SSE) transport layer for MCP.
Streamable HTTP transport for MCP (recommended).
Runtime parameter validation using NimbleOptions.
Converts DSL parameter definitions to NimbleOptions validation schemas.
Common validation functions for use with the ConduitMCP DSL.
Mix Tasks
Runs ConduitMCP benchmarks.