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

Related Packages

  • 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_ai_hermes-0.1.6.tar.gz (98.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyter_ai_hermes-0.1.6-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file jupyter_ai_hermes-0.1.6.tar.gz.

File metadata

  • Download URL: jupyter_ai_hermes-0.1.6.tar.gz
  • Upload date:
  • Size: 98.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for jupyter_ai_hermes-0.1.6.tar.gz
Algorithm Hash digest
SHA256 604db55c4f2f6efe748f5647b141eb4823efb5b6c014c5a5577349ee4e7e0627
MD5 b841acd903fd415f41bc7cd59fd0cdf7
BLAKE2b-256 8c4afadcc53202e2605a35735996a30559ae17da76095054706d18441efd471f

See more details on using hashes here.

File details

Details for the file jupyter_ai_hermes-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_ai_hermes-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3aed5412b2ac7ca2a5ecea1316aa20d67a1de06351a9a61cc924b0c731db5e1e
MD5 8f365f9199c938e9ad25fe787aa4ffac
BLAKE2b-256 78af74c85766f52f42fec60143c8e24a31282e23707e69e5996327f6230e8038

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page