1. Conduid
  2. Developer Tools
  3. Anubis MCP
MCP server · Developer Tools

Anubis MCP

Elixir Model Context Protocol (MCP) SDK (hermes-mcp fork)

Unclaimed Custom license devtools
72Good

Scored 11 days ago · breakdown

About Anubis MCP

Anubis MCP is an MCP server published by zoedsoupe in the Developer Tools category: elixir Model Context Protocol (MCP) SDK (hermes-mcp fork).

The repository has 179 stars and 74 forks, with the last commit 8 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/zoedsoupe/anubis-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Anubis MCP

Powered by Claude · Grounded in docs

I know everything about Anubis MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 4 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

1 check has not been run yet.

Releases

v2.1.0v2.1.0 · 6 Oct 20262.1.0 (2026-10-05) Features protocol: add the 2026-07-28 stateless dialect (#269) (986fca6) server: add caching hints to stateless results (#312) (5c94d1a) server: add frame-based Notifier and expose per-request _meta on the context…
v2.0.0v2.0.0 · 7 Aug 20262.0.0 (2026-08-07) ⚠ BREAKING CHANGES transport: remove deprecated HTTP+SSE client and server transports protocol: drop 2024-11-05 protocol version, floor at 2025-03-26 Features protocol: drop 2024-11-05 protocol version, floor at…
v1.14.0v1.14.0 · 30 Jul 20261.14.0 (2026-07-30) Features mcp: route message encode and validation through the negotiated protocol module (c327da7) protocol: widen behaviour into full dialect contract (fcefb88) transport: formalize transport-session contract as public…
v1.13.0v1.13.0 · 29 Jul 20261.13.0 (2026-07-29) Bug Fixes server: reject unknown sessions on the request path instead of silent auto-recovery (b2db47f), closes #204 Code Refactoring session: extract request scheduler (88b0cce), closes #253 session: extract…
v1.12.0v1.12.0 · 29 Jul 20261.12.0 (2026-07-29) Features session: version session serialization format (0a91fee), closes #252 Bug Fixes client: handle session_expired cast from streamable HTTP transport (59a8896), closes #264 client: store negotiated protocol version…

README

Anubis MCP

hex.pm docs ci Hex Downloads

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, "~> 2.1.0"}  # x-release-please-version
  ]
end

Supported MCP versions

anubis_mcp MCP spec versions
1.x 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25
2.x 2025-03-26, 2025-06-18, 2025-11-25

Breaking changes in 2.0:

  • Support for spec version 2024-11-05 was dropped; 2025-03-26 is the new floor.
  • The HTTP+SSE transports ({:sse, ...} on the client, Anubis.Server.Transport.SSE on the server) were removed, following their deprecation upstream. Use Streamable HTTP ({:streamable_http, ...}) instead.

Deprecation policy

Mirroring the upstream MCP specification:

  • Deprecated features keep working for at least one minor release cycle and ship with a documented migration path.
  • Removed features are deleted only in major releases. Dropping a spec version is always a major bump.

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:

  1. upcase-server: plug based MCP server using streamable_http
  2. echo-elixir: phoenix based MCP server using streamable_http
  3. ascii-server: phoenix_live_view based MCP server using streamable_http and UI

License

LGPL-v3 License. See LICENSE for details.

README fetched from the repository 4 days ago. The original is authoritative.

Questions

About Anubis MCP

How do I install Anubis MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Anubis MCP safe to use with an AI agent?

Its trust score is 72 out of 100 (good). It passes 4 of the 5 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Anubis MCP still maintained?

Yes — the latest release is v2.1.0 (6 Oct 2026), and the last commit was 8 days ago. The repository has 179 stars and 24 open issues.