NC

nyo16/conduit_mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

11 stars 1 forks Качество 78 Тренд 22Apache-2.0

Elixir implementation of the Model Context Protocol (MCP) — build servers to expose tools, resources, and prompts to LLM applications.

Обзор

An Elixir implementation of the Model Context Protocol (MCP) specification, serving both protocol eras from one server: modern and legacy / . Build MCP servers to expose tools, resources, and prompts to LLM applications like Claude Desktop, VS Code, and Cursor — and connect to MCP servers from Elixir with the built-in client. - — Tools can return interactive UI rendered as sandboxed iframes in host clients - — DSL macros, raw callbacks, or component modules — pick your level of control - — One server answers modern 2026-07-28 clients (server/discover, MRTR, subscriptions/listen, streamed responses, cache hints, header validation) and legacy 2025-11-25 / 2025-06-18 clients; the era is chosen per request - — Supervised client for stdio and Streamable HTTP servers in both eras, with a multi-server hub, policy and hooks, LLM provider adapters, and OAuth 2.

README

Показан фрагмент оригинального README. Открыть оригинал.

ConduitMCP

An Elixir implementation of the Model Context Protocol (MCP) specification, serving both protocol eras from one server: modern 2026-07-28 and legacy 2025-11-25 / 2025-06-18. Build MCP servers to expose tools, resources, and prompts to LLM applications like Claude Desktop, VS Code, and Cursor — and connect to MCP servers from Elixir with the built-in client.

Features

  • MCP Apps — Tools can return interactive UI rendered as sandboxed iframes in host clients
  • Three Ways to Build — DSL macros, raw callbacks, or component modules — pick your level of control
  • Dual-era MCP — One server answers modern 2026-07-28 clients (server/discover, MRTR, subscriptions/listen, streamed responses, cache hints, header validation) and legacy 2025-11-25 / 2025-06-18 clients; the era is chosen per request
  • MCP Client — Supervised client for stdio and Streamable HTTP servers in both eras, with a multi-server hub, policy and hooks, LLM provider adapters, and OAuth 2.1
  • Runtime Validation — NimbleOptions-powered param validation with type coercion and custom constraints
  • Stateless Architecture — Pure functions, no processes, maximum concurrency via Bandit
  • Authentication — Bearer tokens, API keys, OAuth 2.1 (RFC 9728), custom verification
  • Rate Limiting — HTTP-level and message-level rate limiting with Hammer
  • Session Management — Pluggable session stores (ETS, Redis, PostgreSQL, Mnesia)
  • Observability — Telemetry events, optional Prometheus metrics via PromEx
  • Phoenix Ready — Drop-in integration with Phoenix routers
  • CORS & Security — Configurable origins, preflight handling, origin validation

Installation

def deps do
  [
    {:conduit_mcp, "~> 0.11"}
  ]
end

Requires Elixir ~> 1.18.

Optional dependencies

The core library needs nothing beyond the block above. These features are compiled in only when their dependency is present, so add the ones you need before you configure the feature:

Feature Dependency Add to deps
auth: [strategy: :oauth] — JWT bearer validation (guide) :joken, :jose {:joken, "~> 2.6"}``{:jose, "~> 1.11"}
ConduitMcp.OAuth.KeyProvider.JWKS — fetch signing keys from a JWKS URI :req {:req, "~> 0.6.1 or ~> 0.7"}
ConduitMcp.Plugs.RateLimit / ConduitMcp.Plugs.MessageRateLimit (guide) :hammer {:hammer, "~> 7.2"}
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "my-app": { "url": "http://localhost:4001/", "headers": { "Authorization": "Bearer your-token" } } } }