fastmcp needs mcp 1.x but pyproject pins mcp==2.0.0 -> Hindsight local_embedded broken after every update (request_ctx missing)
Author: LauraAssistantCreated Aug 26, 2026Updated Sep 17, 2026
Labelstype/bugcomp/pluginstool/memorytool/mcpP3area/memoryarea/install-update
Summary
After hermes update, the Hindsight local_embedded memory provider shows Status: not available ✗ in hermes memory status and "hindsight configured but not available" in hermes doctor. The root cause is an internally inconsistent dependency pin, not a broken install.
Environment
- Hermes v0.20.5 (2026.8.19), git install, Windows 11, Python 3.11.15 venv
Symptom
$ hermes memory status
Plugin: installed ✓
Status: not available ✗
Missing:
✗ HINDSIGHT_API_KEY → https://ui.hindsight.vectorize.io <- red herring, see below
Real error chain (visible when probing the venv):
import hindsight
-> fastmcp/__init__.py __getattr__: raise ImportError("FastMCP server support is not installed...")
from exc: fastmcp/server/context.py, line 15:
from mcp.server.lowlevel.server import request_ctx
ImportError: cannot import name 'request_ctx' from 'mcp.server.lowlevel.server'
is_available() -> _check_local_runtime() -> import hindsight fails -> provider marked unavailable, recall pipeline disabled.
Root cause: version pin conflict
pyproject.toml pins mcp==2.0.0 (in the mcp and computer-use extras), but:
fastmcp3.4.5 / 3.4.7 importsrequest_ctxfrommcp.server.lowlevel.server— mcp 2.0.0 removed this symbol entirely (grep across the whole installed mcp 2.0.0 package: zero occurrences). It exists in mcp 1.x.claude-agent-sdk(fastmcp's dependency) requiresmcp<2.0.0,>=1.23.0—pip checkconfirms the conflict.
So the pinned dependency graph can never import cleanly: fastmcp needs mcp 1.x, Hermes pins mcp 2.0.0.
Extra notes
- The embedded daemon itself still runs: the manager falls back to
uvx hindsight-api@<version>, whose isolated env resolves the consistent setmcp 1.29.1 + fastmcp 3.4.7. But the in-venv_check_local_runtime()probe still fails, so the plugin reports unavailable regardless. hermes memory statusprints "Missing: HINDSIGHT_API_KEY" forlocal_embeddedmode — misleading, since that key is only required formode: cloud(config schemawhen: {mode: cloud}).- Recurrence: every
hermes updatere-resolves and re-installsmcp==2.0.0, re-breaking the venv each time.
Workaround (local)
venv/Scripts/python.exe -m pip install "mcp==1.29.1"
Restores import hindsight and Status: available ✓.
Suggested fix
- Pin
mcp1.x where fastmcp is required, or make fastmcp's server import lazy/optional in thehindsightclient path, or otherwise align the pins (e.g. bump fastmcp to a version compatible with mcp 2.0.0).
Source: NousResearch/hermes-agent