Current section

Files

Jump to
mcp_server mix.exs
Raw

mix.exs

defmodule McpServer.MixProject do
use Mix.Project
@source_url "https://github.com/GuillaumeMilan/mcp_server"
def project do
[
app: :mcp_server,
version: "0.10.0",
elixir: "~> 1.17",
start_permanent: Mix.env() == :prod,
deps: deps(),
description: "HTTP implementation of the MCP (Model Context Protocol) with typed structs",
package: package(),
# Docs
name: "HTTP MCP Server",
docs: docs(),
source_url: @source_url
]
end
defp package do
[
maintainers: ["Guillaume Milan"],
licenses: ["X11"],
links: %{
"GitHub" => @source_url,
"MCP" => "https://modelcontextprotocol.io/introduction"
},
files: ~w(lib priv .formatter.exs mix.exs README.md LICENSE)
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {McpServer.Application, []}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:plug, "~> 1.0"},
{:plug_cowboy, "~> 2.0"},
{:bandit, "~> 1.0"},
# TODO give the ability to use custom JSON encoder / decoder to the user
{:jason, "~> 1.4"},
{:telemetry, "~> 1.0"},
# Documentation
{:ex_doc, "~> 0.31", only: :dev, runtime: false}
]
end
defp docs do
[
main: "readme",
extras: [
"README.md",
"TESTING.md",
"MCP_APPS.md",
"MCP_APPS_LIFECYCLE_FRONTEND.md",
"MIGRATION_GUIDE.md",
"STRUCTURES.md",
"CHANGELOG_v0.4.0.md",
"QUICK_MIGRATION_REFERENCE.md"
],
groups_for_extras: [
"Getting Started": ["README.md"],
Guides: ["TESTING.md", "MCP_APPS.md", "MCP_APPS_LIFECYCLE_FRONTEND.md"],
"Migration & Upgrade": [
"MIGRATION_GUIDE.md",
"QUICK_MIGRATION_REFERENCE.md",
"CHANGELOG_v0.4.0.md"
],
Reference: ["STRUCTURES.md"]
],
groups_for_modules: [
"Core DSL": [
McpServer.Router,
McpServer.Controller
],
"Data Structures": [
McpServer.Conn,
McpServer.Tool,
McpServer.Tool.CallResult,
McpServer.Prompt,
McpServer.Resource,
McpServer.ResourceTemplate,
McpServer.Completion,
McpServer.Schema
],
Transport: [
McpServer.HttpPlug,
McpServer.JsonRpc
],
Apps: [
McpServer.Tool.Meta,
McpServer.Resource.Meta,
McpServer.Tool.Meta.UI,
McpServer.Resource.Meta.UI,
McpServer.Resource.Meta.UI.CSP,
McpServer.Resource.Meta.UI.Permissions
],
Testing: [
McpServer.Test
],
Observability: [
McpServer.Telemetry
]
],
source_url: @source_url,
formatters: ["html"]
]
end
end