使用说明
NASA MCP服务器
一个模型上下文协议(MCP)服务器,提供对美国国家航空航天局公共API的访问,包括当日天文图(APOD)、火星车图像和近地天体(NEO)数据。
特性
- 每日天文图片(APOD):获取带有描述的每日天文图像
- 火星漫游者图像:使用各种相机选项访问火星漫游车的照片
- 近地天体:检索小行星数据和近距离接近信息
- 地球图像(EPIC):从美国国家航空航天局的DSCOVR卫星获取地球的卫星图像
- GIBS卫星图像:从美国国家航空航天局的全球图像浏览服务访问高分辨率地球图像
- GIBS图层信息:获取可用卫星图像层的详细信息
- 图像分析工具:通过自动处理和base64转换从URL获取和分析图像
安装
从PyPI安装软件包:
pip install nasa-mcp-server
或使用uvx(建议用于MCP):
uvx nasa-mcp-server
设置
获取NASA API密钥
- 访问 NASA API门户网站
- 生成您的免费API密钥
- 随时准备API密钥进行配置
VS代码配置
将以下内容添加到您的VS代码中 mcp.json 配置文件:
{
"servers": {
"nasa-mcp": {
"command": "uvx",
"args": ["nasa-mcp-server"],
"env": {
"NASA_API_KEY": "YOUR_NASA_API_KEY_HERE"
}
}
}
}
替换 YOUR_NASA_API_KEY_HERE 使用您的实际NASA API密钥。
Claude桌面配置
将以下内容添加到您的Claude Desktop配置中:
视窗: %APPDATA%/Claude/claude_desktop_config.json
macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"nasa-mcp": {
"command": "uvx",
"args": ["nasa-mcp-server"],
"env": {
"NASA_API_KEY": "YOUR_NASA_API_KEY_HERE"
}
}
}
}
替换 YOUR_NASA_API_KEY_HERE 使用您的实际NASA API密钥。
可用工具
1.get_apod-当天的天文图片
从美国国家航空航天局的APOD服务中获取令人惊叹的天文图像和详细描述。
参数:
date(YYYY-MM-DD):APOD图像的具体日期(默认值:今天)start_date(YYYY-MM-DD):日期范围的开始日期(不能与date)end_date(YYYY-MM-DD):日期范围的结束日期(默认值:今天)count(int):要检索的随机图像数(不能与日期参数一起使用)
示例用法:
- 获取今天的APOD:
get_apod() - 获取特定日期的APOD:
get_apod(date="2024-01-15") - 获取日期范围的APOD:
get_apod(start_date="2024-01-01", end_date="2024-01-07") - 随机获取5个APOD:
get_apod(count=5)
2.获取火星漫游者图像
访问火星探测器用各种相机视角拍摄的照片。
参数:
earth_date(YYYY-MM-DD):拍摄照片时的地球日期(默认值:今天)sol(int):漫游者任务的火星溶胶(天)(默认值:1000)camera(string):要使用的相机类型
可用摄像头:
FHAZ:前危险规避摄像头RHAZ:后部危险规避摄像头MAST:桅杆摄像头CHEMCAM:化学和相机综合体MAHLI:火星手持镜头成像仪MARDI:火星下降成像仪NAVCAM:导航摄像头PANCAM:全景摄像头MINITES:微型热发射光谱仪(Mini-TES)
示例用法:
- 获取今天的图片:
get_mars_image() - 从特定地球日期获取图像:
get_mars_image(earth_date="2024-01-15") - 从特定溶胶中获取图像:
get_mars_image(sol=500) - 从特定相机获取图像:
get_mars_image(camera="MAST")
3.get_neo_feed-近地天体
检索有关小行星及其接近地球的信息。
参数:
start_date(YYYY-MM-DD):小行星搜索的开始日期(默认值:今天)end_date(YYYY-MM-DD):小行星搜索的结束日期(默认值:开始日期后7天)limit_per_day(int):每天显示的小行星的最大数量(默认值:2)
注: 根据NASA API的限制,最大日期范围为7天。
示例用法:
- 获取未来7天的NEO数据:
get_neo_feed() - 获取特定日期范围的NEO数据:
get_neo_feed(start_date="2024-01-15", end_date="2024-01-20") - 限制每天的结果:
get_neo_feed(limit_per_day=5)
4.获取地球图像工具(EPIC)
使用地球多色成像相机(EPIC)从美国国家航空航天局的DSCOVR卫星获取地球的卫星图像。
参数:
earth_date(YYYY-MM-DD):拍摄照片的日期(默认值:最新可用)type(string):要检索的图像类型limit(int):要检索的图像数量(默认值:1,建议最大值:10)
可用图像类型:
natural:自然色图像(默认)enhanced:增强的彩色图像aerosol:气溶胶图像cloud:云图
示例用法:
- 获取最新的地球图像:
get_earth_image_tool() - 获取特定日期的图像:
get_earth_image_tool(earth_date="2024-01-15") - 获得增强的彩色图像:
get_earth_image_tool(type="enhanced") - 获取多张图片:
get_earth_image_tool(limit=5)
5.get_gibs_image-gibs卫星图像
从美国国家航空航天局的全球图像浏览服务(GIBS)访问地球的高分辨率卫星图像。
参数:
layer(string):要获取的图像层(默认值:“MODIS_Terra_CorrectedReflect_TrueColor”)bbox(字符串):边界框为“min_lon,min_lat,max_lon,max-lat”(默认值:“-180,-90180,90”)date(YYYY-MM-DD):图像日期(默认值:最新可用)width(int):图像宽度(像素)(默认值:512,建议最大值:2048)height(int):图像高度(像素)(默认值:512,建议最大值:2048)format(string):图像格式-“Image/png”或“Image/jpeg”(默认:“Image/pang”)projection(字符串):坐标系-“epsg4326”或“epsg3857”(默认值:“epsg432 6”)
常用图像层:
MODIS_Terra_CorrectedReflectance_TrueColor:Terra卫星真彩色(默认)MODIS_Aqua_CorrectedReflectance_TrueColor:Aqua卫星真彩色VIIRS_SNPP_CorrectedReflectance_TrueColor:VIIRS卫星真彩色MODIS_Terra_CorrectedReflectance_Bands721:Terra假色MODIS_Aqua_CorrectedReflectance_Bands721:水蓝色假色Reference_Labels_15m:政治边界和标签Reference_Features_15m:海岸线和水体MODIS_Terra_Aerosol:气溶胶光学厚度MODIS_Terra_Land_Surface_Temp_Day:地表温度
边界框示例:
- 世界:
"-180,-90,180,90" - 美国:
"-125,25,-65,50" - 欧洲:
"0,40,40,70"
示例用法:
- 获取世界图像:
get_gibs_image() - 获取美国真彩色图像:
get_gibs_image(bbox="-125,25,-65,50") - 获取假彩色图像:
get_gibs_image(layer="MODIS_Terra_CorrectedReflectance_Bands721") - 获取高分辨率图像:
get_gibs_image(width=1024, height=1024) - 获取特定日期的图像:
get_gibs_image(date="2024-01-15")
6.get_gibs_layers-可用的gibs层
获取有关所有可用GIBS层及其功能的信息。
参数: 无
示例用法:
- 获取所有可用图层:
get_gibs_layers()
7.get_image_analyze-图像分析工具
从URL获取图像并将其转换为base64格式以进行LLM分析。此工具从任何URL下载图像并对其进行处理以供分析。
参数:
image_url(string):要分析的图像的URL(必填)
示例用法:
- 从URL分析图像:
get_image_analyze(image_url="https://example.com/image.jpg") - 分析NASA图像:
get_image_analyze(image_url="https://apod.nasa.gov/apod/image/2401/example.jpg")
特征:
- 自动图像格式检测(PNG、JPEG、GIF)
- 图像压缩和调整大小以实现最佳处理
- 用于LLM分析的Base64转换
- 支持多种图像格式和URL
- 自动RGB转换,兼容JPEG
**注:** 此工具返回一个 图像内容。截至目前,仅**第4条**支持此功能。其他LLM可能不会对图像分析做出响应。
错误处理
该服务器包括全面的错误处理功能,用于:
- 日期格式无效
- 网络超时
- API密钥无效
- NASA API特定错误
测试
该项目包括一个全面的测试套件,以确保所有MCP工具正常运行。
快速测试
# Run all tests
python test.py
# Run with verbose output
python test.py -v
# Setup test environment
python tests/setup_tests.py
测试覆盖率
测试套件包括:
- 所有7个具有各种参数组合的MCP工具
- 错误处理场景
- 集成工作流程
- 异步功能
有关详细的测试信息,请参阅 tests/README.md.
需求
- Python 3.8+
- NASA API密钥(免费 NASA API门户网站)
- 用于访问API的Internet连接
链接
- PyPI包: https://pypi.org/project/nasa-mcp-server/
- NASA API文件: https://api.nasa.gov/
- MCP文件: https://modelcontextprotocol.io/
支持
有关问题和支持,请访问软件包存储库或NASA API文档了解API相关问题。
许可证
该项目使用美国国家航空航天局的公共API。有关使用指南,请参阅NASA的API服务条款。
开发人员
我是Adithya。我开发了这个包,作为 移动互联网企业 实习项目。想多谈谈,给我发电子邮件adithyasn7@gmail.com