npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@fre4x/jupyter

v1.0.50

Published

Jupyter Notebook MCP server

Readme

@fre4x/jupyter

Jupyter Notebook MCP server for reading, writing, executing code in .ipynb files, and launching a local Jupyter UI.

Features

  • Read/Write: Full support for .ipynb (JSON) manipulation.
  • Execute: Run code cells in a real Jupyter kernel over the Jupyter WebSocket protocol.
  • Control: Launch or connect to a local Jupyter server, list kernels, and open notebooks in the browser.
  • Mock Mode: Development without a real Jupyter server using MOCK=true.
  • Auto Start: In non-mock mode, the Jupyter server starts during MCP server startup.

Tools

  • jupyter_get_notebook: Read a Jupyter notebook (.ipynb) file.
  • jupyter_create_notebook: Create a new empty Jupyter notebook.
  • jupyter_add_cell: Add a new cell (code/markdown) to a notebook.
  • jupyter_update_cell: Update the content of an existing cell.
  • jupyter_execute_code: Execute code in a real Jupyter kernel.
  • jupyter_list_kernels: List all active Jupyter kernels.
  • jupyter_open_notebook: Open a notebook in the default browser or viewer.

Usage

Mock Mode

MOCK=true npx @fre4x/jupyter

Claude Desktop Configuration

{
  "mcpServers": {
    "jupyter": {
      "command": "npx",
      "args": ["-y", "@fre4x/jupyter"],
      "env": {
        "JUPYTER_ROOT_DIR": "/absolute/path/to/notebooks",
        "JUPYTER_AUTO_OPEN": "true",
        "JUPYTER_START_NOTEBOOK_PATH": "/absolute/path/to/notebooks/demo.ipynb"
      }
    }
  }
}

Requirements

  • Node.js 18+
  • JupyterLab or Jupyter Notebook installed locally for managed startup, or JUPYTER_SERVER_URL pointing at an existing server.
  • xdg-open / open / Windows shell integration for browser launch.

Runtime Behavior

  • MOCK=true keeps the old fixture-only behavior.
  • Without MOCK=true, the server first tries JUPYTER_SERVER_URL if provided.
  • Otherwise it launches a local Jupyter process (jupyter lab, then notebook fallbacks) with --no-browser.
  • The Jupyter runtime is initialized before the MCP server finishes startup, so list_tools and later tool calls share the same ready runtime.
  • After the server is ready, it opens the Jupyter UI in your default browser (if JUPYTER_AUTO_OPEN is not false).
  • If JUPYTER_START_NOTEBOOK_PATH is set, that notebook is opened directly; otherwise the root Jupyter UI is opened.

Environment Variables

  • JUPYTER_SERVER_URL: Use an already-running Jupyter server instead of launching one.
  • JUPYTER_TOKEN: Optional token for an external Jupyter server.
  • JUPYTER_ROOT_DIR: Root directory for managed Jupyter startup. Defaults to the current working directory.
  • JUPYTER_AUTO_OPEN: Set to false to skip browser launch when the server starts.
  • JUPYTER_START_NOTEBOOK_PATH: Notebook to open automatically on startup.
  • JUPYTER_KERNEL_NAME: Kernel name used when code execution needs to create a kernel. Defaults to python3.