NASA MCP Server
一个模型上下文协议服务器,它为人工智能模型提供了一个标准化的接口,以便与美国国家航空航天局(NASA)的大量数据源进行交互,这些数据源包括每日天文一图(APOD)、火星探测器照片、卫星图像和空间天气数据。
README
NASA MCP 服务器
一个用于 NASA API 的模型上下文协议 (MCP) 服务器,为 AI 模型提供一个标准化的接口,以便与 NASA 大量的数据源进行交互。此服务器实现了官方的模型上下文协议规范。
非常感谢 MCP 社区的支持和指导!
特性
- 通过一个单一、一致的接口访问 20 多个 NASA 数据源
- 针对 AI 消费优化的标准化数据格式
- 自动参数验证和错误处理
- NASA API 密钥的速率限制管理
- 全面的文档和示例
- 支持各种 NASA 图像格式
- 为 LLM 兼容性进行数据转换和格式化
- 跨平台支持 (Windows, macOS, Linux)
免责声明
本项目与 NASA(美国国家航空航天局)或其任何子公司或附属公司无关,未经其认可或与其相关。 这是一个独立的实现,可以访问 NASA 公开提供的 API。 所有使用的 NASA 数据均为公开数据,并受 NASA 数据使用政策的约束。
安装
使用 npx 运行
env NASA_API_KEY=YOUR_API_KEY npx -y @programcomputer/nasa-mcp-server
您也可以将 API 密钥作为命令行参数传递:
npx -y @programcomputer/nasa-mcp-server --nasa-api-key=YOUR_API_KEY
使用 SuperGateway 进行服务器发送事件 (SSE)
您可以使用 SuperGateway 进行服务器发送事件 (SSE)。
NASA-MCP-server 的开发者不认可 SuperGateway 仓库。 此信息仅供希望自行决定实现 SSE 功能的人员使用。
手动安装
# 克隆仓库
git clone https://github.com/ProgramComputer/NASA-MCP-server.git
# 安装依赖
cd NASA-MCP-server
npm install
# 使用您的 API 密钥运行
NASA_API_KEY=YOUR_API_KEY npm start
在 Cursor 上运行
配置 Cursor 🖥️ 注意:需要 Cursor 版本 0.45.6+
要在 Cursor 中配置 NASA MCP Server:
在您的 Cursor 配置目录中创建或编辑一个 mcp.json 文件,内容如下:
{
"mcpServers": {
"nasa-mcp": {
"command": "npx",
"args": ["-y", "@programcomputer/nasa-mcp-server"],
"env": {
"NASA_API_KEY": "your-api-key"
}
}
}
}
将 your-api-key 替换为您从 https://api.nasa.gov/ 获取的 NASA API 密钥。
添加配置后,重新启动 Cursor 以查看新的 NASA 工具。 Composer Agent 将在适当的时候自动使用 NASA MCP 来处理与太空相关的查询。
环境变量
可以使用以下环境变量配置服务器:
| 变量 | 描述 | 默认值 |
|---|---|---|
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 密钥 |
包含的 NASA API
此 MCP 服务器集成了以下 NASA API:
-
NASA Open API (api.nasa.gov):
- APOD (每日天文图片)
- EPIC (地球多色成像相机)
- DONKI (空间天气通知、知识、信息数据库)
- Insight (火星天气服务)
- 火星探测器照片
- NEO (近地天体网络服务)
- EONET (地球观测自然事件追踪器)
- TLE (双行轨道根数)
- NASA 图像和视频库
- 系外行星档案
- NASA 声音 API (Beta)
- POWER (全球能源资源预测)
-
JPL 太阳系动力学 API (ssd-api.jpl.nasa.gov):
- SBDB (小天体数据库)
- SBDB 近距离接近数据
- 火球数据
- Scout API
-
地球数据 API:
- GIBS (全球影像浏览服务)
- CMR (通用元数据存储库) - 增强了高级搜索功能
- EPIC (地球多色成像相机)
- FIRMS (资源管理系统火灾信息)
API 方法
每个 NASA API 都通过标准化的 MCP 方法公开:
APOD (每日天文图片)
{
"method": "nasa/apod",
"params": {
"date": "2023-01-01", // 可选: YYYY-MM-DD 格式
"count": 5, // 可选: 返回指定数量的随机图像
"thumbs": true // 可选: 返回视频缩略图的 URL
}
}
火星探测器照片
{
"method": "nasa/mars-rover",
"params": {
"rover": "curiosity", // 必需: "curiosity", "opportunity", 或 "spirit"
"sol": 1000, // sol 或 earth_date 必须提供一个
"earth_date": "2023-01-01", // YYYY-MM-DD 格式
"camera": "FHAZ" // 可选: 按相机类型过滤
}
}
近地天体
{
"method": "nasa/neo",
"params": {
"start_date": "2023-01-01", // 必需: YYYY-MM-DD 格式
"end_date": "2023-01-07" // 必需: YYYY-MM-DD 格式 (最多从开始日期起 7 天)
}
}
GIBS (全球影像浏览服务)
{
"method": "nasa/gibs",
"params": {
"layer": "MODIS_Terra_CorrectedReflectance_TrueColor", // 必需: 图层 ID
"date": "2023-01-01", // 必需: YYYY-MM-DD 格式
"format": "png" // 可选: "png" 或 "jpg"
}
}
POWER (全球能源资源预测)
{
"method": "nasa/power",
"params": {
"parameters": "T2M,PRECTOTCORR,WS10M", // 必需: 逗号分隔的列表
"community": "re", // 必需: 社区标识符
"latitude": 40.7128, // 必需: 纬度
"longitude": -74.0060, // 必需: 经度
"start": "20220101", // 必需: 开始日期 (YYYYMMDD)
"end": "20220107" // 必需: 结束日期 (YYYYMMDD)
}
}
有关所有可用方法和参数的完整文档,请参阅 /docs 目录中的 API 参考。
日志系统
服务器包含全面的日志记录:
- 操作状态和进度
- 性能指标
- 速率限制跟踪
- 错误情况
- 请求验证
示例日志消息:
[INFO] NASA MCP 服务器初始化成功
[INFO] 正在处理 2023-01-01 的 APOD 请求
[INFO] 正在获取 Curiosity 的火星探测器数据,sol 1000
[WARNING] 达到速率限制阈值 (80%)
[ERROR] 无效参数: 'date' 必须是 YYYY-MM-DD 格式
安全注意事项
此 MCP 服务器实现了遵循模型上下文协议规范的安全最佳实践:
- 使用 Zod 模式进行输入验证和清理
- 不执行任意代码
- 防止命令注入
- 正确的错误处理以防止信息泄露
- API 请求的速率限制和超时控制
- 没有可能跨会话利用的持久状态
开发
# 克隆仓库
git clone https://github.com/ProgramComputer/NASA-MCP-server.git
# 安装依赖
npm install
# 复制示例环境变量文件并使用您的 API 密钥更新
cp .env.example .env
# 构建 TypeScript 代码
npm run build
# 启动开发服务器
npm run dev
# 运行测试
npm test
使用 MCP Inspector 进行测试
NASA MCP Server 包含一个脚本,可帮助您使用 MCP Inspector 测试 API:
# 运行提供的测试脚本
./scripts/test-with-inspector.sh
这将:
- 构建项目以确保包含最新的更改
- 启动运行 NASA MCP 服务器的 MCP Inspector
- 允许您交互式地测试所有 NASA API
示例测试请求
该存储库包含每个 API 的示例测试请求,您可以将其复制并粘贴到 MCP Inspector 中:
# 查看示例测试请求
cat docs/inspector-test-examples.md
有关详细示例,请参阅 Inspector Test Examples 文档。
MCP 客户端用法
此服务器遵循官方模型上下文协议。 以下是如何将其与 MCP SDK 一起使用的示例:
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);
// 示例:获取今天的每日天文图片
const apodResult = await client.request({
method: "nasa/apod",
params: {}
});
// 示例:获取火星探测器照片
const marsRoverResult = await client.request({
method: "nasa/mars-rover",
params: { rover: "curiosity", sol: 1000 }
});
// 示例:搜索近地天体
const neoResults = await client.request({
method: "nasa/neo",
params: {
start_date: '2023-01-01',
end_date: '2023-01-07'
}
});
// 示例:从 GIBS 获取卫星图像
const satelliteImage = await client.request({
method: "nasa/gibs",
params: {
layer: 'MODIS_Terra_CorrectedReflectance_TrueColor',
date: '2023-01-01'
}
});
// 示例:使用新的 POWER API
const powerData = await client.request({
method: "nasa/power",
params: {
parameters: "T2M,PRECTOTCORR,WS10M",
community: "re",
latitude: 40.7128,
longitude: -74.0060,
start: "20220101",
end: "20220107"
}
});
贡献
- Fork 仓库
- 创建您的功能分支
- 运行测试:
npm test - 提交 pull request
许可证
ISC 许可证 - 有关详细信息,请参见 LICENSE 文件
推荐服务器
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mult-fetch-mcp-server
一个多功能的、符合 MCP 规范的网页内容抓取工具,支持多种模式(浏览器/Node)、格式(HTML/JSON/Markdown/文本)和智能代理检测,并提供双语界面(英语/中文)。
AIO-MCP Server
🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。
Knowledge Graph Memory Server
为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。
Hyperbrowser
欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:
https://github.com/Streen9/react-mcp
react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。
any-chat-completions-mcp
将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。
Exa MCP Server
一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。