天文数据MCP服务器

提供月相、日月升降时间、日食预测、地球季节、行星位置及全天摘要的天文数据MCP服务器,适用于天文观测、科研和教育场景。

  • by IBM
  • Python
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 chrishayuk/chuk-mcp-celestial

使用说明

楚克mcp天体

天文天文数据MCP服务器

MCP(模型上下文协议)服务器,提供月相、太阳/月亮升起/落下 时间、日食预测、地球季节、行星位置/事件, 以及来自美国海军天文应用部API的全天空摘要 以及本地Skyfield计算。

这是一个为学习和测试目的而提供的演示项目。

🌐 立即尝试-托管版本可用! -无需安装。

特性

🌙 综合天体数据:

  • 精确计时的月相(新月、第一季度、满月、最后一季度)
  • 任何地点的太阳和月亮升起/落下/过境时间
  • 结合当地情况的日食预测
  • 地球的季节(春分、至点、近日点、远日点)
  • 行星位置(高度、方位角、距离、星等、星座、RA/Dec、伸长率、能见度)
  • 行星事件(上升、设定、凌日时间)

⚡ 灵活的供应商:

  • 海军API -美国海军权威数据,所有功能
  • Skyfield -离线计算速度提高28倍,研究级精度(默认包含)
  • 混合模式 -按工具混合提供者(例如,月相的Skyfield,日食的Navy)
  • S3存储 -通过chuk虚拟fs实现基于云的星历存储
  • 文物存储 -计算结果通过chuk工件(S3、文件系统、内存)持久化
  • GeoJSON输出 -基于位置的响应遵循GeoJSON功能规范

🔒 类型安全且坚固:

  • Pydantic v2模型适用于所有响应-无需字典!
  • 所有常量的枚举-没有神奇的字符串!
  • httpx完全支持异步/等待
  • 全面的错误处理

🔗 多服务器集成:

  • 与无缝协作 时间 和 天气 服务器
  • 结合天文+时间+天气,实现综合天文智能
  • 回答复杂的问题,比如“在目前的天气条件下,今晚能看到月亮吗?”

✅ 质量保证:

  • pytest的测试覆盖率超过70%
  • GitHub操作CI/CD
  • 自动发布到PyPI
  • 使用mypy进行类型检查
  • 带有褶皱的代码质量

安装

安装方法比较

方法 设置时间 需要互联网 更新 最适合
托管 即时 是 自动 快速测试,生产使用
uvx 即时 是(首次运行) 自动 无本地安装,始终最新
本地 1-2分钟 仅用于安装 手动 离线使用,自定义部署

选项1:使用托管版本(推荐)

无需安装!使用我们的公共托管版本:

{
  "mcpServers": {
    "celestial": {
      "url": "https://celestial.chukai.io/mcp"
    }
  }
}

选项2:通过uvx安装(无需安装)

无需安装即可直接运行:

{
  "mcpServers": {
    "celestial": {
      "command": "uvx",
      "args": ["chuk-mcp-celestial"]
    }
  }
}

选项3:本地安装

# With pip
pip install chuk-mcp-celestial

# Or with uv (recommended)
uv pip install chuk-mcp-celestial

# Or with pipx (isolated installation)
pipx install chuk-mcp-celestial

默认情况下,Skyfield和NumPy都包含在内——所有7个工具都可以开箱即用。

使用S3工件存储(可选):

pip install "chuk-mcp-celestial[s3]"

然后在MCP客户端中配置:

{
  "mcpServers": {
    "celestial": {
      "command": "chuk-mcp-celestial"
    }
  }
}

可选:配置混合提供程序模式 (创建 celestial.yaml):

# Use Skyfield for fast queries, Navy API for everything else
default_provider: navy_api
providers:
  moon_phases: skyfield     # 28x faster
  earth_seasons: skyfield   # 33x faster

快速开始

安装

# No installation required (runs directly)
uvx chuk-mcp-celestial

# Or install from PyPI
uv pip install chuk-mcp-celestial

# Or install from source with dev tools
git clone https://github.com/chuk-ai/chuk-mcp-celestial.git
cd chuk-mcp-celestial
uv pip install -e ".[dev]"

Claude桌面配置

{
  "mcpServers": {
    "celestial": {
      "url": "https://celestial.chukai.io/mcp"
    }
  }
}

或者在本地运行:

