ZA

zoedsoupe/anubis-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

181 stars 74 forks Качество 54 Тренд 37NOASSERTION

Протокол контекста модели Elixir (MCP) SDK (форк Hermes-MCP)

Обзор

Реализация высокопроизводительного протокола Model Context Protocol (MCP) в Elixir. Anubis MCP — это комплексный SDK Elixir для протокола контекста модели, обеспечивающий полные реализации клиента и сервера с исключительной моделлю параллелизма и отказоустойчивостью Elixir. Теперь вы можете создать свой MCP-сервер на http://localhost: /mcp Названный в честь Анубиса, египетского бога подземного мира и проводника в загробный мир, эта библиотека помогает ориентироваться между Большими языковыми моделями и внешними инструментами. Подобно тому, как Анубис направлял души через переходы, этот SDK направляет данные через пограничное пространство между ИИ и внешними системами. Имя также имеет личное значение — после того, как мое путешествие по корпоративному подполью неожиданно закончилось, этот проект возродился из пепла своего предшественника, готовый вести разработчиков через их собственные приключения MCP. Иногда нужен бог переходов, чтобы помочь вам... переходу.

Обзор (машинный перевод)

Реализация высокопроизводительного протокола Model Context Protocol (MCP) в Elixir.

Обзор

Anubis MCP — это комплексный SDK Elixir для протокола контекста модели, обеспечивающий полные реализации клиента и сервера с исключительной моделлю параллелизма и отказоустойчивостью Elixir.

Установка

Поддерживаемые версии MCP

anubis_mcp Версии по спецификациям MCP
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, 2026-07-28

Основные изменения в версии 2.0:

  • Поддержка спецификационной версии 2024-11-05 была отменена; 2025-03-26 — новый этаж.
  • Транспорты HTTP+SSE ({:sse, ...} на клиенте, Anubis.Server.Transport.SSE на сервере) были удалены после их устарения вверх по потоку. Используйте Streamable HTTP ({:streamable_http, ...}).

Политика амортизаций

Зеркально повторяя спецификацию MCP в восходящем потоке:

  • Устаревшие функции продолжают работать как минимум один небольшой цикл релиза и поставляются с задокументированным путём миграции.
  • Удалённые функции удаляются только в крупных релизах. Отказ от спецификационной версии всегда является серьёзным проблемом.

Быстрый старт

Сервер

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

Anubis MCP

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.2.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, 2026-07-28

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
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →