Agent skill

anubis-mcp

Stars 0
Forks 1

Install this agent skill to your Project

npx add-skill https://github.com/layeddie/ai-rules/tree/main/skills/anubis-mcp

SKILL.md

Anubis MCP SDK

Overview

Complete Elixir SDK for Model Context Protocol (MCP), providing both client and server implementations with Elixir's native concurrency and fault tolerance.

Source: https://github.com/zoedsoupe/anubis-mcp (upstream)
Fork: https://github.com/layeddie/anubis-mcp (your fork)

When to Use

  • Building custom Elixir MCP servers
  • Phoenix integration (HTTP/SSE transport)
  • Domain-specific tools (e.g., Ecto analyzer, Phoenix LiveView inspector)
  • Replacing Hermes with full customization control

Key Capabilities

  • ✅ Complete client + server implementation
  • ✅ Phoenix integration (HTTP/SSE transport via Plug)
  • ✅ Streamable HTTP support
  • ✅ Tool registration with input schemas
  • ✅ BEAM supervision trees
  • ✅ Production-ready (error handling, telemetry)

Quick Start

elixir
# mix.exs
{:anubis_mcp, "~> 0.17.0"}
elixir
# Server definition
defmodule MyApp.MCPServer do
  use Anubis.Server,
    name: "My Server",
    version: "1.0.0",
    capabilities: [:tools]

  @impl true
  def init(_client_info, frame) do
    {:ok, frame
      |> assign(counter: 0)
      |> register_tool("my_tool",
        input_schema: %{
          query: {:required, :string, max: 150, description: "the text to be echoed"}
        },
        annotations: %{read_only: true},
        description: "echoes everything user says to LLM")
  end

  @impl true
  def handle_tool("my_tool", %{text: text}, frame) do
    Logger.info("This tool was called #{frame.assigns.counter + 1}")
    {:reply, text, assign(frame, counter: frame.assigns.counter + 1)}
  end
end

# Phoenix router
forward "/mcp", Anubis.Server.Transport.StreamableHTTP.Plug, server: MyApp.MCPServer

Integration with ai-rules

  • Plan Mode: Use anubis-mcp for custom MCP server development during architecture planning
  • Build Mode: Build domain-specific Elixir MCP servers for ai-rules workflows (e.g., Ecto query analyzer, Phoenix LiveView inspector)
  • Review Mode: Verify MCP server implementations follow OTP best practices

Agent Roles

  • Architect: Design MCP server architecture and tool schemas
  • Orchestrator: Build and test custom MCP servers
  • Reviewer: Validate MCP server implementations for production readiness

Tooling Integration

  • Use anubis-mcp with jido_ai for agent + MCP server workflows
  • Use anubis-mcp with swarm_ex for multi-MCP server coordination

Resources

License Notes

⚠️ LGPL v3 (Copyleft License):

  • Requires derivative works to be LGPL v3
  • May not be suitable for commercial projects
  • Consider using upstream zoedsoupe/anubis-mcp (MIT license) instead
  • Or build your own SDK under MIT/Apache 2.0

Common Patterns

  • Tool registration with input schemas
  • Request/response handling
  • Error handling with supervision trees
  • Telemetry integration
  • Custom transport implementations

Best Practices

  • Use OTP supervision trees for fault tolerance
  • Implement proper error handling in tool callbacks
  • Add telemetry for observability
  • Test MCP tools with ExUnit
  • Document tool schemas clearly for LLM understanding

Troubleshooting

  • Ensure Phoenix router includes MCP forward route
  • Verify MCP server is added to application supervisor
  • Check for transport configuration errors (HTTP vs SSE)
  • Monitor telemetry for performance issues

Didn't find tool you were looking for?

Be as detailed as possible for better results