Packages

Elixir implementation of MCP and ACP. Build MCP clients/servers with tools, resources, prompts over stdio, HTTP/SSE, and BEAM. Control coding agents via ACP with adapters for Claude Code, Codex, and more.

Current section

Files

Jump to
ex_mcp mix.exs
Raw

mix.exs

defmodule ExMCP.MixProject do
use Mix.Project
@version "0.1.0"
@github_url "https://github.com/azmaveth/ex_mcp"
def project do
[
app: :ex_mcp,
version: @version,
elixir: "~> 1.17",
start_permanent: Mix.env() == :prod,
deps: deps(),
description: description(),
package: package(),
docs: docs(),
source_url: @github_url,
homepage_url: @github_url
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger, :crypto, :ssl, :inets],
mod: {ExMCP.Application, []}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:jason, "~> 1.4"},
{:mint, "~> 1.6"},
{:mint_web_socket, "~> 1.0"},
{:castore, "~> 1.0"},
{:ex_doc, "~> 0.36", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:mox, "~> 1.2", only: :test}
]
end
defp description do
"""
A comprehensive Elixir implementation of the Model Context Protocol (MCP).
Build MCP clients and servers with support for tools, resources, prompts,
and multiple transport layers (stdio, SSE, WebSocket).
"""
end
defp package do
[
licenses: ["MIT"],
links: %{"GitHub" => @github_url},
files: ~w(lib .formatter.exs mix.exs README.md LICENSE CHANGELOG.md)
]
end
defp docs do
[
main: "readme",
extras: ["README.md", "CHANGELOG.md"],
source_ref: "v#{@version}",
groups_for_modules: [
"Core Protocol": [ExMCP.Protocol, ExMCP.Types],
"Client": [ExMCP.Client, ExMCP.Client.StdioTransport, ExMCP.Client.SSETransport],
"Server": [ExMCP.Server, ExMCP.Server.Handler, ExMCP.Server.StdioTransport, ExMCP.Server.SSETransport],
"Management": [ExMCP.ServerManager, ExMCP.Discovery],
"Utilities": [ExMCP.Transport, ExMCP.ServerPersistence]
]
]
end
end