Skip to main content
Glama
Rkm1999

Celestial Position MCP Server

by Rkm1999

셀레스티얼MCP

Claude AI를 위한 MCP(Model Context Protocol) 서버로, 천체 위치, 일출/일몰 시간 및 기타 천문 데이터를 계산하는 도구를 제공합니다.

개요

CelestialMCP는 mcp 프레임워크로 구축되었으며, 천문학 엔진 라이브러리를 활용하여 정확한 천문 계산을 제공합니다. 천체의 위치 결정, 일출 및 일몰 시간 계산, 그리고 별과 심우주 천체 목록에서 이용 가능한 천체 목록 생성을 위한 다양한 도구를 제공합니다.

특징

  • 천체 위치 계산 : 지구상의 지정된 위치에서 모든 천체의 고도 및 방위각 좌표를 가져옵니다.

  • 상승/진행 시간 계산 : 천체가 특정 위치에서 떠오르고, 이동하고, 진행하는 시점을 찾습니다.

  • 자세한 천체 정보 : 다음을 포함한 천체에 대한 포괄적인 정보를 얻으세요.

    • 거리(태양계 천체에 대한)

    • 위상 정보(달과 행성에 대한)

    • 다가오는 달의 위상(달의 경우)

  • 광범위한 객체 카탈로그 : 다음이 포함됩니다.

    • 태양계 천체(태양, 달, 행성)

    • HYG 데이터베이스에서 5,500개 이상의 별점 획득

    • NGC 카탈로그에 있는 14,000개 이상의 심우주 천체

도구

패키지에는 세 가지 주요 도구가 포함되어 있습니다.

  1. getCelestialPosition : 천체의 고도/방위각 좌표를 계산합니다.

  2. getCelestialDetails : 천체에 대한 자세한 정보를 제공합니다.

  3. listCelestialObjects : 범주별로 사용 가능한 천체 목록을 반환합니다.

Related MCP server: chuk-mcp-celestial

빠른 시작

지엑스피1

Claude Desktop과 함께 사용

지역 개발

Claude Desktop 구성 파일에 다음 구성을 추가하세요.

Windows : %APPDATA%/Claude/claude_desktop_config.json MacOS : ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "CelestialMCP": {
      "command": "node",
      "args":["/absolute/path/to/CelestialMCP/dist/index.js"]
    }
  }
}

카탈로그 데이터

이 프로젝트에는 천문학 카탈로그 데이터를 가져오는 스크립트가 포함되어 있습니다.

# Fetch star and deep sky object catalogs
npm run fetch-catalogs

이렇게 하면 HYG 별 데이터베이스와 NGC 심원천체 카탈로그가 data/ 디렉토리에 다운로드됩니다.

도구 사용

다음은 Claude와 함께 도구를 사용하는 몇 가지 예입니다.

객체 위치 가져오기

클로드에게 물어보세요: "밴쿠버에서 본 하늘에서 목성의 현재 위치는 어디인가요?"

객체 세부 정보 가져오기

클로드에게 물어보세요: "오늘 밴쿠버의 달은 언제 뜨고 언제 지는가요?"

사용 가능한 객체 나열

클로드에게 물어보세요: "내가 찾아볼 수 있는 별 목록을 보여주세요."

프로젝트 구조

CelestialMCP/
├── src/
│   ├── tools/            # MCP Tools
│   │   ├── CelestialPositionTool.ts
│   │   ├── CelestialDetailsTool.ts
│   │   └── ListCelestialObjectsTool.ts
│   ├── utils/
│   │   └── astronomy.ts  # Core astronomy calculations
│   ├── config.ts         # Observer configuration
│   └── index.ts          # Server entry point
├── scripts/
│   └── fetch-catalogs.js # Script to download star catalogs
├── data/                 # Catalog data files
│   ├── hygdata_v41.csv   # HYG star database
│   └── ngc.csv           # New General Catalogue
├── package.json
└── tsconfig.json

