Report Abuse

Basic Information

Hermes MCP is an Elixir software development kit that implements the Model Context Protocol (MCP) for building both MCP servers and clients. It provides a high-performance, Elixir-native way to connect Large Language Models with external tools and services by implementing the MCP specification. The project supplies macros and behaviours for defining servers and clients, examples for Plug and Phoenix apps, and guidance for adding MCP endpoints into an OTP supervision tree. The README shows installation via mix deps, quick start snippets for defining a server module with register_tool and handle_tool callbacks, and a client module that can call remote tools over supported transports. The library emphasizes Elixir concurrency and fault tolerance and includes examples and documentation published alongside the package.

Links

Categorization

App Details

Features
Complete client and server implementations of the Model Context Protocol in Elixir. Server-side helpers include Hermes.Server behaviour, lifecycle callbacks such as init, tool registration via register_tool with input_schema, annotations and descriptions, and handler callbacks like handle_tool. Client-side helpers include Hermes.Client behaviour and supervised client processes that call tools remotely. Transport adapters shown include streamable_http and SSE integration for Plug and Phoenix. Project provides a server registry module for supervision, example applications demonstrating upcase, echo and ASCII servers, and documentation on HexDocs. The package is versioned for mix and available on Hex.pm, and the README highlights Elixir concurrency and fault-tolerance as core benefits. The project is MIT licensed.
Use Cases
Hermes MCP helps Elixir developers expose application functionality to LLMs and orchestrate tool calls in a robust, scalable way. By providing ready-made behaviours and transport integrations, it reduces boilerplate for creating MCP-compliant servers and supervised clients that can be included in OTP supervision trees. The register_tool abstraction enforces input schemas and annotations so tools can be discovered and validated by model contexts. Example Plug and Phoenix apps demonstrate common deployment patterns and streaming transports, enabling rapid prototyping and production deployment. Documentation and examples lower the barrier to integrating LLMs with external systems while leveraging Elixir"s concurrency model for resilient communication between models and services.

Please fill the required fields*