ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Astronomy MCP Server

โดย cyanheadsรุ่น 0.5.0i★ –iบนเครื่องหรือคลาวด์
ชื่อใน registryio.github.cyanheads/astronomy-mcp-server

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Offline observational astronomy: positions, rise/set, moon phases, eclipses, and seasons.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: บนเครื่องหรือคลาวด์
  • ช่องทาง (transport): stdio, Streamable HTTP
  • หมวด: อื่น ๆ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย
  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:

  1. เปิด Settings → Connectors
  2. กด Add custom connector
  3. วางที่อยู่ด้านล่างแล้วกด Add
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Add2https://…3
https://astronomy.caseyjhand.com/mcp

หรือรันในเครื่องคุณ

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "astronomy": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/astronomy-mcp-server"
      ],
      "env": {
        "MCP_LOG_LEVEL": "ใส่ค่าของคุณ",
        "ASTRONOMY_ENABLE_HORIZONS": "ใส่ค่าของคุณ",
        "ASTRONOMY_ENABLE_SATELLITES": "ใส่ค่าของคุณ",
        "ASTRONOMY_DEFAULT_TIMEZONE": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http astronomy https://astronomy.caseyjhand.com/mcp

หรือรันในเครื่องคุณ

claude mcp add astronomy --env MCP_LOG_LEVEL='ใส่ค่าของคุณ' --env ASTRONOMY_ENABLE_HORIZONS='ใส่ค่าของคุณ' --env ASTRONOMY_ENABLE_SATELLITES='ใส่ค่าของคุณ' --env ASTRONOMY_DEFAULT_TIMEZONE='ใส่ค่าของคุณ' -- npx -y @cyanheads/astronomy-mcp-server

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "astronomy": {
      "url": "https://astronomy.caseyjhand.com/mcp"
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "astronomy": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/astronomy-mcp-server"
      ],
      "env": {
        "MCP_LOG_LEVEL": "ใส่ค่าของคุณ",
        "ASTRONOMY_ENABLE_HORIZONS": "ใส่ค่าของคุณ",
        "ASTRONOMY_ENABLE_SATELLITES": "ใส่ค่าของคุณ",
        "ASTRONOMY_DEFAULT_TIMEZONE": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "astronomy": {
      "type": "http",
      "url": "https://astronomy.caseyjhand.com/mcp"
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "astronomy": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/astronomy-mcp-server"
      ],
      "env": {
        "MCP_LOG_LEVEL": "ใส่ค่าของคุณ",
        "ASTRONOMY_ENABLE_HORIZONS": "ใส่ค่าของคุณ",
        "ASTRONOMY_ENABLE_SATELLITES": "ใส่ค่าของคุณ",
        "ASTRONOMY_DEFAULT_TIMEZONE": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:

  1. เปิด ChatGPT บนเว็บ → Settings → Connectors (Apps)
  2. กด Create หรือ Add (บางแพ็กเกจต้องเปิด Developer mode ใน Advanced ก่อน)
  3. วางที่อยู่ด้านล่าง ตั้งชื่อ แล้วบันทึก
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Create2https://…3
https://astronomy.caseyjhand.com/mcp

ชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').
  • ASTRONOMY_ENABLE_HORIZONS env
    Register the astronomy_get_ephemeris tool, which fetches small-body and spacecraft ephemerides from JPL Horizons. Off by default; the core is keyless and offline.
  • ASTRONOMY_ENABLE_SATELLITES env
    Register the astronomy_get_satellite_passes tool, which predicts visible satellite passes from CelesTrak GP element sets propagated with SGP4. Off by default.
  • ASTRONOMY_DEFAULT_TIMEZONE env
    Fallback IANA timezone for observer-local output when a tool call omits `timezone`. Unset means UTC-only output.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 7 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน

  • astronomy_get_sky_position

    Compute the apparent topocentric position of one solar-system body (sun, moon, mercury through neptune, pluto) or a named bright star for an observer location and instant. Returns equatorial (RA/Dec), refraction-corrected horizontal (altitude/azimuth), and ecliptic coordinates, p

  • astronomy_get_rise_set

    Compute rise, set, and culmination (transit) times and maximum transit altitude for a body at an observer location. Searches forward from `start` (default now) for `count` daily cycles (default 1), including days without crossings. For the Sun, each cycle carries civil −6°, nauti

  • astronomy_get_moon_phase

    Report the Moon phase for an instant: illuminated fraction, phase name, synodic age in days since the new moon, phase longitude (the Moon–Sun ecliptic-longitude difference, 180° at full), and the next four quarter phases (new, first quarter, full, last quarter) with timestamps. A

  • astronomy_find_events

    Search forward from a start time for the next occurrences of one sky-event class, selected by the `event` enum: solar_eclipse, lunar_eclipse, equinox, solstice, moon_quarter, opposition, conjunction, max_elongation, or perigee_apogee. Both eclipse classes take an optional observe

  • astronomy_list_visible

    The one-call "what is up right now" answer. For an observer location and instant, iterate every naked-eye solar-system body (and, with include_stars, the bundled bright stars), compute altitude and azimuth, keep those above the horizon, rank them brightest-and-highest first, and

  • astronomy_get_ephemeris

    Fetch a time-series ephemeris for a small body (asteroid or comet) or spacecraft from JPL Horizons — RA/Dec, distance, and apparent magnitude over a span, optionally with observer-relative altitude/azimuth. This covers objects the in-process major-body set cannot. The designation

  • astronomy_get_satellite_passes

    Predict visible passes of a satellite (e.g. the ISS, NORAD 25544) over an observer in the next `days`. Identify the satellite by exactly one of `norad_id` or `name` — supplying both, or neither, is rejected. A few well-known common names resolve directly to their catalog numbers,

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub cyanheads ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 249 ms (HTTP 200)

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ไม่ต้องล็อกอิน

  • ✓ ผ่าน

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    อ่านคำอธิบายเครื่องมือ 7 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 18326 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 80% ของอีก 18326 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 18326 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Astronomy MCP Server ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.5.0) เข้า registry 10 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Signoff

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวานซืน
ติดตั้ง

Signoff

โดย ayuanxx-max

Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

@cyanheads/astronomy-mcp-server What's in the sky, computed offline — planet and moon positions, rise/set, phases, eclipses, and seasons for any place and time via MCP. STDIO or Streamable HTTP. 7 Tools • 1 Resource • 1 Prompt • 1 Skill

Public Hosted Server: https://astronomy.caseyjhand.com/mcp


Overview

Observational astronomy for any place and time: sky positions, rise/set and twilight times, moon phases, and the next eclipse, equinox, opposition, or conjunction — or just ask what's visible right now. Computed locally by astronomy-engine, with optional JPL Horizons ephemerides and satellite passes.

Tools
ToolDescription
astronomy_get_sky_positionApparent position of one body or named star: RA/Dec, alt/az, ecliptic, magnitude, phase, Sun elongation, constellation
astronomy_get_rise_setRise, set, and transit times for a body, plus civil, nautical, and astronomical twilight for the Sun
astronomy_get_moon_phaseIlluminated fraction, phase name, synodic age, and the next four quarter phases
astronomy_find_eventsNext eclipses, equinoxes, solstices, moon quarters, oppositions, conjunctions, greatest elongations, or apsides
astronomy_list_visibleWhat's up now: naked-eye bodies (and optional bright stars) above the horizon, ranked, with a sky-condition gate
astronomy_get_ephemerisSmall-body or spacecraft ephemeris from JPL Horizons (opt-in)
astronomy_get_satellite_passesVisible satellite passes from a CelesTrak element set propagated with SGP4 (opt-in)
Resources
ResourceDescription
astronomy://body/{body}Reference card for a solar-system body: name, type, mean radius, naked-eye visibility

Tool-only clients get the same type, radius, and naked-eye fields inline from astronomy_get_sky_position.

Prompts
PromptDescription
astronomy_stargazing_planPlan a night of stargazing from a place, chaining the astronomy tools with geocoding and weather steps
Skills
SkillDescription
astronomy-guideChaining the tools for observing questions: anchoring dates to the observer's local night, what "visible" means per tool, Moon interference, eclipses from a place, and the opt-in Horizons and satellite tools

Plugin installs load it from skills/; MCP clients that support the Skills extension read it as skill://astronomy-guide/SKILL.md.

Design reference: docs/design.md.

Capability reference

astronomy_get_sky_position tool
  • body (sun, moon, mercury … pluto) or star is required, with star winning when both are set; star resolves against a bundled 32-star catalog by common name or Bayer designation (Sirius, α CMa), and a miss fails as star_not_found listing the catalog
  • Returns equatorial, refraction-corrected horizontal, and ecliptic coordinates plus magnitude, angular_diameter_arcsec, phase_angle_degrees, illuminated_fraction, sun_elongation_degrees, and constellation
  • Solar-system bodies also carry body_metadata, the resource card's type, mean_radius_km, and naked_eye; a star has none

astronomy_get_rise_set tool
  • One body searched forward from start (default now) for the next count cycles, default 1; 31 are served per call, and a count up to 366 returns the first 31 with a notice naming the start and count that continue the series
  • Each cycle carries rise_utc, set_utc, transit_utc, and transit_altitude_degrees; a circumpolar or never-rising body gets null rise/set and a note instead of an error
  • For body: "sun", twilight holds civil, nautical, and astronomical dusk/dawn pairs for the night after each cycle's day. When the first day begins after start, night_in_progress holds the preceding night, including polar nights without a sunset; the first cycle otherwise carries its own night. Each pair stays within that night, and times before start remain included

astronomy_get_moon_phase tool
  • Geocentric: takes only time (default now) and an optional timezone
  • Returns illuminated_fraction, phase_name, age_days, next_quarters, and phase_longitude_degrees (0 new, 180 full), which is not the phase_angle_degrees of astronomy_get_sky_position

astronomy_find_events tool
  • One event (solar_eclipse, lunar_eclipse, equinox, solstice, moon_quarter, opposition, conjunction, max_elongation, perigee_apogee) and the next count occurrences, default 1; 20 are served per call, and a count up to 200 returns the first 20 with a notice naming the start and count that continue the series; searches stop at the end of 2100
  • Body-relative events require body (body_required); a body the event doesn't apply to fails as body_not_supported, and conjunction with body2 takes the Moon or a planet different from body (invalid_body_pair otherwise) and reports separation_degrees
  • Eclipses take an optional observer (latitude and longitude together, else incomplete_observer) that adds local_visible and contact_altitudes_degrees
  • Eclipses are included when their peak is at or after start; their contacts may precede start

astronomy_list_visible tool
  • Observer coordinates and one evaluation instant, time (default now, not a window); min_altitude (default 0) and include_stars (default false) shape the list
  • Returns sky_condition (daylight, civil_twilight, nautical_twilight, astronomical_twilight, dark), sun_altitude_degrees, and bodies ranked brightest-and-highest first, each with a visibility_note that says when daylight, civil twilight, or Sun glare within 15° hides or dims it

astronomy_get_ephemeris tool
  • designation is passed to Horizons verbatim ("433;" for a numbered asteroid, "DES=1P;CAP" for a periodic comet, a negative SPK-ID for a spacecraft); start defaults to now, stop to 24 h later, and step to "1h" (a count plus m, h, d, mo, or y); latitude and longitude together add alt/az
  • Up to 200 rows per call; when truncated is true the notice names the start to resume from. target_name is the object Horizons resolved
  • Fails as ambiguous_designation, observer_is_target, body_not_found, invalid_step, invalid_elevation, time_out_of_range, or request_rejected, each naming the input to correct
  • Registered only when ASTRONOMY_ENABLE_HORIZONS=true

astronomy_get_satellite_passes tool
  • Exactly one of norad_id or name (ISS, Hubble/HST, and Tiangong/CSS resolve directly; other names are matched against CelesTrak, and an ambiguous one fails as ambiguous_satellite_name listing candidates); start must be within about a month of today, and days defaults to 7
  • 10 days are searched per call; a days up to 30 returns the first 10 with a notice naming the start and days that continue the search
  • Returns norad_id, satellite_name, and passes that are visible (sunlit, above 10° elevation, Sun below −6°), each with rise/peak/set times and azimuths, peak_altitude_degrees, duration_seconds, sunlit, and visible_start_utc/visible_end_utc
  • Registered only when ASTRONOMY_ENABLE_SATELLITES=true

astronomy://body/{body} resource
  • {body} is one of sun, moon, mercury … pluto, with name completion; anything else fails as unknown_body
  • application/json card with body, name, type (star/planet/moon/dwarf), mean_radius_km, and naked_eye

astronomy_stargazing_plan prompt
  • Arguments: location required; date (YYYY-MM-DD) optional, defaults to tonight
  • Returns one user message that chains astronomy_get_rise_set (sun, then moon), astronomy_get_moon_phase, and astronomy_list_visible with include_stars, plus the geocoding and weather steps this server doesn't cover

Features

Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.

Astronomy-specific:

  • Keyless, offline, deterministic core: the five core tools need no network, API key, or rate limit, and return the same answer for the same body, time, and observer
  • Times outside the engine's high-accuracy span (≈1900–2100) fail as time_out_of_range; the Horizons tool is bounded by each target's own data span instead
  • Times are ISO 8601 UTC, and a value with no zone is read as UTC; pass an IANA timezone (or set ASTRONOMY_DEFAULT_TIMEZONE) to get *_local fields alongside UTC. The server never infers a timezone from coordinates
  • No geocoding: resolve a place name to latitude/longitude and a timezone upstream, then pass the coordinates (elevation defaults to 0 m)
  • The two opt-in extensions each carry their own timeout and retry; an upstream failure surfaces as horizons_unavailable or celestrak_unavailable and never falls back to core output

Agent-friendly output:

  • Uncertainty preserved: magnitude, angular_diameter_arcsec, phase_angle_degrees, and illuminated_fraction are null where the engine can't compute them, rendered as "unavailable", never zeroed
  • Deterministic visibility notes: visibility_note comes from real magnitude, altitude, sky condition, and Sun elongation, not a synthetic score
  • Typed error contracts: each declared failure carries a typed reason and a recovery hint, so callers can correct and retry
  • Exact values behind rounded text: `f

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx