Jupyter MCP Server
🪐🔧 Jupyter MCP Server
Сервер MCP, разработанный для подключения ИИ к блокнотам Jupyter и управления ими в режиме реального времени
Разработано Datalayer

Критическое изменение в v1.0.0: Вы должны настроить MCP_TOKEN в настройках вашего MCP-клиента.
Подробности настройки см. здесь: https://jupyter-mcp-server.datalayer.tech/providers/jupyter-streamable-http-standalone/#3-configure-your-mcp-client
Нам нужна ваша обратная связь!
Мы активно разрабатываем поддержку развертываний JupyterHub и Google Colab. Если вы используете или планируете использовать Jupyter MCP Server с этими платформами, мы будем рады услышать ваше мнение!
🏢 Пользователи JupyterHub: Поделитесь своей конфигурацией развертывания и требованиями
🌐 Пользователи Google Colab: Помогите нам понять ваши сценарии использования и рабочие процессы
Присоединяйтесь к обсуждению на нашей странице сообщества — ваш отзыв поможет нам расставить приоритеты в функциях и обеспечить бесперебойную работу этих интеграций для ваших нужд.
📖 Содержание
Related MCP server: Code Summarizer MCP
🚀 Основные возможности
⚡ Управление в реальном времени: Мгновенный просмотр изменений в блокноте по мере их появления.
🔁 Умное выполнение: Автоматическая корректировка при сбое выполнения ячейки благодаря обратной связи от вывода ячейки.
🧠 Контекстно-зависимый: Понимает весь контекст блокнота для более релевантных взаимодействий.
📊 Мультимодальная поддержка: Поддержка различных типов вывода, включая изображения, графики и текст.
📚 Поддержка нескольких блокнотов: Легкое переключение между несколькими блокнотами.
🎨 Интеграция с JupyterLab: Улучшенная интеграция пользовательского интерфейса, например, автоматическое открытие блокнотов.
🤝 Совместимость с MCP: Работает с любым MCP-клиентом, таким как Claude Desktop, Cursor, Windsurf и другими.
🔍 Наблюдаемость: Встроенная система хуков с интеграцией OpenTelemetry для трассировки вызовов инструментов и выполнения ядра.
Совместим с любым развертыванием Jupyter (локальным, JupyterHub, ...) и с блокнотами, размещенными на Datalayer.
🔧 Обзор MCP
🔧 Обзор инструментов
Сервер предоставляет богатый набор инструментов для взаимодействия с блокнотами Jupyter, разбитых на категории. Для получения более подробной информации о каждом инструменте, его параметрах и возвращаемых значениях, пожалуйста, обратитесь к официальной документации по инструментам.
Инструменты управления сервером
Имя | Описание |
| Список файлов и каталогов в файловой системе сервера Jupyter. |
| Список всех доступных и запущенных сеансов ядра на сервере Jupyter. |
| Динамическое подключение к серверу Jupyter без перезапуска сервера MCP. Недоступно при запуске в качестве расширения Jupyter. Полезно для динамического переключения серверов или избежания жестко закодированной конфигурации. Подробнее |
Инструменты управления несколькими блокнотами
Имя | Описание |
| Подключение к файлу блокнота, создание нового или переключение между блокнотами. |
| Список всех блокнотов, доступных на сервере Jupyter, и их статус |
| Перезапуск ядра для конкретного управляемого блокнота. |
| Отключение от конкретного блокнота и освобождение его ресурсов. |
| Чтение исходного содержимого ячеек блокнота с краткими или подробными параметрами формата. |
Инструменты операций с ячейками и выполнения
Имя | Описание |
| Чтение полного содержимого (метаданные, исходный код и выводы) одной ячейки. |
| Вставка новой ячейки кода или markdown в указанную позицию. |
| Удаление ячейки по указанному индексу. |
| Перезапись исходного кода существующей ячейки. |
| Выполнение ячейки с тайм-аутом, поддерживает мультимодальный вывод, включая изображения. |
| Вставка новой ячейки кода и ее выполнение за один шаг. |
| Выполнение кода непосредственно в ядре, поддерживает магические команды и команды оболочки. |
Интеграция с JupyterLab
Доступно только при включенном режиме JupyterLab. Включен по умолчанию.
При работе в режиме JupyterLab, Jupyter MCP Server интегрируется с jupyter-mcp-tools для предоставления дополнительных команд JupyterLab в качестве инструментов MCP. По умолчанию включены следующие инструменты:
Имя | Описание |
| Последовательное выполнение всех ячеек в текущем блокноте |
| Получение информации о текущей выбранной ячейке |
Теперь вы можете настроить, какие инструменты из jupyter-mcp-tools будут доступны, используя параметр конфигурации allowed_jupyter_mcp_tools. Это позволяет включить дополнительные операции с блокнотами, консольные команды, инструменты управления файлами и многое другое.
# Example: Enable additional tools via command-line
jupyter lab --port 4040 --IdentityProvider.token MY_TOKEN --JupyterMCPServerExtensionApp.allowed_jupyter_mcp_tools="notebook_run-all-cells,notebook_get-selected-cell,notebook_append-execute,console_create"Полный список доступных инструментов и подробные инструкции по настройке см. в документации по дополнительным инструментам.
📝 Обзор промптов
Сервер также поддерживает функцию промптов MCP, предоставляя пользователю простой способ взаимодействия с блокнотами Jupyter.
Имя | Описание |
| Цитирование конкретных ячеек из указанного блокнота (как |
Для получения более подробной информации о каждом промпте, его входных параметрах и возвращаемом содержимом, пожалуйста, обратитесь к официальной документации по промптам.
🏁 Начало работы
Для получения полных инструкций по настройке — включая транспорт Streamable HTTP, запуск в качестве расширения Jupyter Server и расширенную конфигурацию — ознакомьтесь с нашей документацией. Или начните работу быстро с JupyterLab и транспортом STDIO ниже.
1. Настройка окружения
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.17Чтобы убедиться, что ваше окружение настроено правильно:
Откройте блокнот в JupyterLab
Введите какой-нибудь контент в любую ячейку (код или markdown)
Посмотрите на индикатор вкладки: вы должны увидеть "×" рядом с именем блокнота, что указывает на несохраненные изменения
Подождите несколько секунд — "×" должен автоматически измениться на "●" без ручного сохранения
Такое поведение автоматического сохранения подтверждает, что функции совместной работы в реальном времени работают правильно, что необходимо для интеграции сервера MCP.
2. Запуск JupyterLab
# Start JupyterLab on port 8888, allowing access from any IP and setting a token
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0Если вы запускаете блокноты через JupyterHub, а не через JupyterLab, как описано выше, обратитесь к нашемуруководству по настройке JupyterHub.
3. Настройка предпочитаемого MCP-клиента
Затем настройте свой MCP-клиент для подключения к серверу. Мы предлагаем два основных метода — выберите тот, который лучше всего соответствует вашим потребностям:
📦 Использование
uvx(рекомендуется для быстрого старта): Легкий и быстрый метод с использованиемuv. Идеально подходит для локальной разработки и новых пользователей.🐳 Использование
Docker(рекомендуется для продакшена): Контейнеризированный подход, который обеспечивает согласованную и изолированную среду, идеально подходящую для продакшена или сложных настроек.
Сначала установите uv:
pip install uv
uv --version
# should be 0.6.14 or higherПодробнее см. в установке uv.
Затем настройте свой клиент:
{
"mcpServers": {
"jupyter": {
"command": "uvx",
"args": ["jupyter-mcp-server@latest"],
"env": {
"JUPYTER_URL": "http://localhost:8888",
"JUPYTER_TOKEN": "MY_TOKEN",
"ALLOW_IMG_OUTPUT": "true"
}
}
}
}В macOS и Windows:
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "JUPYTER_URL",
"-e", "JUPYTER_TOKEN",
"-e", "ALLOW_IMG_OUTPUT",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"JUPYTER_URL": "http://host.docker.internal:8888",
"JUPYTER_TOKEN": "MY_TOKEN",
"ALLOW_IMG_OUTPUT": "true"
}
}
}
}В Linux:
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "JUPYTER_URL",
"-e", "JUPYTER_TOKEN",
"-e", "ALLOW_IMG_OUTPUT",
"--network=host",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"JUPYTER_URL": "http://localhost:8888",
"JUPYTER_TOKEN": "MY_TOKEN",
"ALLOW_IMG_OUTPUT": "true"
}
}
}
}Конфигурация порта: Убедитесь, что
portв ваших URL-адресах Jupyter совпадает с тем, который используется в командеjupyter lab. Для упрощенной конфигурации установите его вJUPYTER_URL.Разделение серверов: Используйте
JUPYTER_URL, когда обе службы находятся на одном сервере, или установите отдельные переменные для сложных развертываний. Различные переменные URL существуют, потому что некоторые развертывания разделяют хранилище блокнотов (DOCUMENT_URL) и выполнение ядра (RUNTIME_URL).Аутентификация: В большинстве случаев службы документов и среды выполнения используют один и тот же токен аутентификации. Используйте
JUPYTER_TOKENдля упрощенной конфигурации или установитеDOCUMENT_TOKENиRUNTIME_TOKENпо отдельности для разных учетных данных.Путь к блокноту: Параметр
DOCUMENT_IDуказывает путь к блокноту, к которому MCP-клиент подключается по умолчанию. Он должен быть относительным по отношению к каталогу, в котором был запущен JupyterLab. Если вы опуститеDOCUMENT_ID, MCP-клиент сможет автоматически перечислить все доступные блокноты на сервере Jupyter, позволяя вам выбрать один из них интерактивно с помощью ваших промптов.Вывод изображений: Установите
ALLOW_IMG_OUTPUTвfalse, если ваша LLM не поддерживает мультимодальное понимание.
Подробные инструкции по настройке различных MCP-клиентов — включая Claude Desktop, VS Code, Cursor, Cline и Windsurf — см. в документации по клиентам.
✅ Рекомендации
Взаимодействуйте с LLM, которые поддерживают мультимодальный ввод (например, Gemini 2.5 Pro), чтобы в полной мере использовать расширенные возможности мультимодального понимания.
Используйте MCP-клиент, который поддерживает возврат данных изображений и может их анализировать (например, Cursor, Gemini CLI и т.д.), так как некоторые клиенты могут не поддерживать эту функцию.
Разбивайте сложные задачи (например, весь рабочий процесс обработки данных) на несколько подзадач (например, очистка данных, проектирование признаков, обучение модели, оценка модели и т.д.) и выполняйте их шаг за шагом.
Предоставляйте четко структурированные промпты и правила (👉 Посетите наши шаблоны промптов, чтобы начать).
Предоставляйте как можно больше контекста (например, уже установленные пакеты, пояснения к полям для существующих наборов данных, текущий рабочий каталог, подробные требования к задаче и т.д.).
🤝 Участие в разработке
Мы приветствуем любые виды вклада! Вот несколько примеров:
🐛 Исправление ошибок
📝 Улучшения существующих функций
🔧
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/datalayer/jupyter-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server