#95855·hermes-agent

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:

  1. fastmcp 3.4.5 / 3.4.7 imports request_ctx from mcp.server.lowlevel.servermcp 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.
  2. claude-agent-sdk (fastmcp's dependency) requires mcp<2.0.0,>=1.23.0pip check confirms 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 set mcp 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 status prints "Missing: HINDSIGHT_API_KEY" for local_embedded mode — misleading, since that key is only required for mode: cloud (config schema when: {mode: cloud}).
  • Recurrence: every hermes update re-resolves and re-installs mcp==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 mcp 1.x where fastmcp is required, or make fastmcp's server import lazy/optional in the hindsight client path, or otherwise align the pins (e.g. bump fastmcp to a version compatible with mcp 2.0.0).

Source: NousResearch/hermes-agent