返回市场
地球Jupyter-MCP服务器

地球Jupyter-MCP服务器

作者:datalayer6 星标更新:2025-08-31

项目介绍

<!-- ~ 版权所有 (c) 2023-2024 Datalayer, Inc. ~ ~ BSD 3-Clause 许可证 -->

此仓库已存档 - 请使用 https://github.com/datalayer/earthdata-mcp-server。

Datalayer

成为赞助者

🌎 ✨ Jupyter Earth MCP 服务器

Github Actions 状态 PyPI - 版本

🌍 Jupyter Earth MCP 服务器是一个 模型上下文协议 (MCP) 服务器实现,提供了一套用于 🗺️ 地理空间分析的工具,在 📓 Jupyter 笔记本中使用。

以下演示使用了 Earthdata MCP 服务器 在 NASA Earthdata 上搜索数据集和数据颗粒,使用此 MCP 服务器在 Jupyter 中下载数据,并使用 jupyter-mcp-server 进行进一步分析。

<div> <a href="https://www.loom.com/share/c2b5b05f548d4f1492d5c107f0c48dbc"> <p>使用 AI 驱动的地理空间工具和 Jupyter 分析海平面上升 - 观看视频</p> </a> <a href="https://www.loom.com/share/c2b5b05f548d4f1492d5c107f0c48dbc"> <img style="max-width:100%;" src="https://gips2.baidu.com/it/u=2764471263,2326858715&fm=3081&app=3081&f=GIF?w=640&h=360"> </a> </div>

启动 JupyterLab

确保安装了以下内容。协作包是必需的,因为通过 Jupyter 实时协作,可以在笔记本上看到所做的修改。

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

[!NOTE]

--ip 设置为 0.0.0.0,以允许运行在 Docker 容器中的 MCP 服务器访问您的本地 JupyterLab。

与 Claude Desktop 结合使用

Claude Desktop 可以从 这个页面 下载,适用于 macOS 和 Windows。

对于 Linux,我们成功使用了基于 nix 的 非官方构建脚本

# ⚠️ 非官方
# 您也可以运行 `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 文档网站)。

[!IMPORTANT]

确保 SERVER_URLTOKEN 的端口与 jupyter lab 命令中使用的匹配。

NOTEBOOK_PATH 应相对于启动 JupyterLab 的目录。

macOS 和 Windows 上的 Claude 配置

{
  "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 配置

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 个工具:

  1. download_earth_data_granules
  • 在 Jupyter 笔记本中添加一个代码单元格,从 NASA Earth Data 下载地球数据颗粒。
  • 输入:
    • folder_name(字符串):保存数据的本地文件夹名称。
    • short_name(字符串):要下载的地球数据集的简称。
    • count(整数):要下载的数据颗粒数量。
    • temporal (元组):(可选) 时间范围,格式为 (date_from, date_to)。
    • bounding_box (元组):(可选) 边界框,格式为 (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat)。
  • 返回:单元格输出。

提示

  1. download_analyze_global_sea_level
    • 请求在 Jupyter 中下载并分析全球海平面数据。
    • 返回:正确格式化的提示。

构建

您可以从源代码构建 Docker 镜像。

make build-docker