datalayer/jupyter-mcp-server

datalayer/jupyter-mcp-server

от datalayer
Управляет Jupyter Notebook в реальном времени: выполняет ячейки, читает и редактирует код, переключается между блокнотами. Поддерживает изображения и графики.

Datalayer

Become a Sponsor

🪐🔧 Jupyter MCP Server

An MCP server developed for AI to connect and manage Jupyter Notebooks in real-time — and scale your Code Sandbox from local to the cloud (Datalayer, Kaggle, Google Colab, Modal, Daytona, E2B, CoreWeave, Cloudflare...)

Developed by Datalayer - Join our Discord

PyPI - Version Total PyPI downloads Docker Pulls License

Built and maintained by Datalayer

📖 Documentation  ·  🔧 Tools  ·  💬 Community

HOT NEWS

No process to run. Datalayer now hosts this server for you at https://mcp.datalayer.run/mcp — one endpoint for every agent and every notebook. Sign in from your browser, approve what the agent may do, and your work keeps running on the server after the agent disconnects.

→ Hosted Jupyter MCP Server

Jupyter MCP Server 2

Claude Code plugin

One command to connect Claude Code, with /datalayer:notebook, /datalayer:run and /datalayer:status on top:

/plugin marketplace add datalayer/jupyter-mcp-server
/plugin install datalayer

→ Datalayer plugin for Claude Code


Free and open source, BSD 3-Clause — point it at any Jupyter you already run, local or JupyterHub, no account needed.

Built and maintained by Datalayer, where the same server drives always-on Notebooks with GPU Code Sandboxes and durable execution — so your agent keeps working on your data when your laptop does not.

Часто задаваемые вопросы

Инструменты были проиндексированы:
connect_to_jupyter

Подключается к Jupyter серверу динамически по URL и токену. Этот инструмент позволяет подключаться к разным Jupyter серверам без перезапуска MCP сервера или правки конфигурационных файлов. Особенно полезен, когда: - Работаете с несколькими Jupyter серверами на разных портах с разными токенами - Токен Jupyter сервера меняется динамически - Нужно переключаться между разными экземплярами Jupyter Примеры использования: - "Подключиться к http://localhost:8888 с токеном abc123" - "Подключиться к http://localhost:8889 без аутентификации"

Параметры
  • jupyter_tokenstring | null

    Токен аутентификации сервера Jupyter

  • jupyter_urlstringобязательный

    URL сервера Jupyter для подключения (например, 'http://localhost:8888')

  • providerstring

    Тип провайдера

delete_cell

Удаляет конкретные ячейки из текущего активного ноутбука и возвращает исходный код удалённых ячеек (если include_source=True).

Параметры
  • cell_indicesinteger[]обязательный

    Список индексов ячеек для удаления (отсчет от нуля).

  • include_sourceboolean

    Включать ли источник удалённых ячеек

edit_cell_source

Выполняет точную замену (find-and-replace) в исходном коде ячейки — как инструмент Edit в редакторе.Находит old_string в ячейке и заменяет его на new_string. Совпадение ищется буквально (не regex) и может охватывать несколько строк. По умолчанию old_string должен встречаться ровно один раз; для нескольких вхождений установите replace_all=True. Возвращает diff внесённых изменений. Предпочитайте этот инструмент overwrite_cell_source для небольших точечных правок — он безопаснее, потому что неизменённые части ячейки остаются нетронутыми. Сначала вызовите read_cell, чтобы посмотреть текущий исходник и составить точный old_string.

Параметры
  • cell_indexintegerобязательный

    Индекс редактируемой ячейки (начиная с нуля)

  • new_stringstringобязательный

    Строка замены

  • old_stringstringобязательный

    Точная строка для поиска в исходном коде ячейки.

  • replace_allboolean

    Заменить все вхождения (по умолчанию: только первое)

execute_cell

Выполняет ячейку из текущего активного блокнота с таймаутом и возвращает её результаты.

Параметры
  • cell_indexintegerобязательный

    Индекс ячейки для выполнения (отсчет от нуля).

  • progress_intervalinteger

    Секунды между обновлениями прогресса, когда stream=True

  • streamboolean

    Включите потоковые обновления прогресса (включая индикатор времени) для долго выполняющихся ячеек.

  • timeoutinteger

    Максимальное количество секунд ожидания выполнения (0 = использовать значение по умолчанию из конфигурации)

execute_code

Выполняет код напрямую в ядре (не сохраняется в блокнот). По умолчанию нацелено на ядро текущего активного блокнота. Передайте kernel_id, чтобы выполнить код напрямую в конкретном ядре — включая «сырые» ядра, к которым не привязан блокнот. Рекомендуется использовать в следующих случаях: 1. Выполнение магических команд Jupyter (например, %timeit, %pip install xxx) 2. Профилирование производительности и отладка. 3. Просмотр промежуточных значений переменных (например, print(xxx), df.head()) 4. Временные вычисления и быстрые тесты (например, np.mean(df['xxx'])) 5. Выполнение shell-команд на сервере Jupyter (например, !git xxx) Ни при каких обстоятельствах не используйте этот инструмент для: 1. Импортирования новых модулей или присваивания переменных, которые влияют на последующее выполнение блокнота. 2. Выполнения опасного кода, который может навредить серверу Jupyter или данным пользователя без разрешения.

Параметры
  • codestringобязательный

    Код для выполнения (поддерживает магические команды с %, команды оболочки с !)

  • kernel_idstring | null

    Укажите существующее ядро по ID (например, сырое ядро без блокнота). Если ID не указан, используется ядро текущего блокнота.

  • timeoutinteger

    Максимальное количество секунд ожидания выполнения (0 = использовать значение по умолчанию из конфигурации)

insert_cell

Вставляет ячейку в указанную позицию из текущего активированного ноутбука.

Параметры
  • cell_indexintegerобязательный

    Целевой индекс для вставки (отсчёт с нуля), используйте -1, чтобы добавить в конец.

  • cell_sourcestringобязательный

    Исходное содержимое ячейки

  • cell_typeenumобязательный

    Тип вставляемой ячейки

insert_execute_code_cell

Вставляет ячейку по указанному индексу в текущем активном блокноте, выполняет её с таймаутом и возвращает результаты выполнения. Это упрощённый инструмент для совместного вызова insert_cell и execute_cell. Рекомендуется использовать, если нужно одновременно вставить ячейку и выполнить её.

Параметры
  • cell_indexintegerобязательный

    Индекс ячейки для вставки и выполнения (с нуля)

  • cell_sourcestringобязательный

    Исходный код для ячейки.

  • timeoutinteger

    Максимальное количество секунд ожидания выполнения (0 = использовать значение по умолчанию из конфигурации)

list_filesтолько чтение

Рекурсивно вывести список всех файлов и каталогов в файловой системе Jupyter server. Используется для изучения структуры файловой системы Jupyter server или для поиска конкретных файлов или каталогов.

Параметры
  • limitinteger

    Максимальное количество элементов для возврата (0 означает без ограничений)

  • max_depthinteger

    Максимальная глубина рекурсивного обхода подкаталогов

  • pathstring

    Начальный путь для перечисления (пустая строка означает корневой каталог)

  • patternstring

    Шаблон glob для фильтрации путей файлов

  • start_indexinteger

    Начальный индекс для пагинации (с нуля)

list_kernelsтолько чтение

Список всех доступных ядер на сервере Jupyter. Этот инструмент показывает все работающие и доступные сессии ядер на сервере Jupyter, включая их идентификаторы, имена, состояния, информацию о подключении и спецификации ядер. Полезен для мониторинга ресурсов ядер и определения конкретных ядер для подключения.

Параметры

Без параметров.

list_notebooksтолько чтение

Выведи список всех ноутбуков, которые использовались через инструмент use_notebook.

Параметры

Без параметров.

move_cell

Перемещает ячейку из source_index в target_index в текущем активном ноутбуке. Ячейка удаляется из source_index и помещается на target_index. Промежуточные ячейки сдвигаются, заполняя пробел. Тип ячейки, исходный код и выводы сохраняются. Пример: в ноутбуке [A, B, C, D] вызов move_cell(1, 3) даёт [A, C, D, B]. Используйте этот инструмент вместо ручного удаления и повторной вставки ячейки — он атомарен и сохраняет метаданные ячейки. Если нужно, сначала вызовите read_notebook, чтобы увидеть индексы ячеек.

Параметры
  • source_indexintegerобязательный

    Индекс перемещаемой ячейки (с нуля)

  • target_indexintegerобязательный

    Индекс назначения, куда попадёт ячейка (начиная с нуля).

overwrite_cell_source

Заменяет всё содержимое ячейки в текущем активном блокноте. Возвращает diff с внесёнными изменениями. Используйте эту команду для полной перезаписи ячейки. Для небольших точечных правок лучше вызывать edit_cell_source — так безопаснее при частичном редактировании.

Параметры
  • cell_indexintegerобязательный

    Индекс перезаписываемой ячейки (начиная с 0)

  • cell_sourcestringобязательный

    Новый полный исходный код ячейки

read_cellтолько чтение

Читает конкретную ячейку из текущего активного блокнота и возвращает её метаданные (индекс, тип, количество выполнений), исходный код и выводы (для ячеек с кодом)

Параметры
  • cell_indexintegerобязательный

    Индекс считываемой ячейки (начиная с нуля)

  • include_outputsboolean

    Включает выходные данные в ответ (только для ячеек кода).

read_notebookтолько чтение

Читает блокнот и возвращает индекс, исходное содержимое, тип и счетчик выполнения каждой ячейки. Используйте краткий формат для быстрого обзора структуры блокнота. Это удобно для поиска конкретных ячеек под такие операции, как удаление или вставка. Используйте подробный формат для получения детальной информации о блокноте. Это удобно для отладки и анализа. Рекомендуется сначала взять краткий формат с большим лимитом, чтобы оценить структуру блокнота, а затем переключиться на подробный формат с точным индексом и лимитом, чтобы получить детали по нужным ячейкам.

Параметры
  • limitinteger

    Максимальное количество элементов для возврата (0 означает без ограничений)

  • notebook_namestringобязательный

    Идентификатор блокнота для чтения

  • response_formatenum

    Формат ответа: «brief» вернёт первую строку и количество строк, «detailed» вернёт полный исходный код ячейки.

  • start_indexinteger

    Начальный индекс для пагинации (с нуля)

restart_notebook

Перезагружает ядро для указанного блокнота.

Параметры
  • notebook_namestringобязательный

    Идентификатор блокнота для перезапуска

unuse_notebook

Отменяет использование в конкретной записной книжке и освобождает её ресурсы.

Параметры
  • notebook_namestringобязательный

    Идентификатор блокнота для отключения

use_notebook

Используйте notebook и активируйте его для последующих операций с ячейками. Все операции с ячейками будут выполняться на текущем активированном notebook. Активация нового notebook деактивирует ранее активированный notebook. Повторно активируйте ранее активированный notebook, используя те же notebook_name и notebook_path.

Параметры
  • kernel_idstring

    Конкретный ID ядра для использования (будет создан новый, если пропущено)

  • modeenum

    Режим работы блокнота: «connect» — подключиться к существующему блокноту и активировать его, «create» — создать новый и активировать его.

  • notebook_namestringобязательный

    Уникальный идентификатор блокнота

  • notebook_pathstringобязательный

    Путь к файлу блокнота относительно корня сервера Jupyter (например, 'notebook.ipynb')

2.2.4основная
2.2.3
2.2.2
2.2.1
2.2.0
2.1.16
2.1.15
2.1.14
2.1.13
2.1.12
2.1.11
2.1.10
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.0
1.5.3
1.5.2
1.5.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.0
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.0
0.23.0
0.22.1
0.22.0
0.21.2
0.21.1
0.21.0
0.20.1
0.19.0
0.18.2
0.18.1
0.18.0
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.4
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.2
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0

Выберите клиент, чтобы установить datalayer/jupyter-mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "datalayer-jupyter-mcp-server-lbir2cpm6n": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "datalayer-jupyter-mcp-server-lbir2cpm6n": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "datalayer-jupyter-mcp-server-lbir2cpm6n": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"datalayer-jupyter-mcp-server-lbir2cpm6n\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"jupyter-mcp-server@latest\"],\"env\":{\"JUPYTER_URL\":\"http://localhost:8888\",\"JUPYTER_TOKEN\":\"MY_TOKEN\",\"ALLOW_IMG_OUTPUT\":\"true\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "datalayer-jupyter-mcp-server-lbir2cpm6n": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add datalayer-jupyter-mcp-server-lbir2cpm6n --env JUPYTER_URL=http://localhost:8888 --env JUPYTER_TOKEN=MY_TOKEN --env ALLOW_IMG_OUTPUT=true -- uvx jupyter-mcp-server@latest

