Current section
Files
Jump to
Current section
Files
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