Skip to main content
Glama

ML Jupyter MCP - UV-Centric Persistent Jupyter Kernel for Claude

Execute Python code with persistent state across Claude conversations using MCP (Model Context Protocol).

✨ Features

  • πŸ”„ Persistent State - Variables and imports persist across executions

  • πŸ““ Notebook Support - Create and manage Jupyter notebooks

  • 🐍 Virtual Environment Detection - Automatically uses project's .venv

  • πŸš€ Easy Installation - One-line setup with Claude MCP

Related MCP server: Claude Server MCP

πŸ“¦ Installation

# Install from PyPI
pipx install ml-jupyter-mcp

# Add to Claude Code
claude mcp add jupyter-executor ml-jupyter-mcp

That's it! The MCP server is now available in all your Claude sessions.

Alternative: Install with UV

# Install with UV tool
uv tool install ml-jupyter-mcp

# Add to Claude Code  
claude mcp add jupyter-executor "uvx ml-jupyter-mcp"

Alternative: Clone and Install Locally

# Clone the repository
git clone https://github.com/mayankketkar/ml-jupyter-mcp.git
cd ml-jupyter-mcp

# Create virtual environment
uv venv .venv
source .venv/bin/activate

# Install in development mode
pip install -e .

# Add to Claude Code
claude mcp add jupyter-executor "$(pwd)/.venv/bin/python -m ml_jupyter_mcp.server"

🎯 Usage

Once installed, you can use these MCP tools in any Claude conversation:

Execute Python Code

# In Claude, use:
mcp__jupyter-executor__execute_code("x = 42; print(f'x = {x}')")

# Later in the same conversation:
mcp__jupyter-executor__execute_code("print(f'x is still {x}')")  # x persists!

Create Jupyter Notebooks

# Add code cells to notebooks
mcp__jupyter-executor__add_notebook_cell("analysis.ipynb", "code", "import pandas as pd")

Check Kernel Status

# Check if kernel is running
mcp__jupyter-executor__kernel_status()

Shutdown Kernel

# Clean shutdown when done
mcp__jupyter-executor__shutdown_kernel()

πŸ› οΈ How It Works

  1. Kernel Daemon - Maintains a persistent Jupyter kernel in the background

  2. MCP Server - Provides tools that Claude can invoke

  3. State Persistence - All variables, imports, and definitions persist across tool calls

  4. Auto-detection - Automatically finds and uses your project's .venv if available

πŸ“ Example Workflow

# Start a data analysis session
mcp__jupyter-executor__execute_code("""
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Load your data
df = pd.read_csv('data.csv')
print(f"Loaded {len(df)} rows")
""")

# Continue analysis in next message
mcp__jupyter-executor__execute_code("""
# df is still available!
summary = df.describe()
print(summary)
""")

# Create a notebook with your analysis
mcp__jupyter-executor__add_notebook_cell("analysis.ipynb", "code", """
# Data Analysis
df.groupby('category').mean().plot(kind='bar')
plt.title('Average by Category')
plt.show()
""")

πŸ”§ Configuration

The tool automatically:

  • Detects and uses .venv in your project directory

  • Installs required packages on first notebook creation

  • Manages kernel lifecycle automatically

πŸ“‹ Requirements

  • Python 3.8+

  • Claude Code CLI (claude command)

πŸ› Troubleshooting

MCP tools not showing up?

# Check if server is connected
claude mcp list

# Should show:
# jupyter-executor: ... - βœ“ Connected

Kernel not starting?

# Remove and re-add the server
claude mcp remove jupyter-executor
claude mcp add jupyter-executor "uvx ml-jupyter-mcp"

Port 9999 already in use?

The kernel daemon uses port 9999. If it's in use, the tool will handle it automatically.

🀝 Contributing

Contributions welcome! Please feel free to submit a Pull Request.

πŸ“„ License

MIT License - feel free to use in your projects!

πŸ™ Acknowledgments

Built for the Claude Code community to enable persistent Python execution across conversations.


Pro Tip: After installation, try asking Claude: "Use jupyter-executor to calculate fibonacci numbers and keep them in memory for later use!"

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mayank-ketkar-sf/ClaudeJupy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server