Packages
backplane_mcp_protocol
1.10.13
1.10.19
1.10.18
1.10.17
1.10.16
1.10.15
1.10.14
1.10.13
1.10.12
1.10.11
1.10.10
1.10.9
1.10.8
1.10.7
1.10.6
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.3
retired
1.6.0
1.5.0
1.4.0
1.3.0
1.2.0
1.1.0
1.0.1
1.0.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
Model Context Protocol (MCP) implementation in Elixir with Phoenix integration
Current section
Files
Jump to
Current section
Files
backplane_mcp_protocol
mix.exs
mix.exs
defmodule Backplane.McpProtocol.MixProject do
use Mix.Project
@version "1.10.13"
@source_url "https://github.com/gsmlg-opt/backplane/tree/main/apps/backplane_mcp_protocol"
def project do
[
app: :backplane_mcp_protocol,
version: @version,
build_path: "../../_build",
config_path: "../../config/config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
elixir: "~> 1.18",
start_permanent: Mix.env() == :prod,
deps: deps(),
docs: docs(),
package: package(),
description: description(),
elixirc_paths: elixirc_paths(Mix.env()),
aliases: aliases(),
dialyzer: [
plt_local_path: "priv/plts",
no_umbrella: true,
ignore_warnings: ".dialyzerignore.exs",
plt_add_apps: [:mix, :ex_unit]
],
extra_applications: [:observer, :wx],
releases: releases()
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {Backplane.McpProtocol.Application, []}
]
end
def cli do
[
preferred_envs: [dialyzer: :test]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:finch, "~> 0.19"},
{:peri, "~> 0.11.3"},
{:telemetry, "~> 1.2"},
{:redix, "~> 1.5", optional: true},
{:gun, "~> 2.2", optional: true},
{:burrito, "~> 1.0", optional: true},
{:plug, "~> 1.18", optional: true},
{:jose, "~> 1.11.7", optional: true},
{:mox, "~> 1.2", only: :test},
{:mimic, "~> 2.0", only: :test},
{:bypass, "~> 2.1", only: :test},
{:plug_cowboy, "~> 2.7", only: :test},
{:cowboy, "~> 2.10", only: :test},
{:styler, "~> 1.4", only: [:dev, :test], runtime: false},
{:ex_doc, ">= 0.0.0", only: [:dev, :test], runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.3", only: [:dev, :test], runtime: false}
]
end
# Define releases for standalone binaries
def releases do
[
backplane_mcp_protocol: [
steps: [:assemble, &Burrito.wrap/1],
applications: [
backplane_mcp_protocol: :permanent
],
include_executables_for: [:unix, :windows],
burrito: [
targets: [
macos_intel: [os: :darwin, cpu: :x86_64],
macos_arm: [os: :darwin, cpu: :aarch64],
linux: [os: :linux, cpu: :x86_64],
windows: [os: :windows, cpu: :x86_64]
]
],
# Set the CLI module as the main entry point
default_release: true,
main_module: Backplane.McpProtocol.CLI
]
]
end
defp package do
%{
licenses: ["LGPL-3.0"],
contributors: ["Backplane contributors"],
links: %{
"GitHub" => @source_url,
"Docs" => "https://hexdocs.pm/backplane_mcp_protocol"
},
files:
~w[lib pages priv/static mix.exs README.md CHANGELOG.md CONTRIBUTING.md LICENSE .formatter.exs]
}
end
defp aliases do
[
setup: ["deps.get", "compile --force"],
lint: ["format --check-formatted", "credo --strict", "dialyzer"],
format_doc: ["cmd npx prettier -w ./**/*.md"]
]
end
defp docs do
[
main: "readme",
before_closing_head_tag: &before_closing_head_tag/1,
extras: [
"README.md",
"pages/introduction.md",
"pages/building-a-client.md",
"pages/building-a-server.md",
"pages/recipes.md",
"pages/reference.md",
"pages/authorization.md",
"CHANGELOG.md",
"CONTRIBUTING.md",
"LICENSE"
],
groups_for_extras: [
"Getting Started": [
"README.md",
"pages/introduction.md"
],
"Building with Backplane.McpProtocol": [
"pages/building-a-client.md",
"pages/building-a-server.md"
],
"Patterns & Reference": [
"pages/recipes.md",
"pages/reference.md",
"pages/authorization.md"
],
"Project Info": [
"CHANGELOG.md",
"CONTRIBUTING.md",
"LICENSE"
]
]
]
end
defp before_closing_head_tag(:html) do
"""
<script defer src="https://cdn.jsdelivr.net/npm/mermaid@10.2.3/dist/mermaid.min.js"></script>
<script>
let initialized = false;
window.addEventListener("exdoc:loaded", () => {
if (!initialized) {
mermaid.initialize({
startOnLoad: false,
theme: document.body.className.includes("dark") ? "dark" : "default"
});
initialized = true;
}
let id = 0;
for (const codeEl of document.querySelectorAll("pre code.mermaid")) {
const preEl = codeEl.parentElement;
const graphDefinition = codeEl.textContent;
const graphEl = document.createElement("div");
const graphId = "mermaid-graph-" + id++;
mermaid.render(graphId, graphDefinition).then(({svg, bindFunctions}) => {
graphEl.innerHTML = svg;
bindFunctions?.(graphEl);
preEl.insertAdjacentElement("afterend", graphEl);
preEl.remove();
});
}
});
</script>
"""
end
defp before_closing_head_tag(:epub), do: ""
defp description do
"""
Model Context Protocol (MCP) implementation in Elixir with Phoenix integration
"""
end
end