
nyo16/conduit_mcp
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
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"} |
설치
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"
}
}
}
}