기본 구성

기본적으로 관찰자의 위치는 캐나다 밴쿠버로 설정되어 있습니다. src/config.ts 에서 이 설정을 변경할 수 있습니다.

export const OBSERVER_CONFIG = {
  latitude: 49.2827,    // Observer latitude
  longitude: -123.1207, // Observer longitude
  altitude: 30,         // Observer altitude in meters
  temperature: 15,      // Default temperature in Celsius
  pressure: 1013.25     // Default pressure in hPa
};

특허

MIT

감사의 말

  • 핵심 천문학 계산을 위한 천문학 엔진

  • MCP 서버 구현을 위한 mcp-framework

  • 별 데이터를 위한 HYG 데이터베이스

  • 심층 하늘 객체 데이터를 위한 OpenNGC

Available Tools

3 tools
getCelestialDetailsA

Retrieves detailed astronomical information for a specified celestial object (e.g., planet, star, Messier object, NGC/IC object). Information includes current equatorial and horizontal (altitude/azimuth) coordinates, visibility status (above/below horizon), rise/transit/set times, and, where applicable, distance, phase illumination, and upcoming moon phases. All calculations are performed for the pre-configured observer location and the current system time. The tool automatically resolves common names (e.g., 'Andromeda Galaxy' to 'M31') and handles various catalog identifiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectNameYesThe name or catalog identifier of the celestial object. Examples: 'Jupiter', 'Sirius', 'M31', 'NGC 7000', 'Crab Nebula'. The tool will attempt to resolve common names.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes key behaviors: automatic name resolution, pre-configured observer location and current time calculations, and the types of information returned. However, it doesn't mention potential limitations like accuracy constraints, failure modes for unresolvable names, or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the purpose and comprehensive information returned, the second explains behavioral aspects like automatic resolution and calculation settings. Every sentence adds essential information with zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description does a reasonable job covering the tool's purpose, behavior, and parameter context. However, it doesn't describe the format or structure of returned information, which would be important for an agent to process the results effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage for the single parameter, the baseline is 3. The description adds value by explaining the tool's automatic name resolution capability ('resolves common names') and providing broader context about what types of celestial objects are supported, which complements the schema's examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieves') and resource ('detailed astronomical information for a specified celestial object'), with specific examples of object types (planet, star, Messier object) and information returned (coordinates, visibility, times, distance, phases). It distinguishes from sibling tools by focusing on detailed information retrieval rather than pathfinding or listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: to get detailed astronomical information for a specific celestial object. It mentions automatic name resolution and pre-configured observer/time settings, but doesn't explicitly state when NOT to use it or name alternatives among sibling tools (e.g., use listCelestialObjects for browsing).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getStarHoppingPathC

Calculates a star hopping path from a bright start star to a target celestial object. Each hop is within the specified Field of View (FOV).

ParametersJSON Schema
NameRequiredDescriptionDefault
fovDegreesYesThe Field of View (FOV) of the user's equipment in degrees.
initialSearchRadiusDegreesYesThe angular radius around the target object to search for a suitable bright starting star. Default: 20.0 degrees.
maxHopMagnitudeYesThe maximum (dimmest) stellar magnitude for stars in the hopping path. Default: 8.0.
startStarMagnitudeThresholdYesThe maximum (dimmest) magnitude for a star to be a good, bright "starting star." Default: 3.5.
targetObjectNameYesThe name or catalog identifier of the celestial object to find (e.g., "M13", "Andromeda Galaxy", "Mars").

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the calculation process and FOV constraint, but lacks details on what the output looks like (e.g., path format, error handling), computational requirements, rate limits, or any side effects. For a tool with 5 parameters and no output schema, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the core purpose, and the second adds a key constraint. Every word earns its place, with no redundancy or fluff. It's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no annotations, no output schema), the description is incomplete. It explains what the tool does but not what it returns, how errors are handled, or practical considerations for use. Without annotations or output schema, users lack critical context about the tool's behavior and results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents all 5 parameters with clear descriptions and defaults. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain relationships between parameters (e.g., how FOV interacts with hop selection) or provide usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: calculating a star hopping path from a bright start star to a target celestial object, with hops constrained by Field of View. It specifies the verb ('calculates'), resource ('star hopping path'), and key constraint ('within the specified Field of View'). However, it doesn't explicitly differentiate from sibling tools like 'getCelestialDetails' or 'listCelestialObjects', which likely provide different astronomical data rather than navigation paths.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or other contexts where star hopping might be preferred over direct object lookup. Usage is implied (e.g., for astronomical navigation when equipment FOV is limited), but no explicit when/when-not scenarios or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listCelestialObjectsB

