{"id":26718570,"url":"https://github.com/cloudwalk/hermes-mcp","last_synced_at":"2025-04-06T00:10:23.665Z","repository":{"id":279212197,"uuid":"937818017","full_name":"cloudwalk/hermes-mcp","owner":"cloudwalk","description":"Elixir Model Context Protocol (MCP) SDK","archived":false,"fork":false,"pushed_at":"2025-03-26T23:05:44.000Z","size":193,"stargazers_count":67,"open_issues_count":9,"forks_count":4,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-26T23:22:20.864Z","etag":null,"topics":["agentic-ai","elixir","mcp","mcp-server"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/hermes_mcp","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudwalk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"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}},"created_at":"2025-02-24T00:16:09.000Z","updated_at":"2025-03-26T23:05:47.000Z","dependencies_parsed_at":"2025-03-12T16:22:55.649Z","dependency_job_id":"ba3f065b-46b6-4ad7-913e-e9309ed5ebce","html_url":"https://github.com/cloudwalk/hermes-mcp","commit_stats":null,"previous_names":["zoedsoupe/hermes-mcp","cloudwalk/hermes-mcp"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwalk%2Fhermes-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwalk%2Fhermes-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwalk%2Fhermes-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudwalk%2Fhermes-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudwalk","download_url":"https://codeload.github.com/cloudwalk/hermes-mcp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415973,"owners_count":20935387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["agentic-ai","elixir","mcp","mcp-server"],"created_at":"2025-03-27T17:35:09.887Z","updated_at":"2025-04-06T00:10:23.651Z","avatar_url":"https://github.com/cloudwalk.png","language":"Elixir","funding_links":[],"categories":["Elixir","📚 Projects (1974 total)","Generative AI","MCP and Integrations","MCP Servers"],"sub_categories":["MCP Servers","Development Tools","Agent Platforms"],"readme":"# Hermes MCP\n\n[![hex.pm](https://img.shields.io/hexpm/v/hermes_mcp.svg)](https://hex.pm/packages/hermes_mcp)\n[![docs](https://img.shields.io/badge/hex-docs-blue.svg)](https://hexdocs.pm/hermes_mcp)\n[![ci](https://github.com/cloudwalk/hermes-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/cloudwalk/hermes-mcp/actions/workflows/ci.yml)\n\n\u003e [!WARNING]\n\u003e\n\u003e This library is under active development, may expect breaking changes\n\nA high-performance Model Context Protocol (MCP) implementation in Elixir.\n\n## Overview\n\nHermes MCP provides a robust client implementation for the [Model Context Protocol](https://spec.modelcontextprotocol.io/specification/2024-11-05/), leveraging Elixir's exceptional concurrency model and fault tolerance capabilities.\n\n## Features\n\n- Complete client implementation with protocol lifecycle management\n- Multiple transport options (STDIO and HTTP/SSE)\n- Built-in connection supervision and automatic recovery\n- Comprehensive capability negotiation\n- Progress notification support for tracking long-running operations\n- Structured logging system with log level control\n\n## Installation\n\n### Library Usage\n\nAdd Hermes MCP to your dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:hermes_mcp, \"~\u003e 0.3\"}\n  ]\nend\n```\n\n### Standalone CLI Installation\n\nDownload the appropriate binary for your platform from the [GitHub releases page](https://github.com/cloudwalk/hermes-mcp/releases).\n\n```bash\n# Make it executable (Linux/macOS)\n# or hermes_cli-macos-intel, hermes_cli-macos-arm\nmv hermes_mcp_linux hermes-mcp \u0026\u0026 chmod +x hermes-mcp\n\n# Run it\n./hermes-mcp --transport sse --base-url=\"http://localhost:8000\"\n```\n\n## Quick Start\n\n### Interactive Testing\n\nHermes MCP provides interactive tools for testing MCP servers with a user-friendly CLI.\n\n#### Using the CLI Binary:\n\n```bash\n# Test an SSE server\nhermes_cli --transport sse --base-url=\"http://localhost:8000\" --base-path=\"/mcp\"\n\n# Test a local process via STDIO\nhermes_cli --transport stdio --command=\"mcp\" --args=\"run,path/to/server.py\"\n```\n\n#### Using Mix Tasks (For Elixir Developers):\n\n```bash\n# Test an SSE server\nmix hermes.sse.interactive --base-url=\"http://localhost:8000\" --base-path=\"/mcp\"\n\n# Test a local process via STDIO\nmix hermes.stdio.interactive --command=\"mcp\" --args=\"run,path/to/server.py\"\n```\n\nThese interactive shells provide commands for listing and calling tools, exploring prompts, and accessing resources.\n\n### Setting up a Client\n\n```elixir\ndefmodule MyApp.Application do\n  use Application\n\n  def start(_type, _args) do\n    children = [\n      # Start the MCP transport\n      {Hermes.Transport.STDIO, [\n        name: MyApp.MCPTransport,\n        client: MyApp.MCPClient, \n        command: \"mcp\",\n        args: [\"run\", \"path/to/server.py\"]\n      ]},\n      \n      # Start the MCP client using the transport\n      {Hermes.Client, [\n        name: MyApp.MCPClient,\n        transport: [layer: Hermes.Transport.STDIO, name: MyApp.MCPTransport],\n        client_info: %{\n          \"name\" =\u003e \"MyApp\",\n          \"version\" =\u003e \"1.0.0\"\n        },\n        capabilities: %{\n          \"roots\" =\u003e %{\"listChanged\" =\u003e true},\n          \"sampling\" =\u003e %{}\n        }\n      ]}\n    ]\n    \n    opts = [strategy: :one_for_all, name: MyApp.Supervisor]\n    Supervisor.start_link(children, opts)\n  end\nend\n```\n\n### Making Client Requests\n\n```elixir\n# Call a tool\n{:ok, result} = Hermes.Client.call_tool(MyApp.MCPClient, \"example_tool\", %{\"param\" =\u003e \"value\"})\n\n# Handle errors properly\ncase Hermes.Client.call_tool(MyApp.MCPClient, \"unavailable_tool\", %{}) do\n  {:ok, %Hermes.MCP.Response{}} -\u003e\n    # Handle successful result\n    \n  {:error, %Hermes.MCP.Error{} = err} -\u003e\n    # Handle error response\n    IO.puts(inspect(err, pretty: true))\nend\n```\n\n## Documentation\n\nFor detailed guides and examples, visit the [official documentation](https://hexdocs.pm/hermes_mcp)\n\n## Why Hermes?\n\nThe library is named after Hermes, the Greek god of boundaries, communication, and commerce. This namesake reflects the core purpose of the Model Context Protocol: to establish standardized communication between AI applications and external tools.\n\nLike Hermes who served as a messenger between gods and mortals, this library facilitates seamless interaction between Large Language Models and various data sources or tools.\n\n## Local Development\n\n```bash\n# Setup the project\nmix setup\n\n# Run tests\nmix test\n\n# Code quality\nmix lint\n\n# Start development MCP servers\n# Echo server (Python)\njust echo-server\n# Calculator server (Go)\njust calculator-server\n```\n\nThe MCP servers in `priv/dev` require:\n- Python 3.11+ with uv (for echo server)\n- Go 1.21+ (for calculator server)\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed contribution guidelines.\n\n## License\n\nHermes MCP is released under the MIT License. See [LICENSE](./LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudwalk%2Fhermes-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudwalk%2Fhermes-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudwalk%2Fhermes-mcp/lists"}