TAT-C MCP服务器
使用TAT-C库提供卫星地面轨道生成的MCP(模型上下文协议)服务器。该项目有意将服务器置于首位:它公开了一个独立的MCP服务器,可以与任何兼容MCP的LLM客户端一起使用,并为下游工具返回一致的遥测有效载荷。
使用案例:
- 轻松收集数据:使用自然语言请求卫星地面轨道(例如,“给我下一小时的国际空间站地面轨道”)
- 可视化就绪:生成的数据可以传递给下游可视化工具和地图/全球前端
- LLM集成:适用于任何兼容MCP的LLM客户端
特性
- 卫星元数据+TLE获取:解析卫星身份并从CelesTrak获取当前元数据/TLE数据
- 地面轨迹生成:计算指定时间段内的卫星地面轨迹
- 结构化输出:输出具有位置和可选几何字段的稳定遥测对象
- LLM不可知论:适用于任何兼容MCP的LLM客户端
快速开始
安装
# Install dependencies
pip install -r requirements.txt核心依赖设置引脚 numpy<2.2 作为解决以下问题的环境的兼容性保障 numba 0.61.x,它不支持NumPy 2.2+。
运行服务器
python -m tatc_mcp.server服务器在stdin/stdout上监听MCP协议消息。配置LLM客户端以运行此命令,从而从项目根目录使用服务器。
可用工具
generate_ground_track
为卫星生成地面轨迹。
参数:
satellite_identifier(必填):卫星名称(例如“ISS”)或北美防空司令部IDstart_time(可选):ISO-8601格式的开始时间,"now",或相对形式,例如"in one hour"(默认值:"now")duration(可选):持续时间(例如。,"1 hour"或"one hour",默认值:"1 hour")step_interval(可选):时间步长(例如,“1分钟”,默认值:“1分钟)
退货: 遥测对象阵列 id, time, position_lla (lat/lon/alt),可选 footprint_geojson 当几何形状可用时。
get_satellite_info
从CelesTrak获取包括TLE数据在内的卫星信息。
参数:
satellite_identifier(必填):卫星名称或NORAD ID
退货: 词典与 norad_id, name, tle_line1,以及 tle_line2.
search_satellites
在CelesTrak数据库中按名称搜索卫星。
参数:
query(必填):卫星名称或部分名称(例如“星链”、“GPS”)limit(可选):最大结果(默认值:10)
退货: 包含NORAD ID、名称、物体类型、国家和发射日期的卫星字典列表。
示例提示
- “以1分钟的步幅给出国际空间站下一小时的地面轨迹”
- “以5分钟为间隔,向我展示哈勃太空望远镜未来2小时的地面轨迹”
- “获取NORAD ID 25544的卫星信息”
- “搜索星链卫星”
支持的卫星名称
服务器支持:
- NORAD ID:直接数字ID,如
"25544" - 确切/常用名称:
"ISS","Hubble","James Webb","NOAA-19" - 搜索优先工作流:用于宽泛或模糊的术语,如
"Starlink"或"GPS",使用search_satellites首先,将确切的名称或NORAD ID传递给其他工具
输出格式
服务器返回一个遥测对象数组,形状如下:
{
"id": "25544",
"time": "2024-01-15T12:00:00Z",
"position_lla": {
"lat_deg": 51.6432,
"lon_deg": -0.1234,
"alt_m": 408000.0
},
"footprint_geojson": { ... }
}现场总结:
id:稳定的卫星标识符time:ISO-8601 UTC时间戳position_lla.lat_deg:纬度(度)position_lla.lon_deg:经度(度)position_lla.alt_m:海拔高度(单位:米)footprint_geojson:用于可视化的可选GeoJSON多边形
与MCP客户端一起使用
Codex CLI
Codex支持本地STDIO服务器和远程Streamable HTTP服务器。官方配置文件是 ~/.codex/config.toml.
在用于此项目的当前Windows+WSL设置中,此本地STDIO配置正在工作:
[mcp_servers.tatc]
command = "wsl.exe"
args = ["bash", "-lc", "cd /home/satyal/tatc-mcp && python3 -m tatc_mcp.server"]
startup_timeout_sec = 30
tool_timeout_sec = 120
enabled = true您还可以从CLI添加相同的服务器:
codex mcp add tatc -- wsl.exe bash -lc "cd /home/satyal/tatc-mcp && python3 -m tatc_mcp.server"Codex应用程序
在当前设置中,Codex应用程序正在读取相同的内容 ~/.codex/config.toml 重新启动后成功进入。使用相同 tatc 如上图所示。
官方Codex文档明确描述了CLI和IDE扩展的共享MCP配置。在这个项目中,应用程序在实践中也成功地使用了共享配置。
克劳德代码
Claude Code支持本地STDIO服务器和远程HTTP服务器。
从Linux或WSL上的项目根目录,您可以使用以下命令添加此服务器:
claude mcp add tatc -- python3 -m tatc_mcp.server如果你想从repo目录外添加它,请使用:
claude mcp add tatc -- bash -lc 'cd /home/satyal/tatc-mcp && python3 -m tatc_mcp.server'在本机Windows上,可以通过WSL运行相同的模式:
claude mcp add tatc -- wsl.exe --cd /home/satyal/tatc-mcp python3 -m tatc_mcp.server光标
游标支持 stdio, SSE,以及 Streamable HTTP MCP传输。对于当前的本地设置,使用项目 .cursor/mcp.json 或全球 ~/.cursor/mcp.json 使用本地STDIO服务器。
示例 mcp.json Windows+WSL的入口:
{
"mcpServers": {
"tatc": {
"type": "stdio",
"command": "wsl.exe",
"args": ["bash", "-lc", "cd /home/satyal/tatc-mcp && python3 -m tatc_mcp.server"]
}
}
}Web界面
ChatGPT开发人员模式和Claude web自定义连接器需要远程MCP服务器URL。本地STDIO服务器不足以用于这些web界面。
这意味着该存储库今天可以在本地与Codex CLI、当前的Codex应用程序设置、Claude Code和Cursor一起使用,而无需托管。要将其与ChatGPT web或Claude web一起使用,您首先需要在此项目中使用远程MCP传输,然后需要将其托管在可访问的HTTPS URL上。对于新工作,首选HTTP或流式HTTP。Claude仍然支持远程连接器的SSE,但Anthropic在HTTP可用的情况下将SSE记录为已弃用。
参考文献
- 食品法典委员会MCP:https://developers.openai.com/codex/mcp
- ChatGPT开发者模式:https://developers.openai.com/api/docs/guides/developer-mode
- 克劳德代码MCP:https://code.claude.com/docs/en/mcp
- 克劳德定制连接器:https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp
- 光标MCP:https://docs.cursor.com/en/context/mcp
故障排除
MCP SDK错误:
pip install mcpCelesTrak API错误:
- 检查网络连接
- 验证卫星名称/NORAD ID是否正确
- CelesTrak可能暂时不可用
许可证
本项目使用TAT-C库(BSD-3-Clause)。请参阅 TAT-C存储库 了解详情。
致谢
- TAT-C库: 代码实验室org/tatc
- CelesTrak: Celebrant.org
- MCP协议:Anthropic的模型上下文协议