Либо через JSON-конфиг:

claude mcp add-json datalayer-jupyter-mcp-server-lbir2cpm6n "{\"command\":\"uvx\",\"args\":[\"jupyter-mcp-server@latest\"],\"env\":{\"JUPYTER_URL\":\"http://localhost:8888\",\"JUPYTER_TOKEN\":\"MY_TOKEN\",\"ALLOW_IMG_OUTPUT\":\"true\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add datalayer-jupyter-mcp-server-lbir2cpm6n --env JUPYTER_URL=http://localhost:8888 --env JUPYTER_TOKEN=MY_TOKEN --env ALLOW_IMG_OUTPUT=true -- uvx jupyter-mcp-server@latest

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.datalayer-jupyter-mcp-server-lbir2cpm6n]
command = "uvx"
args = ["jupyter-mcp-server@latest"]

[mcp_servers.datalayer-jupyter-mcp-server-lbir2cpm6n.env]
JUPYTER_URL = "http://localhost:8888"
JUPYTER_TOKEN = "MY_TOKEN"
ALLOW_IMG_OUTPUT = "true"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите datalayer/jupyter-mcp-server, а в поле команды запуска — строку ниже:
uvx jupyter-mcp-server@latest

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "datalayer-jupyter-mcp-server-lbir2cpm6n": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "datalayer-jupyter-mcp-server-lbir2cpm6n": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например datalayer-jupyter-mcp-server-lbir2cpm6n.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: datalayer-jupyter-mcp-server-lbir2cpm6n
    command: uvx
    args:
      - "jupyter-mcp-server@latest"
    env:
      JUPYTER_URL: http://localhost:8888
      JUPYTER_TOKEN: MY_TOKEN
      ALLOW_IMG_OUTPUT: true
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "datalayer-jupyter-mcp-server-lbir2cpm6n": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

Похожие MCP-сервера

jjsantos01/jupyter-notebook-mcp

jjsantos01/jupyter-notebook-mcp

от jjsantos01

JupyterMCP - MCP-сервер, подключающий Claude AI к Jupyter Notebook (только v6.x). Claude выполняет Python-код, управляет ячейками, анализирует данные и строит графики. Полезен для AI-ассистированно...

Jupyter Notebook⭐ 128
yanmxa/scriptflow-mcp

yanmxa/scriptflow-mcp

от yanmxa

MCP-сервер для превращения сложных AI-диалогов в готовые скрипты, которые можно выполнять, версионировать и переиспользовать. Поддерживает Python, Bash, Node.js. Управляй библиотекой автономных сце...

TypeScript⭐ 8
alfonsograziano/node-code-sandbox-mcp

alfonsograziano/node-code-sandbox-mcp

от alfonsograziano

Выполняет Node.js-код в изолированном Docker-контейнере: ставит npm-пакеты, запускает shell-команды и возвращает вывод.

TypeScript⭐ 158
yusong652/yade-mcp

yusong652/yade-mcp

от yusong652

MCP инструмент для подключения AI-агентов к YADE - DEM движку. Через естественный язык просматривайте API, запускайте симуляции и выполняйте код в консоли. Для инженеров и исследователей, автоматиз...

Python⭐ 15
yepcode/mcp-server-js

yepcode/mcp-server-js

официальный

от yepcode

YepCode MCP сервер превращает YepCode-процессы в готовые инструменты для ИИ-ассистентов. Он запускает скрипты на Python или Node.js в изолированной среде, управляет параметрами через JSON Schema. Идеально для интеграции AI с бизнес-логикой — от выполнения кода до управления API.

TypeScript⭐ 47
alvii147/piston-mcp

alvii147/piston-mcp

от alvii147

Piston MCP Server - MCP-сервер для подключения LLM к Piston API для выполнения кода. Он даёт ИИ-ассистентам безопасно запускать скрипты на разных языках в песочнице. Полезен разработчикам ИИ-агенто...

Python⭐ 9
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин