# Connect Hermes (Nous Research) to Axiom

**Transport:** bridge today (no first-party MCP client); upstream-pending
**Auth:** local-stdio (Phase 0) when bridged
**Status:** Pending upstream — Nous Research's Hermes models do not ship a first-party MCP client harness as of 2026-Q2

Hermes is Nous Research's open-weights model family (Hermes 3, Hermes 4,
DeepHermes). It is a *model*, not a *harness* — there is no
"Hermes harness" the way there is a Claude Code or a Goose. Existing
deployments wire Hermes into other harnesses (Open WebUI, LM Studio,
Ollama-WebUI, custom LangChain/AutoGen agents).

The right framing: pick a harness that runs Hermes (most of the
Tier-3 framework adapters in this folder do), then use that harness's
MCP recipe.

## What's possible today

Three concrete paths, in order of friction:

### 1. Use a framework adapter and load Hermes as the model

Most direct. Use [langchain.md](langchain.md), [autogen.md](autogen.md),
or [crewai.md](crewai.md) as written, but swap the model client to point
at Hermes (typically via the OpenAI-compatible endpoint Ollama, vLLM,
or LM Studio exposes):

```python
# LangChain example with Hermes via Ollama
from langchain_openai import ChatOpenAI

model = ChatOpenAI(
    base_url="http://localhost:11434/v1",  # or vLLM endpoint
    model="hermes-3-llama-3.1-70b",
    api_key="ollama",                      # placeholder; Ollama ignores auth
)
# ... rest of the LangChain MCP recipe is identical.
```

The Axiom side of the wire (the MCP server) is unchanged.

### 2. Use Open WebUI with the OpenAI-MCP bridge

Open WebUI supports MCP via community bridges (e.g., `mcpo` and similar
adapters that expose MCP tools as OpenAPI endpoints). Wire the Hermes
model in Open WebUI and the Axiom MCP server through the bridge; the
model sees Axiom's tools as OpenAPI functions.

### 3. Bridge via shell

Same fallback as the [open-interpreter.md](open-interpreter.md) and
[aider.md](aider.md) recipes — call `axi mcp call <tool>` from whatever
prompt-execution loop hosts the model.

## Verify

Whichever path you pick, the verify step is the same:

```python
# In whichever harness you ended up using:
result = call_tool("axiom_node__hooks_list", {})
print(result)
```

Expected:

```json
{
  "node": "/Users/<you>/.axiom",
  "hooks_total": 0,
  "events_observed": [],
  "by_event": {}
}
```

## What we'd need upstream

For there to be a real "Hermes" recipe distinct from the framework
recipes, Nous Research would need to ship a reference harness with
first-party MCP support — analogous to how Anthropic ships Claude Code
or Block ships Goose. That is not their current product posture; Nous
ships *models*, and harnesses are the consumer's choice.

This recipe stays a placeholder until that changes, with the explicit
note that "use Hermes via [framework recipe]" is the intended pattern.

## Notes

- Hermes 3 and Hermes 4 have strong tool-use behaviour, so once any
  MCP-capable harness is wired the model is well-suited to call Axiom's
  tools. The recipe friction is purely on the harness side, not the
  model side.
- Track upstream MCP-client work at https://github.com/NousResearch — if
  a future Hermes-branded harness ships, this recipe will be rewritten
  to use it directly.

## References

- ADR-038 §D7
- Nous Research: https://nousresearch.com
- For any framework adapter: see the recipes in this folder for
  LangChain, CrewAI, AutoGen, Mastra.

_Copyright (c) 2026 B-Tree Ventures, LLC. Apache-2.0 licensed._
