NASA媒体访问服务器

一个提供AI助手直接、安全访问NASA图像、视频和音频文件集合的模型上下文协议(MCP)服务器。

  • by gauravraghunand
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 gauravraghunand/nasa-mcp-server

使用说明

NASA-MCP-服务器

一个模型上下文协议(MCP)服务器,通过公共的NASA图像和视频库API,为您的AI助手(例如,Claude Desktop、LM Studio)提供直接、安全的访问NASA庞大图像、视频和音频文件集合的途径。

特点

这台服务器实现了五种核心工具,用于与美国宇航局的数字媒体进行全面交互:

  • **search_nasa_media**通过查询、媒体类型、NASA中心和日期范围搜索媒体库。
  • **get_nasa_asset**为特定的NASA ID检索所有可用的文件格式(原始、中等、小型、元数据)。
  • **get_nasa_metadata**获取包含详细EXIF信息和技术规格的JSON文件的直接链接。
  • **get_nasa_captions**访问视频内容的字幕/副标题文件(VTT/SRT)。
  • **browse_nasa_album**浏览精选集合,如“阿波罗”、“哈勃”和“火星”。

先决条件

要运行这个自定义的MCP服务器,您必须安装并配置以下内容:

  1. Docker Desktop(桌面版) (与……一起 MCP 工具包 (在Beta功能中已启用)。
  2. 一 大型语言模型客户端 支持MCP的,比如Claude Desktop。
  3. 必要的项目文件: Dockerfile, requirements.txt, nasa_server.py, custom.yaml,和 registry.yaml (来自这个仓库)。

安装与设置

按照以下步骤构建Docker镜像,配置MCP网关,并将其连接到您的LLM客户端。

步骤1:准备项目目录

  1. 创建一个新目录(例如。, nasa-mcp-server) 并将提供的文件(Dockerfile, requirements.txt, nasa_server.py) 在里面。
  2. 通过终端导航进入该目录:
    cd nasa-mcp-server
    

步骤2:构建Docker镜像

这个(或:那个) Dockerfile 创建一个以非root用户身份运行的安全容器(mcpuser) 并附带必要的 Python 依赖项 (mcp[cli] 并且 httpx)。

  1. 使用标签构建Docker镜像 nasa-mcp-server:
    docker build -t nasa-mcp-server .
    

步骤3:创建自定义目录

你需要向Docker MCP网关告知你的新服务器及其工具 custom.yaml 文件以网关能够理解的格式定义了服务器。

  1. 找到您本地的 Docker MCP 目录。在大多数系统中,该目录为:
    • Windows: C:\Users\<username>\.docker\mcp\catalogs\
    • macOS/Linux: ~/.docker/mcp/catalogs/
  2. 复制或确保提供(的内容/信息) custom.yaml 文件被放置在这个里面 catalogs/ 目录。如果您已经有了自定义目录,请将其与(新目录)合并 nasa 加入其中。

步骤4:更新注册表

Docker MCP Registry 跟踪哪些服务器是 已安装 并且可供客户端使用。您必须手动将您的服务器添加到此文件中。

  1. 找到注册表文件:
    • Windows: C:\Users\<username>\.docker\mcp\registry.yaml
    • macOS/Linux: ~/.docker/mcp/registry.yaml
  2. 编辑 registry.yaml 文件并确保 nasa 条目存在于……之下 registry: 密钥:
    registry:
      # ... other servers you may have
      nasa: # <- Add this entry
        ref: "" 
    

步骤5:配置LLM客户端(以Claude桌面版为例)

您需要确保您的大型语言模型(LLM)客户端已配置为检查您的自定义工具目录。

  1. 找到您客户端的配置文件。对于 Claude Desktop(可译为“Claude桌面版”或保持原样,具体取决于上下文是否需要更具体的翻译),这通常是 claude_desktop_config.json 在一个隐藏的应用数据文件夹中。

  2. 验证 mcp-toolkit-gateway 命令中包含对您自定义目录文件的引用(custom.yaml):

    {
      "mcpServers": {
        "mcp-toolkit-gateway": {
          "command": "docker",
          "args": [
            "run",
            // ... other arguments ...
            "--catalog=/mcp/catalogs/docker-mcp.yaml",
            "--catalog=/mcp/catalogs/custom.yaml", // <- Ensure this is present
            // ... other arguments ...
            ]
        }
      }
    }
    

步骤6:测试并使用服务器

  1. 重启您的大型语言模型(LLM)客户端 (例如,Claude Desktop)。

  2. 在聊天界面中,检查“搜索和工具”菜单以确认 “美国宇航局图像和视频库” 工具及其功能(search_nasa_media, browse_nasa_album等)可供选择。

  3. 提出一个需要使用该工具的问题,AI应该执行正确的功能:

    示例提示:

    “使用NASA媒体工具查找最近的火星探测车视频,然后向我展示第一个搜索结果中资源ID对应的文件格式。”


API详情

  • 基本URL: https://images-api.nasa.gov
  • 认证无需翻译(公共API)
  • 安全该服务器设计为仅支持只读操作,并在容器中以非root用户身份运行。