NASA MCP 服务器
一个用于 NASA API 的模型上下文协议 (MCP) 服务器,为 AI 模型提供标准化接口,使其能够与 NASA 的海量数据源进行交互。该服务器实现了官方的模型上下文协议规范。
非常感谢 MCP 社区的支持和指导!
特征
通过单一、一致的界面访问 20 多个 NASA 数据源
针对人工智能消费优化的标准化数据格式
自动参数验证和错误处理
NASA API 密钥的速率限制管理
全面的文档和示例
支持各种 NASA 图像格式
数据转换和格式化以实现 LLM 兼容性
跨平台支持(Windows、macOS、Linux)
Related MCP server: MCP Server For Local
免责声明
**本项目与美国国家航空航天局 (NASA) 或其任何子公司或附属机构均无关联、认可或相关关系。**它是一个独立的实现,可访问 NASA 的公开 API。所有使用的 NASA 数据均公开,并受 NASA 数据使用政策的约束。
安装
使用 npx 运行
env NASA_API_KEY=YOUR_API_KEY npx -y @programcomputer/nasa-mcp-server@latest您还可以将 API 密钥作为命令行参数传递:
npx -y @programcomputer/nasa-mcp-server@latest --nasa-api-key=YOUR_API_KEY使用 SuperGateway 发送服务器发送事件 (SSE)
您可以使用SuperGateway进行服务器发送事件 (SSE)。
NASA-MCP-server 的开发者不认可 SuperGateway 仓库。此信息仅供希望自行实现 SSE 功能的用户参考。
手动安装
# Clone the repository
git clone https://github.com/ProgramComputer/NASA-MCP-server.git
# Install dependencies
cd NASA-MCP-server
npm install
# Run with your API key
NASA_API_KEY=YOUR_API_KEY npm start在光标上运行
配置 Cursor 🖥️ 注意:需要 Cursor 版本 0.45.6+
要在 Cursor 中配置 NASA MCP 服务器:
在您的 Cursor 配置目录中创建或编辑mcp.json文件,其中包含以下内容:
{
"mcpServers": {
"nasa-mcp": {
"command": "npx",
"args": ["-y", "@programcomputer/nasa-mcp-server@latest"],
"env": {
"NASA_API_KEY": "your-api-key"
}
}
}
}将your-api-key替换为来自https://api.nasa.gov/的 NASA API 密钥。
添加配置后,重新启动 Cursor 即可看到新的 NASA 工具。Composer Agent 会在适当的情况下自动使用 NASA MCP 进行与空间相关的查询。
环境变量
可以使用以下环境变量配置服务器:
多变的 | 描述 |
| 您的 NASA API 密钥(从 api.nasa.gov 获取) |
包含 NASA API
该 MCP 服务器集成了以下 NASA API:
NASA开放API (api.nasa.gov):
APOD(每日天文图片)
EPIC(地球多色成像相机)
DONKI(空间天气通知、知识、信息数据库)
洞察号(火星气象服务)
火星探测器照片
NEO(近地天体网络服务)
EONET(地球观测站自然事件追踪器)
TLE(双线元件)
美国宇航局图像和视频库
系外行星档案
NASA 声音 API(测试版)
电力(全球能源资源预测)
JPL太阳系动力学API (ssd-api.jpl.nasa.gov):
SBDB(小体数据库)
SBDB近距离数据
火球数据
侦察 API
地球数据API :
GIBS(全球图像浏览服务)
CMR(通用元数据存储库)——增强了高级搜索功能
EPIC(地球多色成像相机)
FIRMS(资源管理系统火灾信息)
API 方法
每个 NASA API 都通过标准化 MCP 方法公开:
APOD(每日天文图片)
{
"method": "nasa/apod",
"params": {
"date": "2023-01-01", // Optional: YYYY-MM-DD format
"count": 5, // Optional: Return a specified number of random images
"thumbs": true // Optional: Return URL of video thumbnail
}
}火星探测器照片
{
"method": "nasa/mars-rover",
"params": {
"rover": "curiosity", // Required: "curiosity", "opportunity", or "spirit"
"sol": 1000, // Either sol or earth_date is required
"earth_date": "2023-01-01", // YYYY-MM-DD format
"camera": "FHAZ" // Optional: Filter by camera type
}
}近地天体
{
"method": "nasa/neo",
"params": {
"start_date": "2023-01-01", // Required: YYYY-MM-DD format
"end_date": "2023-01-07" // Required: YYYY-MM-DD format (max 7 days from start)
}
}GIBS(全球图像浏览服务)
{
"method": "nasa/gibs",
"params": {
"layer": "MODIS_Terra_CorrectedReflectance_TrueColor", // Required: Layer ID
"date": "2023-01-01", // Required: YYYY-MM-DD format
"format": "png" // Optional: "png" or "jpg"
}
}电力(全球能源资源预测)
{
"method": "nasa/power",
"params": {
"parameters": "T2M,PRECTOTCORR,WS10M", // Required: Comma-separated list
"community": "re", // Required: Community identifier
"latitude": 40.7128, // Required: Latitude
"longitude": -74.0060, // Required: Longitude
"start": "20220101", // Required: Start date (YYYYMMDD)
"end": "20220107" // Required: End date (YYYYMMDD)
}
}有关所有可用方法和参数的完整文档,请参阅/docs目录中的 API 参考。
日志系统
该服务器包括全面的日志记录:
运营状况及进展
性能指标
速率限制跟踪
错误条件
请求验证
日志消息示例:
[INFO] NASA MCP Server initialized successfully
[INFO] Processing APOD request for date: 2023-01-01
[INFO] Fetching Mars Rover data for Curiosity, sol 1000
[WARNING] Rate limit threshold reached (80%)
[ERROR] Invalid parameter: 'date' must be in YYYY-MM-DD format安全注意事项
该 MCP 服务器遵循模型上下文协议规范实现安全最佳实践:
使用 Zod 模式进行输入验证和清理
禁止执行任意代码
防止命令注入
适当的错误处理以防止信息泄露
API 请求的速率限制和超时控制
没有可跨会话利用的持久状态
发展
# Clone the repository
git clone https://github.com/ProgramComputer/NASA-MCP-server.git
# Install dependencies
npm install
# Copy the example environment file and update with your API keys
cp .env.example .env
# Build the TypeScript code
npm run build
# Start the development server
npm run dev
# Run tests
npm test使用 MCP Inspector 进行测试
NASA MCP 服务器包含一个脚本,可帮助您使用 MCP 检查器测试 API:
# Run the provided test script
./scripts/test-with-inspector.sh这将:
构建项目以确保包含最新的更改
在 NASA MCP 服务器运行的情况下启动 MCP 检查器
允许您以交互方式测试所有 NASA API
测试请求示例
该存储库包含每个 API 的示例测试请求,您可以将其复制并粘贴到 MCP 检查器中:
# View the example test requests
cat docs/inspector-test-examples.md有关详细示例,请参阅Inspector 测试示例文档。
MCP 客户端使用
此服务器遵循官方模型上下文协议 (Model Context Protocol)。以下是如何将其与 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);
// Example: Get today's Astronomy Picture of the Day
const apodResult = await client.request({
method: "nasa/apod",
params: {}
});
// Example: Get Mars Rover photos
const marsRoverResult = await client.request({
method: "nasa/mars-rover",
params: { rover: "curiosity", sol: 1000 }
});
// Example: Search for Near Earth Objects
const neoResults = await client.request({
method: "nasa/neo",
params: {
start_date: '2023-01-01',
end_date: '2023-01-07'
}
});
// Example: Get satellite imagery from GIBS
const satelliteImage = await client.request({
method: "nasa/gibs",
params: {
layer: 'MODIS_Terra_CorrectedReflectance_TrueColor',
date: '2023-01-01'
}
});
// Example: Use the new 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"
}
});贡献
分叉存储库
创建你的功能分支
运行测试:
npm test提交拉取请求
执照
ISC 许可证 - 详情请参阅许可证文件