{
  "mcpServers": {
    "celestial": {
      "command": "uvx",
      "args": ["chuk-mcp-celestial"]
    }
  }
}

跑

# STDIO mode (Claude Desktop, mcp-cli)
chuk-mcp-celestial stdio

# HTTP mode (API access)
chuk-mcp-celestial http --port 8080

支持的提供商

提供商 速度 离线 功能
海军API (默认) ~700ms 否 月亮、太阳/月亮、日食、季节。美国政府官方消息来源。
Skyfield ~25ms 是 月相、季节、行星位置、行星事件。喷气推进实验室星历表

默认情况下,这两个提供程序都包含在内,不需要额外的功能。

工具

月相(1个工具)

工具 说明
get_moon_phases 精确计时的即将到来的月相(UT1)

太阳和月亮(1个工具)

工具 说明
get_sun_moon_data 上升/设定/过境时间、黄昏、月相、地点照明

日食(2个工具)

工具 说明
get_solar_eclipse_by_date 本地日食情况(类型、震级、遮蔽、时间)
get_solar_eclipses_by_year 一年中的所有日食

地球季节(1个工具)

工具 说明
get_earth_seasons 一年的春分、至点、近日点、远日点

行星(2个工具)

工具 说明
get_planet_position 高度、方位角、距离、震级、星座、RA/Dec、伸长率、能见度
get_planet_events 给定日期行星的上升、设定和凌日时间

支持:水星、金星、火星、木星、土星、天王星、海王星、冥王星

天空摘要(1个工具)

工具 说明
get_sky 全天空总结:每个行星的位置、月相、黑暗检查——一个电话

环境变量

变量 必填 默认 描述
CELESTIAL_PROVIDER 没有 navy_api 默认提供程序
CELESTIAL_MOON_PHASES_PROVIDER 否 默认值 月相提供程序
CELESTIAL_EARTH_SEASONS_PROVIDER 否 默认值 地球季节提供程序
CELESTIAL_PLANET_POSITION_PROVIDER 没有 skyfield 行星位置提供者
CELESTIAL_PLANET_EVENTS_PROVIDER 没有 skyfield 行星活动提供商
CELESTIAL_SKY_PROVIDER 没有 skyfield 天空摘要提供者
CELESTIAL_CONFIG_PATH 否 -- 通往celestial.yaml的路径
SKYFIELD_STORAGE_BACKEND 没有 s3 星历表存储: local, s3, memory
SKYFIELD_S3_BUCKET 没有 chuk-celestial-ephemeris S3星历桶
NAVY_API_TIMEOUT 没有 30.0 请求超时(秒)

混合提供商模式

创建 celestial.yaml 按工具混合供应商:

default_provider: navy_api
providers:
  moon_phases: skyfield      # 28x faster, offline
  earth_seasons: skyfield    # 33x faster, offline
  sun_moon_data: navy_api    # Full features
  solar_eclipse_date: navy_api
  solar_eclipse_year: navy_api
  planet_position: skyfield     # Only provider with planet support
  planet_events: skyfield
  sky: skyfield                # All-sky summary

发展

# Install with dev dependencies
uv pip install -e ".[dev]"

# Run tests
make test

# Run tests with coverage
make test-cov

# Lint and format
make lint
make format

# All checks
make check

部署

托管版本

无需安装:

{
  "mcpServers": {
    "celestial": {
      "url": "https://celestial.chukai.io/mcp"
    }
  }
}

码头工人

make docker-build
make docker-run

Fly.io

fly launch
fly secrets set AWS_ACCESS_KEY_ID=your_key AWS_SECRET_ACCESS_KEY=your_secret
make fly-deploy

跨服务器工作流

chuk-mcp-astrial与更广泛的chuk-mcp生态系统整合:

  • 天体+时间 --时区感知天文学(当地时间日出,直到下一个事件的时间)
  • 天体+天气 --观测计划(月相+云量预报)
  • 天体+潮汐 --海岸摄影(黄金时段+潮位)
  • 天体+天气 --日食观测(日食能见度+天气预报)
{
  "mcpServers": {
    "celestial": { "url": "https://celestial.chukai.io/mcp" },
    "time": { "url": "https://time.chukai.io/mcp" },
    "weather": { "url": "https://weather.chukai.io/mcp" }
  }
}

许可证

Apache许可证2.0-有关详细信息,请参阅许可证。

学分

链接