Lists available celestial objects that can be queried by other tools. Objects are grouped by category. You can request all objects, or filter by a specific category. This tool helps in discovering what objects are known to the system.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional. Filters the list by category. Valid categories are: 'planets' (for Solar System objects like Sun, Moon, and planets), 'stars', 'messier' (for Messier objects), 'ic' (for Index Catalogue objects), 'ngc' (for New General Catalogue objects), 'dso' (for all Deep Sky Objects, including Messier, IC, NGC, and others), or 'all' (to list objects from all available categories). If omitted, defaults to 'all'.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that objects are 'grouped by category' and can be filtered, but doesn't describe output format, pagination, rate limits, or error handling. For a tool with no annotations, this leaves significant gaps in understanding how the tool behaves beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences that efficiently convey purpose, functionality, and utility. It's front-loaded with the core action ('Lists available celestial objects') and avoids redundancy. However, the last sentence ('This tool helps in discovering...') could be considered slightly verbose, as it restates the purpose rather than adding new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 optional parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and filtering, but lacks details on output structure, error cases, or integration with siblings. Without annotations or output schema, more behavioral context would improve completeness for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, fully documenting the single optional parameter 'category' with valid values and default behavior. The description adds minimal value beyond the schema, only implying filtering capability without providing additional syntax or format details. This meets the baseline score when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Lists available celestial objects that can be queried by other tools' and 'Objects are grouped by category.' It specifies the verb (lists) and resource (celestial objects) with additional context about grouping. However, it doesn't explicitly differentiate from sibling tools like getCelestialDetails or getStarHoppingPath, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating 'This tool helps in discovering what objects are known to the system' and mentions filtering by category, suggesting it's for discovery purposes. However, it lacks explicit guidance on when to use this tool versus alternatives like getCelestialDetails (which likely provides detailed info) or getStarHoppingPath (which might involve navigation). No exclusions or clear alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedgetCelestialDetails
    • First observedgetStarHoppingPath
    • First observedlistCelestialObjects

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: getCelestialDetails retrieves detailed information for a specific object, getStarHoppingPath calculates navigation paths between objects, and listCelestialObjects provides a catalog for discovery. The descriptions clearly differentiate their functions, eliminating any ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in camelCase: getCelestialDetails, getStarHoppingPath, and listCelestialObjects. This uniformity makes the tools predictable and easy to understand, with no deviations in naming style.

Tool Count3/5

With only 3 tools, the server feels slightly thin for the celestial position domain, as it lacks operations like update or delete for observer settings or object data. However, the core functions (retrieve details, navigate, list objects) are covered, making it borderline but functional.

Completeness4/5

The tool set covers key aspects of celestial navigation: listing objects, getting details, and calculating paths. Minor gaps exist, such as no tools for configuring observer location or time, but agents can work around this by relying on pre-configured settings, and the core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Provides authoritative astronomical data including moon phases, solar eclipses, and sun/moon rise and set times using the US Navy API or offline Skyfield calculations. It enables users to query Earth's seasons and celestial events for any location and date.
    8
    1
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Accurate astronomical catalog data and observing session planner for LLM assistants. Stops hallucinated magnitudes, coordinates, and visibility.
    3
    76 npm
    3
    MIT