Anubis MCP
FreeNot checkedA high-performance and high-level Model Context Protocol (MCP) implementation in Elixir. Think like "Live View" for MCP.
About
A high-performance and high-level Model Context Protocol (MCP) implementation in Elixir. Think like "Live View" for MCP.
README
A high-performance Model Context Protocol (MCP) implementation in Elixir.
Overview
Anubis MCP is a comprehensive Elixir SDK for the Model Context Protocol, providing complete client and server implementations with Elixir's exceptional concurrency model and fault tolerance.
Installation
def deps do
[
{:anubis_mcp, "~> 1.10.0"} # x-release-please-version
]
end
Quick Start
Server
# Define a tool as a Component (compile-time registration)
defmodule MyApp.Echo do
@moduledoc "Echoes everything the user says to the LLM"
use Anubis.Server.Component, type: :tool
alias Anubis.Server.Response
schema do
field :text, :string, required: true, max_length: 150, description: "the text to be echoed"
end
@impl true
def execute(%{text: text}, frame) do
{:reply, Response.text(Response.tool(), text), frame}
end
end
defmodule MyApp.MCPServer do
use Anubis.Server,
name: "My Server",
version: "1.0.0",
capabilities: [:tools]
# Static component registration — dispatches to MyApp.Echo.execute/2
component MyApp.Echo
@impl true
def init(_client_info, frame) do
# You can also register tools dynamically at runtime via the Frame:
# frame = register_tool(frame, "dynamic_tool", description: "...", input_schema: %{...})
{:ok, frame}
end
end
# Add to your application supervisor
children = [
{MyApp.MCPServer, transport: :streamable_http}
]
# Add to your Phoenix router (if using HTTP)
forward "/mcp", Anubis.Server.Transport.StreamableHTTP.Plug, server: MyApp.MCPServer
# Or if using only Plug router
forward "/mcp", to: Anubis.Server.Transport.StreamableHTTP.Plug, init_opts: [server: MyApp.MCPServer]
Now you can achieve your MCP server on http://localhost:<port>/mcp
Client
# Add to your application supervisor
children = [
{Anubis.Client,
name: MyApp.MCPClient,
transport: {:streamable_http, base_url: "http://localhost:4000"},
client_info: %{"name" => "MyApp", "version" => "1.0.0"},
protocol_version: "2025-06-18"}
]
# Use the client
{:ok, result} = Anubis.Client.call_tool(MyApp.MCPClient, "echo", %{text: "this will be echoed!"})
Why Anubis?
Named after Anubis, the Egyptian god of the underworld and guide to the afterlife, this library helps navigate the boundaries between Large Language Models and external tools. Much like how Anubis guided souls through transitions, this SDK guides data through the liminal space between AI and external systems.
The name also carries personal significance - after my journey through the corporate underworld ended unexpectedly, this project was reborn from the ashes of its predecessor, ready to guide developers through their own MCP adventures. Sometimes you need a deity of transitions to help you... transition. 🏳️⚧️
Sponsors
Thanks to our amazing sponsors for supporting this project!
Documentation
For detailed guides and examples, visit the official documentation.
Examples
We have build some elixir implementation examples using plug based and phoenix apps:
- upcase-server:
plugbased MCP server using streamable_http - echo-elixir:
phoenixbased MCP server using sse - ascii-server:
phoenix_live_viewbased MCP server using streamable_http and UI
License
LGPL-v3 License. See LICENSE for details.
Installing Anubis MCP
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/zoedsoupe/anubis-mcpFAQ
Is Anubis MCP MCP free?
Yes, Anubis MCP MCP is free — one-click install via Unyly at no cost.
Does Anubis MCP need an API key?
No, Anubis MCP runs without API keys or environment variables.
Is Anubis MCP hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Anubis MCP in Claude Desktop, Claude Code or Cursor?
Open Anubis MCP on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Anubis MCP with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
