🌎 ✨ Jupyter Earth MCP сервер
🌍 Jupyter Earth MCP Server — это реализация сервера Model Context Protocol (MCP), которая предоставляет набор инструментов для 🗺️ геопространственного анализа в 📓 блокнотах Jupyter.
В следующей демонстрации используется сервер Earthdata MCP для поиска наборов данных и гранул данных в NASA Earthdata, этот сервер MCP используется для загрузки данных в Jupyter, а jupyter-mcp-server — для выполнения дальнейшего анализа.
Запустить JupyterLab
Убедитесь, что у вас установлено следующее. Пакет совместной работы необходим, поскольку изменения, внесенные в блокнот, можно увидеть благодаря Jupyter Real Time Collaboration .
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.17Затем запустите JupyterLab с помощью следующей команды.
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0Вы также можете запустить make jupyterlab .
[!ПРИМЕЧАНИЕ]
Параметр
--ipустанавливается равным0.0.0.0, чтобы разрешить серверу MCP, работающему в контейнере Docker, получать доступ к локальному JupyterLab.
Related MCP server: MCP Google Map Server
Использовать с Claude Desktop
Claude Desktop можно загрузить с этой страницы для macOS и Windows.
Для Linux мы успешно использовали этот НЕОФИЦИАЛЬНЫЙ скрипт сборки на основе nix
# ⚠️ UNOFFICIAL
# You can also run `make claude-linux`
NIXPKGS_ALLOW_UNFREE=1 nix run github:k3d3/claude-desktop-linux-flake \
--impure \
--extra-experimental-features flakes \
--extra-experimental-features nix-commandЧтобы использовать это с Claude Desktop, добавьте следующее в ваш claude_desktop_config.json (подробнее на сайте документации MCP ).
[!ВАЖНЫЙ]
Убедитесь, что порт
SERVER_URLиTOKENсовпадают с портами, используемыми в командеjupyter lab.
NOTEBOOK_PATHдолжен быть указан относительно каталога, в котором был запущен JupyterLab.
Конфигурация Клода на macOS и Windows
{
"mcpServers": {
"jupyter-earth": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"datalayer/jupyter-earth-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://host.docker.internal:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}Конфигурация Клода на Linux
CLAUDE_CONFIG=${HOME}/.config/Claude/claude_desktop_config.json
cat <<EOF > $CLAUDE_CONFIG
{
"mcpServers": {
"jupyter-earth": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"--network=host",
"datalayer/jupyter-earth-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://localhost:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
EOF
cat $CLAUDE_CONFIGКомпоненты
Инструменты
В настоящее время сервер предлагает 1 инструмент:
download_earth_data_granules
Добавьте ячейку кода в блокнот Jupyter, чтобы загрузить гранулы данных о Земле из NASA Earth Data.
Вход:
folder_name(строка): Имя локальной папки для сохранения данных.short_name(string): Краткое имя набора данных о Земле для загрузки.count(int): Количество гранул данных для загрузки.temporal(tuple): (Необязательно) временной диапазон в формате (date_from, date_to).bounding_box(кортеж): (Необязательно) Ограничивающий прямоугольник в формате (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat).
Возвращает: Вывод ячейки.
Подсказки
download_analyze_global_sea_levelПодать заявку на загрузку и анализ данных об уровне мирового океана в Jupyter.
Возвращает: Запрос отформатирован правильно.
Здание
Вы можете собрать образ Docker из исходного кода.
make build-docker