使用说明

项目简介

NASA MCP Server 是一个基于 Model Context Protocol (MCP) 标准构建的服务器,它作为一个桥梁,使得大型语言模型(LLM)能够以标准化的方式访问美国国家航空航天局(NASA)的丰富数据资源。通过集成 NASA 开放的API,该服务器提供了一个统一的接口,简化了AI模型与NASA各类数据源的交互过程,从而赋能开发者构建更加智能和数据驱动的太空探索应用。

主要功能点

  • 统一数据访问接口: 通过 MCP 协议,为超过20个NASA数据源提供一致的访问方式,简化数据获取流程。
  • 优化的数据格式: 将NASA数据转换为适合AI模型消费的标准化格式,提升LLM应用的数据处理效率。
  • 自动化处理机制: 具备自动参数验证和错误处理能力,确保数据请求的准确性和稳定性。
  • API 密钥管理: 内置速率限制管理,帮助用户有效管理和使用NASA API密钥,避免超出API使用限制。
  • 全面的文档支持: 提供详尽的文档和示例,方便开发者快速上手和集成。
  • 广泛的NASA API覆盖: 集成了包括APOD、火星探测车照片、近地天体数据、地球观测数据等在内的多个重要的NASA API。
  • 跨平台支持: 支持Windows、macOS和Linux等多种操作系统,具有良好的兼容性。

安装步骤

  1. 环境准备: 确保已安装 Node.js 和 npm (或 yarn)。

  2. 安装 NASA MCP Server: 通过 npm 或 npx 可以快速安装并运行 NASA MCP Server。

    • 使用 npx 运行 (推荐):

      env NASA_API_KEY=YOUR_NASA_API_KEY npx -y @programcomputer/nasa-mcp-server

      npx -y @programcomputer/nasa-mcp-server --nasa-api-key=YOUR_NASA_API_KEY

      请将 'YOUR_NASA_API_KEY' 替换为您在 NASA API 官网(api.nasa.gov)申请的API密钥。

    • 手动安装:

      git clone https://github.com/ProgramComputer/NASA-MCP-server.git
      cd NASA-MCP-server
      npm install
      NASA_API_KEY=YOUR_NASA_API_KEY npm start

      同样,请替换 'YOUR_NASA_API_KEY'。

服务器配置

对于 MCP 客户端(如 Cursor),您需要配置 MCP 服务器的启动命令。在 Cursor 的 'mcp.json' 配置文件中,添加以下配置:

{
  "mcpServers": {
    "nasa-mcp": {
      "command": "npx",
      "args": ["-y", "@programcomputer/nasa-mcp-server"],
      "env": {
        "NASA_API_KEY": "YOUR_NASA_API_KEY"
      }
    }
  }
}

请务必将 '"YOUR_NASA_API_KEY"' 替换为您的实际 NASA API 密钥。配置完成后,重启 Cursor 即可看到新增的 NASA 工具。

基本使用方法

NASA MCP Server 遵循 Model Context Protocol 协议,客户端通过 JSON-RPC 与服务器通信。您可以使用 MCP SDK 或任何支持 JSON-RPC 的客户端与服务器交互。

以下是一个使用 MCP SDK 客户端的示例 (TypeScript):

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { HttpClientTransport } from "@modelcontextprotocol/sdk/client/http.js";

const transport = new HttpClientTransport({
  url: "http://localhost:3000", // 默认服务器地址
});

const client = new Client({
  name: "mcp-client",
  version: "1.0.0",
});

await client.connect(transport);

// 调用 NASA APOD API 获取今日天文图片
const apodResult = await client.request({
  method: "nasa/apod",
  params: {}
});
console.log(apodResult.result);

// 调用 NASA 火星探测车照片 API
const marsRoverResult = await client.request({
  method: "nasa/mars-rover",
  params: { rover: "curiosity", sol: 1000 }
});
console.log(marsRoverResult.result);

// ... 更多API调用示例请参考仓库 README 或文档

环境变量配置

您可以通过环境变量自定义服务器行为:

| 变量名 | 描述 | 默认值 | |-----------------|------------------------------------------|---------------| | 'NASA_API_KEY' | 您的 NASA API 密钥 (api.nasa.gov 获取) | 'DEMO_KEY' (有限使用) | | 'PORT' | 服务器端口 | '3000' | | 'LOG_LEVEL' | 日志级别 (debug, info, warn, error) | 'info' | | 'CACHE_DURATION'| 缓存时长 (秒) | '3600' (1小时) | | 'RATE_LIMIT' | 每小时最大请求数 (取决于 API 密钥) | 基于 API 密钥 |

请根据您的需求配置相应的环境变量。

信息

分类

网页与API