by cloudwalk
Elixir Model Context Protocol (MCP) SDK
# Add to your Claude Code skills
git clone https://github.com/cloudwalk/hermes-mcpGuides for using ai agents skills like hermes-mcp.
Last scanned: 5/25/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-25T08:23:00.747Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}A high-performance Model Context Protocol (MCP) implementation in Elixir.
Hermes 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.
def deps do
[
{:hermes_mcp, "~> 0.14.1"} # x-release-please-version
]
end
# Define a server with tools capabilities
defmodule MyApp.MCPServer do
use Hermes.Server,
name: "My Server",
version: "1.0.0",
capabilities: [:tools]
@impl true
# this callback will be called when the
# MCP initialize lifecycle completes
def init(_client_info, frame) do
{:ok,frame
|> assign(counter: 0)
|> register_tool("echo",
input_schema: %{
text: {:required, :string, max: 150, description: "the text to be echoed"}
},
annotations: %{read_only: true},
description: "echoes everything the user says to the LLM") }
end
@impl true
def handle_tool("echo", %{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
# Add to your application supervisor
children = [
Hermes.Server.Registry,
{MyApp.MCPServer, transport: :streamable_http}
]
# Add to your Plug/Phoenix router (if using HTTP)
forward "/mcp", to: Hermes.Server.Transport.StreamableHTTP.Plug, init_opts: [server: MyApp.MCPServer]
Now you can achieve your MCP server on http://localhost:<port>/mcp
# Define a client module
defmodule MyApp.MCPClient do
use Hermes.Client,
name: "MyApp",
version: "1.0.0",
protocol_version: "2025-03-26"
end
# Add to your application supervisor
children = [
{MyApp.MCPClient,
transport: {:streamable_http, base_url: "http://localhost:4000"}}
]
# Use the client
{:ok, result} = MyApp.MCPClient.call_tool("echo", %{text: "this will be echoed!"})
Named after Hermes, the Greek god of boundaries and communication, this library facilitates seamless interaction between Large Language Models and external tools - serving as a messenger between AI and data sources.
For detailed guides and examples, visit the official documentation.
We have build some elixir implementation examples using plug based and phoenix apps:
plug based MCP server using streamable_httpphoenix based MCP server using ssephoenix_live_view based MCP server using streamable_http and UIMIT License. See LICENSE for details.
hermes-mcp is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by cloudwalk. Elixir Model Context Protocol (MCP) SDK. It has 371 GitHub stars.
Yes. hermes-mcp passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/cloudwalk/hermes-mcp" and add it to your Claude Code skills directory (see the Installation section above).
hermes-mcp is primarily written in Elixir. It is open-source under cloudwalk on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh hermes-mcp against similar tools.
No comments yet. Be the first to share your thoughts!