Skip to main content

jupyter-ai-hermes

Hermes Agent as an ACP persona for Jupyter AI, with live notebook context injection and custom MCP tools for cell metadata management.

What it does

  • Injects live notebook context into every Hermes prompt — active notebook path, current cell ID, and cell content — so Hermes always knows what you're working on.
  • Documents all available MCP CLI tools so Hermes prefers them over raw nbformat scripts.
  • Registers custom MCP tools (set_cell_metadata, get_cell_metadata, list_cell_tags) for operations the built-in toolkit doesn't cover.

Requirements

  • Python >= 3.12
  • Jupyter AI with ACP client support
  • Hermes Agent installed (the hermes binary must be on PATH)

Installation

pip install jupyter-ai-hermes

Then restart JupyterLab. The "Hermes" persona will appear in the Jupyter AI chat panel.

Configuration

By default the package searches for hermes in PATH. Override with:

export HERMES_BIN_PATH=/path/to/hermes

The MCP server URL defaults to http://localhost:3001/mcp. Override with:

export JUPYTER_MCP_URL=http://localhost:3002/mcp
  • jupyter-hermes-proxy — Launch the Hermes Agent dashboard from the JupyterLab launcher panel with automatic port management via jupyter-server-proxy.

Both packages share the same HERMES_BIN_PATH environment variable convention.

MCP Tools

The package registers 3 custom MCP tools alongside the 18 built-in Jupyter AI notebook tools:

Tool What it does
set_cell_metadata Set cell metadata (e.g. Rise slideshow types, custom tags)
get_cell_metadata View cell metadata for debugging
list_cell_tags List all cells matching specific tags

All tools are also available via the jupyter-mcp-cli command-line bridge:

# Set a cell as a Rise slideshow slide
jupyter-mcp-cli set_cell_metadata \
  --arg file_path=notebook.ipynb \
  --arg cell_id=cell-abc123 \
  --arg 'metadata={"slideshow":{"slide_type":"slide"}}'

# List all cells tagged with "important"
jupyter-mcp-cli list_cell_tags \
  --arg file_path=notebook.ipynb \
  --arg tags='["important"]'

Entry Points

Group Name Target
jupyter_ai.personas hermes-acp jupyter_ai_hermes.hermes:HermesAcpPersona
jupyter_server_mcp.tools hermes_mcp_tools jupyter_ai_hermes.mcp_tools:TOOLS
console_scripts jupyter-mcp-cli jupyter_ai_hermes.mcp_cli:main

Architecture

┌──────────────────────────────────────────────┐
│  JupyterLab                                  │
│  ┌─────────────┐    ┌─────────────────────┐  │
│  │ Notebook UI │    │ Jupyter AI Chat     │  │
│  │ (YDoc)      │◄──►│ ┌─────────────────┐ │  │
│  └─────────────┘    │ │ Hermes Persona  │ │  │
│                     │ │  ├─ gather_ctx  │ │  │
│  ┌─────────────┐    │ │  ├─ MCP docs    │ │  │
│  │ MCP Server  │◄──►│ │  └─ forward ──► │ │  │
│  │ :3001       │    │ └─────────────────┘ │  │
│  └─────────────┘    └─────────────────────┘  │
│                                              │
│  ┌─────────────────────┐                     │
│  │ jupyter-mcp-cli     │                     │
│  │ (CLI bridge)        │                     │
│  └─────────────────────┘                     │
└──────────────────────────────────────────────┘
         │
         ▼
┌──────────────────────┐
│  Hermes Agent (ACP)  │
│  ┌────────────────┐  │
│  │ Tool execution │  │
│  │ jupyter-mcp-cli│  │
│  └────────────────┘  │
└──────────────────────┘

Development

git clone git@github.com:dive4dec/jupyter-ai-hermes.git
cd jupyter-ai-hermes
pip install -e ".[dev]"
pytest

License

MIT

Metadata

Release files for jupyter-ai-hermes 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyter-ai-hermes 0.1.7
File Size Uploaded
jupyter_ai_hermes-0.1.7.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyter-ai-hermes 0.1.7
File Interpreter ABI Platform
jupyter_ai_hermes-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 26.7 kB

Release files / jupyter_ai_hermes-0.1.7.tar.gz

Download URL jupyter_ai_hermes-0.1.7.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2919a5d1ae6091cf2130984e570e5d927067e386c29fa4a2abf321cb47598268
BLAKE2b-256 checksum
How to use checksums
4a104348a5b19d63c9bd322d620a8f13262e6e04230f83d405a96b55e81a67fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release files / jupyter_ai_hermes-0.1.7-py3-none-any.whl

Download URL jupyter_ai_hermes-0.1.7-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
843c6efad7524296fc5f3c476afba7c97fac03ba2222df73ec5d681f9bf15dd7
BLAKE2b-256 checksum
How to use checksums
6c613fbcdd2c838f0e197a72ede2be1816b0fb99c52dadc41ecf0e336cacf2ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page