卫星轨道数据服务

SpaceTrackMCP是一个基于MCP协议的服务器,提供对Space-Track API的访问,用于获取卫星双行元素(TLEs)和卫星轨道传播,适用于研究、自动化和教育场景。

  • by adarshchitti
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 adarshchitti/spacetrackmcp

使用说明

SpaceTrackMCP

SpaceTrackMCP 是用于的MCP(模型上下文协议)服务器 API太空支架,旨在提供对卫星双线元件(TLE)和卫星轨道传播的可编程和可扩展访问。该服务器专为研究、自动化和教育目的而设计,并通过MCP接口公开了一组工具。


特性

  • MCP服务器:使用FastMCP轻松扩展服务器,使您的代理能够使用工具。
  • 获取TLE工具:使用各种过滤器(NORAD ID、历元、平均运动、偏心率等)从空间轨道查询卫星的最新或历史TLE。
  • 传播卫星工具:使用SGP4算法将任何卫星的轨道传播到指定的历元,并获得位置和速度矢量。
  • 可扩展设计:旨在轻松添加新工具——下一个:卫星插值支持。

演示

https://github.com/user-attachments/assets/b9283603-f432-4d7d-bfca-5394686b168f


用法

1.环境设置

  • 克隆存储库。
  • 安装依赖项(见下文)。
  • 设置您的 .env 使用您的空间跟踪凭据文件:
    SPACE_TRACK_USERNAME=your_username
    SPACE_TRACK_PASSWORD=your_password
    

2.安装依赖项

pip install -r requirements.txt

3.运行服务器

python src/server.py

服务器公开了您可以使用MCP客户端进行交互的MCP工具。


工具

1.获得TLE

通过灵活的过滤从太空轨道检索卫星的两个线元素:

  • 输入: norad_cat_id, start_date, end_date, mean_motion_min, mean_motion_max, eccentricity_min, eccentricity_max, format_type
  • 退货:JSON、TLE、XML或CSV格式的TLE。

2.传播卫星

使用SGP4将卫星的轨道传播到目标历元。

  • 输入: norad_cat_id, epoch (ISO 8601)
  • 退货:TEME坐标系中的位置(km)、速度(km/s)、TLE历元。

(即将推出)插值工具

一种新的轨道插值工具正在开发中——敬请期待!


示例代码

# Example: Get TLEs for the ISS (NORAD 25544)
result = await get_tles(norad_cat_id=25544)

# Example: Propagate ISS to a specific datetime
result = await propagate_satellite_position(norad_cat_id=25544, epoch="2025-07-15T00:00:00Z")

建筑

  • src/server.py:主服务器逻辑、工具注册和入口点。
  • src/spacetrack_client.py:处理Space-Track API身份验证和TLE检索。
  • src/propagator.py:使用SGP4进行TLE解析和卫星传播。
  • 工具通过MCP协议公开,可以通过添加新的装饰方法进行扩展。

需求

  • Python 3.8+
  • aiohttp, python-dotenv, sgp4,以及中的其他依赖关系 requirements.txt
  • 空间跟踪帐户凭据

路线图

  • [x] TLE检索和过滤
  • [x] SGP4传播工具
  • []轨道插值工具
  • []更多示例客户端和UI集成
  • []文档和高级示例

贡献

欢迎提出意见和建议!请打开问题或拉取请求。


致谢