使用说明
项目简介
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等多种操作系统,具有良好的兼容性。
安装步骤
-
环境准备: 确保已安装 Node.js 和 npm (或 yarn)。
-
安装 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