返回市场
地球数据MCP服务器

地球数据MCP服务器

作者:datalayer22 星标更新:2025-09-05

项目介绍

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

Datalayer

成为赞助者

🪐 ✨ Earthdata MCP 服务器

PyPI - 版本 smithery 徽章

Earthdata MCP 服务器是一个 模型上下文协议 (MCP) 服务器实现,提供与 NASA 地球数据交互的工具。它使地理空间分析中的数据集发现、检索和分析更加高效。

🚀 新功能:此服务器现在通过组合包含所有 Jupyter MCP 服务器 工具,提供了统一的界面,用于在 Jupyter 笔记本中进行地球数据分析。

🚀 主要特性

  • 高效的数据检索:搜索并下载地球数据集
  • 统一接口:结合地球数据研究和 Jupyter 笔记本操作工具进行分析

以下演示使用此 MCP 服务器在 NASA 地球数据上搜索数据集和数据颗粒,下载数据并在 Jupyter 中运行进一步分析。

<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://gips1.baidu.com/it/u=2764471263,2326858715&fm=3081&app=3081&f=GIF?w=640&h=360"> </a> </div>

🏁 快速开始

对于全面的设置说明——包括 流式 HTTP 传输和高级配置,请参阅 Jupyter MCP 服务器文档。或者,快速开始使用 JupyterLabstdio 传输如下。

1. 设置您的环境

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

2. 启动 JupyterLab

# 启动 jupyterlab
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0

3. 配置您首选的 MCP 客户端

[!注意]

确保 DOCUMENT_URLRUNTIME_URLportjupyter lab 命令中使用的相匹配。

DOCUMENT_ID 是您想要连接的笔记本路径,应相对于启动 JupyterLab 的目录。

在基本设置中,DOCUMENT_URLRUNTIME_URL 相同。DOCUMENT_TOKENRUNTIME_TOKEN 也相同,实际上是 Jupyter Token。

[!注意]

EARTHDATA_USERNAMEEARTHDATA_PASSWORD 环境变量用于 NASA 地球数据认证,以通过 earthaccess 库下载数据集。详情见 NASA 地球数据认证

MacOS 和 Windows

{
  "mcpServers": {
    "earthdata": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DOCUMENT_URL",
        "-e",
        "DOCUMENT_TOKEN",
        "-e",
        "DOCUMENT_ID",
        "-e",
        "RUNTIME_URL",
        "-e",
        "RUNTIME_TOKEN",
        "datalayer/earthdata-mcp-server:latest"
      ],
      "env": {
        "DOCUMENT_URL": "http://host.docker.internal:8888",
        "DOCUMENT_TOKEN": "MY_TOKEN",
        "DOCUMENT_ID": "notebook.ipynb",
        "RUNTIME_URL": "http://host.docker.internal:8888",
        "RUNTIME_TOKEN": "MY_TOKEN",
        "EARTHDATA_USERNAME": "your_username",
        "EARTHDATA_PASSWORD": "your_password"
      }
    }
  }
}

Linux

{
  "mcpServers": {
    "earthdata": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DOCUMENT_URL",
        "-e",
        "DOCUMENT_TOKEN",
        "-e",
        "DOCUMENT_ID",
        "-e",
        "RUNTIME_URL",
        "-e",
        "RUNTIME_TOKEN",
        "--network=host",
        "datalayer/earthdata-mcp-server:latest"
      ],
      "env": {
        "DOCUMENT_URL": "http://localhost:8888",
        "DOCUMENT_TOKEN": "MY_TOKEN",
        "DOCUMENT_ID": "notebook.ipynb",
        "RUNTIME_URL": "http://localhost:8888",
        "RUNTIME_TOKEN": "MY_TOKEN",
        "EARTHDATA_USERNAME": "your_username",
        "EARTHDATA_PASSWORD": "your_password"
      }
    }
  }
}

工具

该服务器总共提供 15 个工具:3 个特定于地球数据的工具加上 12 个 Jupyter 笔记本操作工具。

地球数据工具

search_earth_datasets

  • 在 NASA 地球数据上搜索数据集。
  • 输入:
    • search_keywords (str): 数据集标题中要搜索的关键字。
    • count (int): 要返回的数据集数量。
    • temporal (tuple): (可选) 时间范围,格式为 (date_from, date_to)。
    • bounding_box (tuple): (可选) 边界框,格式为 (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat)。
  • 返回:数据集摘要列表。

search_earth_datagranules

  • 在 NASA 地球数据上搜索数据颗粒。
  • 输入:
    • short_name (str): 数据集的短名称。
    • count (int): 要返回的数据颗粒数量。
    • temporal (tuple): (可选) 时间范围,格式为 (date_from, date_to)。
    • bounding_box (tuple): (可选) 边界框,格式为 (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat)。
  • 返回:数据颗粒列表。

download_earth_data_granules

  • 从 NASA 地球数据下载地球数据颗粒,并集成到 Jupyter 笔记本中。
  • 此工具结合了地球数据搜索能力和 Jupyter 笔记本操作,创建了一个无缝的下载工作流程。
  • 认证:需要 NASA 地球数据登录凭证(参见 认证部分
  • 输入:
    • folder_name (str): 保存数据的本地文件夹名称。
    • short_name (str): 要下载的地球数据集的短名称。
    • count (int): 要下载的数据颗粒数量。
    • temporal (tuple): (可选) 时间范围,格式为 (date_from, date_to)。
    • bounding_box (tuple): (可选) 边界框,格式为 (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat)。
  • 返回:成功消息,附带下载代码准备详情。

Jupyter 工具(组合)

以下 Jupyter 笔记本操作工具可用:

  • append_markdown_cell: 向笔记本添加 Markdown 单元格
  • insert_markdown_cell: 在特定位置插入 Markdown 单元格
  • overwrite_cell_source: 修改现有单元格内容
  • append_execute_code_cell: 添加并执行代码单元格
  • insert_execute_code_cell: 在特定位置插入并执行代码单元格
  • execute_cell_with_progress: 执行带有进度监控的单元格
  • execute_cell_simple_timeout: 执行带有超时的单元格
  • execute_cell_streaming: 执行带有流式输出的单元格
  • read_all_cells: 读取所有笔记本单元格
  • read_cell: 读取特定笔记本单元格
  • get_notebook_info: 获取笔记本元数据
  • delete_cell: 删除笔记本单元格

有关 Jupyter 工具的详细文档,请参阅 Jupyter MCP 服务器文档

提示

  1. download_analyze_global_sea_level 🆕

    • 生成一个全面的工作流程,用于下载和分析全球平均海平面趋势数据集。
    • 使用地球数据下载工具和 Jupyter 分析能力。
    • 返回:详细的提示,用于完整的海平面上升分析工作流程。
  2. sealevel_rise_dataset

    • 搜索与全球海平面上升相关的数据集。
    • 输入:
      • start_year (int): 考虑的起始年份。
      • end_year (int): 考虑的结束年份。
    • 返回:正确格式化的提示。
  3. ask_datasets_format

    • 询问数据集的格式。
    • 返回:正确格式化的提示。

构建

# 或运行 `docker build -t datalayer/earthdata-mcp-server .`
make build-docker

如果您更喜欢,可以拉取预构建的镜像。

make pull-docker