Skip to main content
Glama
README.mdβ€’4.13 kB
# 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 ## πŸ“¦ Installation ### Quick Install (Recommended) ```bash # 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 ```bash # 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 ```bash # 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 ```python # 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 ```python # Add code cells to notebooks mcp__jupyter-executor__add_notebook_cell("analysis.ipynb", "code", "import pandas as pd") ``` ### Check Kernel Status ```python # Check if kernel is running mcp__jupyter-executor__kernel_status() ``` ### Shutdown Kernel ```python # 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 ```python # 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? ```bash # Check if server is connected claude mcp list # Should show: # jupyter-executor: ... - βœ“ Connected ``` ### Kernel not starting? ```bash # 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!"

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