feat(hermes): add MCP server support for vector-based RAG memory #4

Open
eumel wants to merge 1 commit from eumel/nixos-config:feature/hermes-mcp-memory into main
Contributor

Erweitert das Hermes NixOS Modul um eine mcpServers Option, die per-instanz MCP (Model Context Protocol) Server konfiguriert.

Was gemacht wird

  • Neue mcpServers Option im hermes.nix Modul (attrsOf submodule)
  • Jeder MCP Server bekommt command, args, env, timeout
  • Konfiguration wird an Hermes config.yaml unter mcp_servers uebergeben
  • Bekannte MCP Server (icm, qmd) werden automatisch als Packages in den Container gepackt

ICM (Infinite Context Memory)

  • Vektorbasiertes RAG mit Auto-Dedup (85% Similarity)
  • Temporal Decay (alte Fakten verblassen)
  • Hybrid Search (BM25 + Cosine via sqlite-vec)
  • 31 MCP Tools (store, recall, forget, Knowledge Graph CRUD)
  • Cross-Agent Memory (Fakten die ein Agent speichert sind fuer alle sichtbar)

qmd

  • Hybride Suchmaschine (BM25 + Vector + LLM Reranking)
  • MCP Server mit query, get, multi_get, status tools

Beispiel

nix
instances.hermes.research = {
domain = "research.example.com";
port = 8642;
mcpServers = {
icm = { command = "icm"; args = [ "serve" ]; };
qmd = { command = "qmd"; args = [ "mcp" ]; };
};
};

Siehe: https://github.com/numtide/llm-agents.nix
https://github.com/rtk-ai/icm
https://github.com/tobi/qmd

Erweitert das Hermes NixOS Modul um eine mcpServers Option, die per-instanz MCP (Model Context Protocol) Server konfiguriert. ## Was gemacht wird - Neue mcpServers Option im hermes.nix Modul (attrsOf submodule) - Jeder MCP Server bekommt command, args, env, timeout - Konfiguration wird an Hermes config.yaml unter mcp_servers uebergeben - Bekannte MCP Server (icm, qmd) werden automatisch als Packages in den Container gepackt ## ICM (Infinite Context Memory) - Vektorbasiertes RAG mit Auto-Dedup (85% Similarity) - Temporal Decay (alte Fakten verblassen) - Hybrid Search (BM25 + Cosine via sqlite-vec) - 31 MCP Tools (store, recall, forget, Knowledge Graph CRUD) - Cross-Agent Memory (Fakten die ein Agent speichert sind fuer alle sichtbar) ## qmd - Hybride Suchmaschine (BM25 + Vector + LLM Reranking) - MCP Server mit query, get, multi_get, status tools ## Beispiel nix instances.hermes.research = { domain = "research.example.com"; port = 8642; mcpServers = { icm = { command = "icm"; args = [ "serve" ]; }; qmd = { command = "qmd"; args = [ "mcp" ]; }; }; }; Siehe: https://github.com/numtide/llm-agents.nix https://github.com/rtk-ai/icm https://github.com/tobi/qmd
Add mcpServers option to the Hermes NixOS module, allowing per-instance
MCP (Model Context Protocol) server configuration. Each server gets
command, args, env, and timeout — passed to Hermes config.yaml under
mcp_servers, making tools available as mcp_<name>_<tool>.

The module auto-detects known MCP servers (icm, qmd) and adds their
packages from the llm-agents.nix flake to the container's system
packages, so the binaries are on PATH.

Example usage:

  instances.hermes.research = {
    domain = "research.example.com";
    port = 8642;
    mcpServers = {
      icm = {
        command = "icm";
        args = [ "serve" ];
      };
      qmd = {
        command = "qmd";
        args = [ "mcp" ];
      };
    };
  };

ICM (Infinite Context Memory) provides:
- Vector RAG with auto-dedup (85% similarity)
- Temporal decay (stale facts fade)
- Hybrid search (BM25 30% + cosine 70% via sqlite-vec)
- 31 MCP tools (store, recall, forget, knowledge graph CRUD)
- Cross-agent memory (facts stored by one agent are visible to all)

qmd provides:
- Hybrid search (BM25 + vector + LLM reranking)
- MCP server with query, get, multi_get, status tools

See: https://github.com/numtide/llm-agents.nix
     https://github.com/rtk-ai/icm
     https://github.com/tobi/qmd
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u feature/hermes-mcp-memory:eumel-feature/hermes-mcp-memory
git switch eumel-feature/hermes-mcp-memory

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff eumel-feature/hermes-mcp-memory
git switch eumel-feature/hermes-mcp-memory
git rebase main
git switch main
git merge --ff-only eumel-feature/hermes-mcp-memory
git switch eumel-feature/hermes-mcp-memory
git rebase main
git switch main
git merge --no-ff eumel-feature/hermes-mcp-memory
git switch main
git merge --squash eumel-feature/hermes-mcp-memory
git switch main
git merge --ff-only eumel-feature/hermes-mcp-memory
git switch main
git merge eumel-feature/hermes-mcp-memory
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
palo/nixos-config!4
No description provided.