ipykernel-mcp
# jupyter-kernel-mcp
Give your AI agent a persistent Jupyter kernel for calculations, data analysis,
and plots. Variables, data, and functions stay available across follow-up requests.
Use an MCP-compatible client and a Jupyter installation with your chosen kernel.
See also [example conversations](docs/usage.md) and [development setup](CONTRIBUTING.md).
## Quick setup with [uvx](https://docs.astral.sh/uv/)
Add this to your client's `mcp.json`, replacing the paths with absolute paths
on your machine:
```json
{
"mcpServers": {
"jupyter-python": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/0x0L/jupyter-kernel-mcp",
"jupyter-kernel-mcp",
"--jupyter", "/path/to/project/.venv/bin/jupyter",
"--kernel", "python3",
"--cwd", "/path/to/project"
]
}
}
}
```
`--jupyter` and `--kernel` are required. Choose a kernel listed by your Jupyter
executable's `kernelspec list` command. `--cwd` is optional and defaults to the
server's working directory. Install analysis libraries in the kernel's environment.
TDQS
Scored across 8 tools
Each tool targets a distinct lifecycle action on the kernel: discover, start, status, restart, interrupt, stop, execute, and get_output. There is no ambiguity between kernel_start/kernel_restart (start launches a new kernel, restart replaces the process while preserving connection), and kernel_execute/kernel_get_output are clearly separated (execute starts, get_output retrieves pending work).
All tools follow a consistent kernel_verb pattern: kernel_discover, kernel_start, kernel_status, kernel_restart, kernel_interrupt, kernel_stop, kernel_execute, kernel_get_output. The naming convention is uniform and predictable across the entire set.
Eight tools is a well-scoped set for a kernel-management MCP server. Each tool covers a distinct and necessary operation for the full kernel lifecycle without redundancy or bloat; the count feels appropriate for the domain.
The tool surface covers the full kernel lifecycle: discovery, start, status, restart, interrupt, stop, execute, and async output retrieval. The only potential gap is code completion/inspection, but for a kernel-execution server the lifecycle coverage is complete with no dead ends.