{"id":30376593,"url":"https://github.com/zoedsoupe/anubis-mcp","last_synced_at":"2026-05-24T01:05:39.756Z","repository":{"id":307337505,"uuid":"1029217941","full_name":"zoedsoupe/anubis-mcp","owner":"zoedsoupe","description":"Elixir Model Context Protocol (MCP) SDK (hermes-mcp fork)","archived":false,"fork":false,"pushed_at":"2026-01-20T14:15:46.000Z","size":1343,"stargazers_count":76,"open_issues_count":20,"forks_count":22,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-25T03:04:21.638Z","etag":null,"topics":["elixir","mcp","mcp-sdk"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/anubis_mcp","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoedsoupe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"zoedsoupe","patreon":null,"open_collective":"zoedsoupe","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-07-30T17:41:36.000Z","updated_at":"2026-01-21T20:56:29.000Z","dependencies_parsed_at":"2025-07-30T19:31:56.500Z","dependency_job_id":"70987e7f-ff80-4df3-a530-c032ad0a0f07","html_url":"https://github.com/zoedsoupe/anubis-mcp","commit_stats":null,"previous_names":["zoedsoupe/anubis-mcp"],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/zoedsoupe/anubis-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoedsoupe%2Fanubis-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoedsoupe%2Fanubis-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoedsoupe%2Fanubis-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoedsoupe%2Fanubis-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoedsoupe","download_url":"https://codeload.github.com/zoedsoupe/anubis-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoedsoupe%2Fanubis-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29951673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T18:42:55.706Z","status":"ssl_error","status_checked_at":"2026-02-28T18:42:48.811Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","mcp","mcp-sdk"],"created_at":"2025-08-20T15:01:13.606Z","updated_at":"2026-05-24T01:05:39.744Z","avatar_url":"https://github.com/zoedsoupe.png","language":"Elixir","funding_links":["https://github.com/sponsors/zoedsoupe","https://opencollective.com/zoedsoupe"],"categories":["Resources","📚 Projects (1974 total)","📦 Other","Generative AI","MCP and Integrations"],"sub_categories":["Model Context Protocol (MCP)","MCP Servers","Development Tools"],"readme":"# Anubis MCP\n\n[![hex.pm](https://img.shields.io/hexpm/v/anubis_mcp.svg)](https://hex.pm/packages/anubis_mcp)\n[![docs](https://img.shields.io/badge/hex-docs-blue.svg)](https://hexdocs.pm/anubis_mcp)\n[![ci](https://github.com/zoedsoupe/anubis-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/zoedsoupe/anubis-mcp/actions/workflows/ci.yml)\n[![Hex Downloads](https://img.shields.io/hexpm/dt/anubis_mcp)](https://hex.pm/packages/anubis_mcp)\n\nA high-performance Model Context Protocol (MCP) implementation in Elixir.\n\n## Overview\n\nAnubis MCP is a comprehensive Elixir SDK for the [Model Context Protocol](https://spec.modelcontextprotocol.io/), providing complete client and server implementations with Elixir's exceptional concurrency model and fault tolerance.\n\n## Installation\n\n```elixir\ndef deps do\n  [\n    {:anubis_mcp, \"~\u003e 1.6.1\"}  # x-release-please-version\n  ]\nend\n```\n\n## Quick Start\n\n### Server\n\n```elixir\n# Define a tool as a Component (compile-time registration)\ndefmodule MyApp.Echo do\n  @moduledoc \"Echoes everything the user says to the LLM\"\n\n  use Anubis.Server.Component, type: :tool\n\n  alias Anubis.Server.Response\n\n  schema do\n    field :text, :string, required: true, max_length: 150, description: \"the text to be echoed\"\n  end\n\n  @impl true\n  def execute(%{text: text}, frame) do\n    {:reply, Response.text(Response.tool(), text), frame}\n  end\nend\n\ndefmodule MyApp.MCPServer do\n  use Anubis.Server,\n    name: \"My Server\",\n    version: \"1.0.0\",\n    capabilities: [:tools]\n\n  # Static component registration — dispatches to MyApp.Echo.execute/2\n  component MyApp.Echo\n\n  @impl true\n  def init(_client_info, frame) do\n    # You can also register tools dynamically at runtime via the Frame:\n    # frame = register_tool(frame, \"dynamic_tool\", description: \"...\", input_schema: %{...})\n    {:ok, frame}\n  end\nend\n\n# Add to your application supervisor\nchildren = [\n  {MyApp.MCPServer, transport: :streamable_http}\n]\n\n# Add to your Phoenix router (if using HTTP)\nforward \"/mcp\", Anubis.Server.Transport.StreamableHTTP.Plug, server: MyApp.MCPServer\n\n# Or if using only Plug router\nforward \"/mcp\", to: Anubis.Server.Transport.StreamableHTTP.Plug, init_opts: [server: MyApp.MCPServer]\n```\n\nNow you can achieve your MCP server on `http://localhost:\u003cport\u003e/mcp`\n\n### Client\n\n```elixir\n# Add to your application supervisor\nchildren = [\n  {Anubis.Client,\n   name: MyApp.MCPClient,\n   transport: {:streamable_http, base_url: \"http://localhost:4000\"},\n   client_info: %{\"name\" =\u003e \"MyApp\", \"version\" =\u003e \"1.0.0\"},\n   protocol_version: \"2025-06-18\"}\n]\n\n# Use the client\n{:ok, result} = Anubis.Client.call_tool(MyApp.MCPClient, \"echo\", %{text: \"this will be echoed!\"})\n```\n\n## Why Anubis?\n\nNamed 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.\n\nThe 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. 🏳️‍⚧️\n\n## Sponsors\n\nThanks to our amazing sponsors for supporting this project!\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.coderabbit.ai/?utm_source=oss\u0026utm_medium=github\u0026utm_campaign=zoedsoupe\"\u003e\n    \u003cimg src=\"https://avatars.githubusercontent.com/u/132028505?s=200\u0026v=4\" alt=\"Coderabbit Sponsor Logo\" height=\"80\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Documentation\n\nFor detailed guides and examples, visit the [official documentation](https://hexdocs.pm/anubis_mcp).\n\n## Examples\n\nWe have build some elixir implementation examples using `plug` based and `phoenix` apps:\n\n1. [upcase-server](/priv/dev/upcase/README.md): `plug` based MCP server using streamable_http\n2. [echo-elixir](/priv/dev/echo-elixir/README.md): `phoenix` based MCP server using sse\n3. [ascii-server](/priv/dev/ascii/README.md): `phoenix_live_view` based MCP server using streamable_http and UI\n\n## License\n\nLGPL-v3 License. See [LICENSE](./LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoedsoupe%2Fanubis-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoedsoupe%2Fanubis-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoedsoupe%2Fanubis-mcp/lists"}