大地数据mcp
MCP(模型上下文协议)服务器,为LLM代理提供对NASA公共元数据存储库(CMR)的直接访问。这种集成使用户能够通过自然语言界面代理地发现、验证和访问地球科学数据集。
要立即开始查询地球数据,请参见 连接到服务器.
可用工具
get_keywords:发现官方地球数据科学词汇术语(来自美国国家航空航天局知识管理系统),将口语用户输入(如“雨”)翻译成精确的搜索标签(如“降水量”)。get_collections:使用科学关键字、仪器、平台或空间/时间约束搜索数据集(集合)。get_granules:搜索集合中的特定数据文件(颗粒)。用于验证给定时间和位置的实际数据可用性。get_services:发现与集合关联的数据访问端点(OPeNDAP、Harmony)和可视化层(WMS/WMTS)。get_tools:查找与收藏相关的门户网站(如Giovanni、Worldview)和可下载软件(如Panoply),返回URL和深度链接模板。get_citations:发现与收藏相关的引文记录(出版物、DOI),或直接通过标识符查找引文。get_variables:发现与集合相关的科学变量和测量值,或按关键字查找变量。在下载或分析数据之前,使用此功能了解特定的数据参数(比例、偏移、填充值)。
代理工作流说明
服务器提供系统指令(prompts/instructions.py)执行a 发现→ 验证→ 访问 LLM客户端的工作流程:
- 发现:使用查找相关收藏
get_collections. - 验证:使用
get_granules确认用户请求的区域/时间的数据确实存在,因为集合通常会声明全局覆盖,而不管差距如何。 - 访问:指导用户使用
earthaccess用于身份验证和下载的Python库,提供相关代码片段。
项目结构
该存储库围绕几个核心域构建:
server.py&loader.py:FastMCP服务器入口点和动态工具注册逻辑。prompts/:定义LLM工作流程和角色的系统提示和说明。tools/:包装NASA CMR API的独立MCP工具(get_collections,get_granules,get_keywords,get_services,get_tools,get_citations,get_variables).models/:用于工具输入验证和标准化CMR API响应的冗余模型。tests/:综合测试套件(使用pytest)包括服务器初始化、工具逻辑和模拟CMR API响应。docs/:项目文件分为consumers/和developers/.
关于遗留代码的说明:摄入和嵌入管道(包括discover_data工具,lambdas/目录和相关基础设施)目前正在被弃用。该体系结构正在转变为完全依赖于直接、实时的CMR API集成。
对于消费者:连接到服务器
Earthdata MCP服务器远程部署,并通过官方模型上下文协议进行通信 流式HTTP 运输。要使用服务器,请将您的MCP兼容客户端配置为指向我们的端点。
连接URL
配置您的客户端以连接到以下HTTP端点。大多数MCP客户端都需要这些标准参数:
- 运输类型:
streamable-http - 统一资源定位符:
https://cmr.earthdata.nasa.gov/mcp/v1 - 超时:
60000(推荐:60秒,用于复杂的空间/时间查询)
适用于:
- Claude 代码命令行工具
- VS代码MCP扩展
- Librechat
- 任何支持流式HTTP传输的MCP兼容客户端
______________________________________________________________________
开发者:当地环境
如果你想为服务器做出贡献或在本地运行它,请按照以下步骤操作。
先决条件
- Python 3.13+
- 紫外线 包管理器
安装
# Clone and enter directory
git clone
cd earthdata-mcp
# Install dependencies
uv sync
# Install dev dependencies (for testing)
uv sync --extra dev启动本地服务器
我们建议在HTTP模式下运行服务器进行本地开发和测试:
uv run server.py http服务器将在以下时间启动并可用 http://127.0.0.1:5001/mcp/v1.
开发与测试
看 文档/开发人员/ 开发者指南:
运行测试
# Run all tests
uv run pytest
# Run with verbose output
uv run pytest -v
# Run specific test file
uv run pytest tests/test_server.pyMCP检查员(交互式测试)
- 启动服务器:
uv run server.py http- 发射检查员:
npx @modelcontextprotocol/inspector- 连接至
http://localhost:6274:
- 运输类型: 流式HTTP - 网址: http://localhost:5001/mcp/v1
部署
该应用程序通过Bamboo CI/CD部署到AWS。
看 开发者指南 详细的架构分解、部署过程、基础设施定义(terraform/),以及服务器启动问题的故障排除步骤。
