项目简介

这是一个基于 Model Context Protocol (MCP) 构建的服务器实现。它允许兼容 MCP 的大型语言模型 (LLM) 客户端(如 Claude Desktop, Cursor 等)通过结构化的工具调用方式,直接访问美国国家航空航天局 (NASA) 提供的各种公开 API。通过这个服务器,LLM 可以获取到丰富的实时或历史空间科学数据,而无需用户手动查找或提供。

主要功能点

  • 每日天文图片 (APOD): 获取并展示特定日期或随机的每日天文图片及其解释。
  • 近地小行星 (NeoWs): 查询特定时间段内靠近地球的小行星信息,或按ID查找特定小行星数据,甚至浏览小行星数据库。
  • 空间天气 (DONKI): 获取日冕物质抛射 (CME)、地磁暴 (GST)、太阳耀斑 (FLR) 等多种空间天气事件数据和通知。
  • 地球图像: 获取特定经纬度和日期的 Landsat 8 卫星地球图像,或查询可用图像资源。
  • EPIC 地球图像: 获取 EPIC 相机拍摄的地球全盘图像,支持按日期或获取最新图像,并可查询可用的日期列表。
  • 系外行星数据库: 按条件查询 NASA 系外行星档案库中的数据,如按轨道周期、半径等筛选。
  • 火星探测器照片: 获取好奇号 (Curiosity)、机遇号 (Opportunity) 和勇气号 (Spirit) 探测器在特定火星日 (sol) 或地球日拍摄的照片,可按相机筛选,并可获取探测器的任务清单。

安装步骤

本项目需要 Python 3.10 或更高版本以及 'uv' 包管理器。

  1. 安装 'uv': 如果尚未安装,请根据您的操作系统执行以下命令安装:

    • macOS 和 Linux:
      curl -LsSf https://astral.sh/uv/install.sh | sh
    • Windows:
      powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    • 或者使用 pip:
      pip install uv

    更多详情请参考 uv 文档

  2. 安装 NASA-MCP 服务器: 最简单的方式是通过 Smithery 安装,这将自动设置并使其可在支持 Smithery 的客户端中使用(如 Claude Desktop):

    npx -y @smithery/cli install @AnCode666/nasa-mcp --client claude

    您也可以在安装 'uv' 后,直接通过 MCP 客户端配置来运行它,无需额外全局安装。

服务器配置

为了让您的 MCP 客户端连接并使用此服务器,您需要在客户端的 MCP 服务器配置中添加相应条目。通常,这涉及到修改客户端的配置文件(通常是 JSON 格式)。

配置的关键信息包括:

  • 服务器名称: 用于在客户端中标识此服务器,例如设置为 '"nasa-mcp"'。
  • 启动命令 (command): 告诉客户端如何启动这个 MCP 服务器进程。对于通过 'uv' 安装的包,通常设置为 '"uvx"'。
  • 启动参数 (args): 传递给启动命令的参数。对于此项目,应设置为 '["nasa_mcp"]'。
  • 环境变量 (env): 设置服务器运行所需的环境变量。 重要:您需要在此处设置 'NASA_API_KEY'。

例如,在 Claude Desktop 的 'claude_desktop_config.json' 文件中的 '"mcpServers"' 部分,您可以添加如下配置(请替换 'YOUR_NASA_API_KEY'):

"nasa-mcp": {
    "command": "uvx",
    "args": [
        "nasa_mcp"
    ],
    "env": {
        "NASA_API_KEY": "YOUR_NASA_API_KEY" // 在这里填入您的NASA API密钥
    }
}

如何获取 NASA API 密钥?

您可以从 NASA 官网免费获取 API 密钥:https://api.nasa.gov/。通常,您可以申请一个用于演示的 'DEMO_KEY' 进行测试,但有请求频率限制。为稳定使用,建议申请个人专属密钥。

将 'YOUR_NASA_API_KEY' 替换为您从 NASA 获得的实际密钥(请保留双引号)。如果您已配置其他 MCP 服务器,请使用逗号 ',' 分隔每个配置块。

对于其他 MCP 兼容客户端(如 Cursor, CODEGPT, Roo Code),请参照其文档,找到 MCP 服务器配置位置,并添加类似的配置块。

基本使用方法

正确配置并启动您的 MCP 客户端后,LLM 将能够识别并使用此 NASA API 服务器提供的工具。您可以直接向 LLM 提出与 NASA 数据相关的自然语言问题,LLM 会判断是否需要调用服务器上的工具来回答您的问题。

例如,您可以尝试以下问法:

  • “告诉我今天的每日天文图片是什么?”
  • “查找下周将掠过地球的小行星。”
  • “获取2023年1月份发生的太阳耀斑信息。”
  • “显示经纬度为 29.78, -95.33 位置的地球卫星图像。”
  • “在系外行星数据库中查找处于宜居带的行星。”
  • “告诉我好奇号火星探测器在第1000个火星日(sol 1000)拍摄的照片。”

LLM 将会通过 MCP 服务器调用相应的工具,并将获取到的数据返回给您。

信息

分类

AI与计算