Skip to main content
Glama
getbirthchart-com

@getbirthchart/mcp

Official

@getbirthchart/mcp

Official MCP server 0.2.0 for GetBirthChart astrology calculations. It gives MCP-compatible AI clients access to structured calculations through the public GetBirthChart API; it does not contain or reimplement the astrology engine.

Requirements

  • Node.js 20 or newer

  • A GetBirthChart developer API key

Create a key at getbirthchart.com/developers. Keep it private and do not commit MCP host configuration containing the real key.

Related MCP server: auseklis

Quick start

The package runs over MCP stdio and can be launched with npx:

{
  "mcpServers": {
    "getbirthchart": {
      "command": "npx",
      "args": ["-y", "@getbirthchart/mcp@0.2.0"],
      "env": {
        "GETBIRTHCHART_API_KEY": "gbc_live_your_key_here"
      }
    }
  }
}

This is the standard command-based configuration for hosts that support MCP stdio servers. Use your client’s current documentation for the exact configuration file or UI location; this repository has been protocol-tested with the official MCP TypeScript client, not vendor-specific clients.

Environment variables

Variable

Required

Description

GETBIRTHCHART_API_KEY

Yes

Server-side developer API key.

GETBIRTHCHART_API_BASE_URL

No

HTTPS API base URL override for development/testing. HTTP is accepted only for localhost.

The key is read at startup, never accepted as a tool argument, and never written to stdout, logs, resources, or tool results.

Available tools

All tools are read-only and return structured calculation facts. Inputs use strict fields: date, optional time and place, required latitude, longitude, and timezone, plus optional unknown_time and calculation settings documented below.

Tool

Input

Output

Exact time required?

Unknown-time behavior

calculate_birth_chart

birthData

Mapped natal chart

No

Omits Ascendant and houses; preserves uncertainty.

get_planet_positions

birthData

Planet placements

No

Preserves chart uncertainty.

get_big_three

birthData

Sun, Moon, and optional Rising

No

Does not guess the Ascendant.

get_moon_sign

birthData

Moon sign and uncertainty

No

Returns ambiguity when the backend cannot establish one sign.

get_rising_sign

birthData

Rising sign

Yes

Returns birth_time_required.

calculate_aspects

birthData

Natal aspects

No

Returns backend-owned facts only.

calculate_synastry

person_a, person_b, relationship fields

Synastry aspects and summaries

Per person

Preserves each person's unknown-time limits.

The current public API does not geocode place; provide latitude, longitude, and an IANA timezone even when a place label is included. The MCP server never invents a birth time. The backend may use local midnight as the labeled calculation anchor for an unknown-time assessment, but it never presents that anchor as the person's birth time and never guesses houses, the Ascendant, or an ambiguous Moon sign.

Example input:

{
  "date": "1990-01-15",
  "time": "12:00",
  "place": "New York, NY",
  "latitude": 40.7128,
  "longitude": -74.006,
  "timezone": "America/New_York"
}

Unknown time:

{
  "date": "1990-01-15",
  "unknown_time": true,
  "latitude": 40.7128,
  "longitude": -74.006,
  "timezone": "America/New_York"
}

Calculation options

The natal tools accept the exposed core gbc-astro 1.13.0 options house_system, node_type, aspect_preset, custom_aspect_rules, additional_points, fold, zodiac, and ayanamsa. Omit them for the legacy-compatible defaults: Tropical, Placidus, True Node, Standard aspects, Chiron on, and Lilith off. Sidereal calculations require a named ayanamsa; Lahiri is the recommended product choice. Custom aspects require custom_aspect_rules and each rule uses type, exact_angle, and orb.

The implementation exposes the core's product-relevant house systems (placidus, whole_sign, equal) plus the registered engine systems, Mean Node, Standard/Extended/Custom natal aspects, Mean/True Lilith, Vertex and Part of Fortune requests, and named sidereal ayanamsas. The MCP contract does not add calculation logic or interpretation. Composite and Davison are core/SDK operations but are not MCP tools in this release.

Synastry accepts a relationship-level node_type so both charts use one node convention, plus optional relationship_type, topic, and target_instant. The server preserves response metadata and additive schema 1.x fields. A natal HTTP response may omit calculationHash; that is valid and is never required. The server preserves a returned v2: calculation hash without changing or truncating it. Core compatibility is natal schema 1.9.0 and synastry schema 1.5.0.

Resources

  • getbirthchart://methodology — calculation conventions and unknown-time boundaries.

  • getbirthchart://data-sources — ephemeris, timezone, and location-input provenance.

  • getbirthchart://engine-info — provider and public API metadata.

Authoritative web references: Methodology and Data Sources.

Errors

Tool failures use structured error data with a safe machine-readable code, message, retryable, and optional retry_after. Common codes include validation_error, authentication_required, birth_time_required, location_not_found, ambiguous_location, rate_limit_exceeded, timeout, and internal_error.

Troubleshooting

  • Missing API key: set GETBIRTHCHART_API_KEY in the MCP host's server environment; it is never a tool argument.

  • Authentication or rate-limit errors: use the structured error code and retry_after when present. Do not put the key in a tool call or client log.

  • Unknown-time validation: omit time when unknown_time is true; the server will not substitute noon or invent a Rising sign.

  • Location validation: include numeric WGS84 latitude, longitude, and an IANA timezone; place is only a label and is not geocoded here.

  • Local development: use GETBIRTHCHART_API_BASE_URL only with HTTPS, or HTTP on localhost. Never send a production key to an untrusted host.

Privacy and security

Birth data is passed only to the configured public API for the requested calculation. This package does not persist, cache, or log birth inputs, and it has no analytics or telemetry. The optional base URL override changes the trust boundary; do not send a production key to an untrusted host.

Report security issues privately through the process in SECURITY.md. Do not include API keys in bug reports.

Development

npm install
npm run lint
npm run typecheck
npm test
npm run build

Tests use mocked clients and do not call the production API. To run the built server locally, set GETBIRTHCHART_API_KEY and execute node dist/cli.js; normal protocol traffic stays on stdout, while startup failures are written to stderr.

MCP Registry metadata

Registry metadata is prepared in server.json with server name io.github.getbirthchart-com/getbirthchart-mcp. Publish the npm package first, then authenticate with the official mcp-publisher tool and publish the metadata. Registry submission is intentionally not part of the package build or CI workflow.

Available Tools

7 tools
calculate_aspectsA
Read-onlyIdempotent

Calculate structured natal aspects between chart bodies using GetBirthChart's calculation methodology. Returns factual aspect data without interpretation.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesLocal civil birth date in YYYY-MM-DD format.
timeNoLocal clock time in HH:mm or HH:mm:ss format.
placeNoOptional caller-side place label; it is not geocoded.
latitudeYes
timezoneYesIANA timezone identifier, such as America/New_York.
longitudeYes
unknown_timeNoSet true when no reliable birth time is available.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With annotations already marking the tool readOnly, idempotent, and non-destructive, the description adds valuable behavioral context: results are factual and uninterpreted, and calculations follow GetBirthChart's methodology. It does not contradict annotations, though it leaves edge cases like unknown_time behavior to the schema.

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?

Two concise sentences, with the action and resource front-loaded. The second sentence only adds the important no-interpretation boundary. No filler, no repetition of schema content.

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?

The description plus annotations and output schema cover the core contract for a read-only calculation tool. What is missing is explicit routing to sibling tools and clarification of how unknown_time affects aspect output; the schema hints at it but the description does not tie the calculation methodology to that input.

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

Parameters2/5

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

The description offers no parameter-level guidance. Schema descriptions cover date, time, place, timezone, and unknown_time, but latitude and longitude are undocumented, and the description does not compensate for that gap or clarify the role of each input in aspect calculation.

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 identifies a specific verb ('Calculate'), a precise resource ('structured natal aspects between chart bodies'), and an output boundary ('Returns factual aspect data without interpretation'). This distinguishes it from sibling tools such as get_big_three or calculate_synastry without needing to open their schemas.

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 use case is clearly implied: use it when you need calculated natal aspects. However, the description does not explicitly say when not to use it or direct the agent to a sibling such as calculate_birth_chart for a full chart, so routing between tools is left to inference.

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

calculate_birth_chartA
Read-onlyIdempotent

Calculate structured natal chart data from birth information. When birth time is unknown, preserve that uncertainty and omit time-dependent results such as the Ascendant and houses rather than assuming a default time.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesLocal civil birth date in YYYY-MM-DD format.
timeNoLocal clock time in HH:mm or HH:mm:ss format.
placeNoOptional caller-side place label; it is not geocoded.
latitudeYes
timezoneYesIANA timezone identifier, such as America/New_York.
longitudeYes
unknown_timeNoSet true when no reliable birth time is available.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond those hints: it explicitly discloses that no default time is assumed and that Ascendant/house calculations are omitted when birth time is missing.

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?

Two sentences with no filler; the primary purpose is stated first, and the critical uncertainty-handling behavior is placed second. Every sentence earns its place and the structure is easy to parse quickly.

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

Completeness4/5

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

Given the output schema and annotations, the description covers the essential call-time behavior and purpose. It could be more complete by explicitly routing to sibling tools for partial results, but nothing critical for invoking the tool correctly is missing.

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?

The schema already describes most parameters. The description adds semantic value by explaining the behavioral consequence of missing birth time, which directly clarifies the purpose of `unknown_time` and `time`. Latitude/longitude and timezone are left to the schema, but their names and ranges are self-explanatory.

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 a specific action (calculate) and resource (structured natal chart data) from birth information. It does not explicitly distinguish itself from sibling tools like get_planet_positions or get_big_three, but the phrase 'structured natal chart data' conveys a comprehensive scope.

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 gives clear conditional guidance for a common edge case: when birth time is unknown, preserve uncertainty and omit time-dependent results rather than assuming a default. It does not name alternative tools or explicitly say when not to use this tool, but the context provided is actionable.

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

calculate_synastryA
Read-onlyIdempotent

Calculate structured synastry relationships between two birth charts. Returns factual inter-chart data without compatibility scores or relationship conclusions.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_aYesFirst person's birth data.
person_bYesSecond person's birth data.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the bar is lower. The description adds useful expectations by stating it returns 'factual inter-chart data without compatibilty scores or relationship conclusions,' which prevents the agent from expecting judgmental output.

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?

Two short sentences with no filler. The primary purpose is front-loaded, and the second sentence adds the important output caveat. Every word earns its place.

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

Completeness4/5

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

Given the rich input schema, output schema, and strong annotations, the description covers the essential purpose and behavioral boundary. It does not explicitly guide edge cases like unkown_time or sibling selection, but those are not critical for basic invocation.

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 provides 100% coverage with detailed descriptions for person_a and person_b and all nested fields. The description adds no new parameter-specific detail, but the schema already carrries that burden.

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 uses a specific verb ('Calculate') and resource ('structured synastry relationships between two birth charts'), making the tool's core purpose clear. It also states the output style ('factual inter-chart data') but does not explicitly name or differentiate from sibling tools like calculate_aspects.

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 phrase 'between two birth charts' implies the tool is for comparing two charts, but the description gives no explicit when-to-use versus alternatives or exclusions. Usage guidance is only implied, not stated.

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

get_big_threeA
Read-onlyIdempotent

Calculate the Sun, Moon, and Ascendant for a birth chart. If birth time is unknown, do not guess the Ascendant; return it as unavailable according to the GetBirthChart contract.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesLocal civil birth date in YYYY-MM-DD format.
timeNoLocal clock time in HH:mm or HH:mm:ss format.
placeNoOptional caller-side place label; it is not geocoded.
latitudeYes
timezoneYesIANA timezone identifier, such as America/New_York.
longitudeYes
unknown_timeNoSet true when no reliable birth time is available.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond that by specifying how the Ascendant should be handled when birth time is missing, which is a real edge case an agent needs to know.

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?

Two sentences, no filler. The primary purpose is front-loaded, and the edge-case instruction is concise. Every word serves a purpose.

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

Completeness4/5

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

Given the output schema exists and annotations cover the safety profile, the description is largely complete. It handles the key complication of missing birth time. The only slight gap is the vague reference to the 'GetBirthChart contract' and the lack of explicit sibling alternatives.

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?

Schema coverage is 71%, with latitude and longitude lacking descriptions. The description compensates meaningfully by connecting birth time/unknown_time to the Ascendant behavior, which is not inferable from the schema alone. Other parameters are self-explanatory by name and schema descriptions.

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 states a specific action — 'Calculate the Sun, Moon, and Ascendant for a birth chart' — and clearly identifies the resource and scope. It is clear, though it does not explicitly contrast this tool with siblings like calculate_birth_chart or get_moon_sign, so differentiation is left to inference.

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 provides a meaningful usage rule: if birth time is unknown, do not guess the Ascendant and instead return it as unavailable. However, it does not say when to prefer this tool over alternatives such as calculate_birth_chart, so sibling routing is only implied.

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

get_moon_signA
Read-onlyIdempotent

Calculate the Moon sign while preserving uncertainty when the Moon may have changed zodiac signs during a date with unknown birth time.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesLocal civil birth date in YYYY-MM-DD format.
timeNoLocal clock time in HH:mm or HH:mm:ss format.
placeNoOptional caller-side place label; it is not geocoded.
latitudeYes
timezoneYesIANA timezone identifier, such as America/New_York.
longitudeYes
unknown_timeNoSet true when no reliable birth time is available.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable non-obvious behavior: it explicitly preserves uncertainty about which Moon sign applies when the Moon changed signs during a date with an unknown birth time. This is exactly the kind of behavioral context the structured fields do not provide.

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 entire description is one efficient sentence. It front-loads the primary action—'Calculate the Moon sign'—and then adds the important uncertainty caveat without wasting words.

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

Completeness4/5

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

Given the rich annotations and existing output schema, the description is nearly complete for safe invocation. The only meaningful gap is the lack of explicit guidance about when to choose this over sibling tools, and the latitude/longitude semantics are left to the schema's bare numeric constraints. Overall, an agent has enough to call the tool correctly.

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 71%, which is moderate. The description's mention of 'unknown birth time' maps meaningfully to the unknown_time parameter and clarifies its purpose. However, it does not compensate for the bare latitude and longitude parameters, which still lack schema descriptions and are not explained in the description.

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 uses a specific verb and resource: 'Calculate the Moon sign'. It also adds a distinguishing behavioral nuance—uncertainty preservation when the Moon may have changed signs—which separates it from general horoscope tools like calculate_birth_chart or get_big_three.

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 when to use this tool: when the Moon sign is needed, especially with an unknown birth time. However, it does not explicitly name alternatives or state when not to use it, even though sibling tools like get_big_three and calculate_birth_chart overlap in domain. The usage context is present but not made explicit.

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

get_planet_positionsC
Read-onlyIdempotent

Calculate planetary positions for a birth date and optional exact birth time and location. Returns structured placements supported by GetBirthChart.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesLocal civil birth date in YYYY-MM-DD format.
timeNoLocal clock time in HH:mm or HH:mm:ss format.
placeNoOptional caller-side place label; it is not geocoded.
latitudeYes
timezoneYesIANA timezone identifier, such as America/New_York.
longitudeYes
unknown_timeNoSet true when no reliable birth time is available.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the tool returns structured placements, which is useful, but it does not disclose edge behavior such as how unknown_time affects calculations or whether the output is stable across repeated calls. The description is not contradictory and provides modest value beyond the annotations.

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 a single compact sentence that communicates the core action and output without verbose filler. It is front-loaded with the main purpose. The phrase 'optional exact birth time and location' introduces ambiguity, which slightly reduces the otherwise strong efficiency.

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 seven parameters, required fields, and six sibling tools, this description is too sparse to fully orient an agent. It does not explain when to use this tool instead of calculate_birth_chart or get_big_three, nor does it clarify key invocation details like unknown_time, timezone requirements, or required latitude/longitude. The output schema helps with return values, but the description alone is incomplete for safe selection and invocation.

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

Parameters2/5

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

The schema covers 71% of parameters, and the description adds only a general reference to 'birth date and optional exact birth time and location.' This is misleading because latitude, longitude, and timezone are required by the schema, so calling location optional conflicts with the schema. The description does not clarify unknown_time, timezone handling, or the role of latitude/longitude, leaving important required parameters underspecified.

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 identifies a specific verb ('Calculate'), a resource ('planetary positions'), and the required input ('birth date'). It also states that the output is 'structured placements supported by GetBirthChart', which adds intent. However, it does not explicitly differentiate itself from calculate_birth_chart or the other sign-specific sibling tools, so it stops short of full clarity.

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 gives no guidance on when to choose this tool over siblings like calculate_birth_chart, get_big_three, or get_rising_sign. It does not state exclusions, prerequisites, or mention that this tool is for raw placements rather than a full chart interpretation. Usage context is entirely left to the agent to infer.

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

get_rising_signA
Read-onlyIdempotent

Calculate the Ascendant (Rising sign) from birth date, exact birth time, and location. An exact birth time is required; never infer or guess a Rising sign.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesLocal civil birth date in YYYY-MM-DD format.
timeNoLocal clock time in HH:mm or HH:mm:ss format.
placeNoOptional caller-side place label; it is not geocoded.
latitudeYes
timezoneYesIANA timezone identifier, such as America/New_York.
longitudeYes
unknown_timeNoSet true when no reliable birth time is available.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the operation as read-only and idempotent, lowering the bar. The description adds a meaningful behavioral guarantee by explicitly forbidding inference or guessing. It does not, however, explain what happens if time is omitted or unknown_time is true, which is a notable behavioral gap.

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?

Two short sentences with no filler. The core purpose is front-loaded, and the critical constraint is stated immediately after. Every sentence earns its place.

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?

The output schema and annotations cover return values and safety, but the description leaves an important ambiguity: the schema allows omitting time and setting unknown_time, while the description insists exact birth time is required. It is unclear whether the tool errors, returns null, or refuses when time is absent. This is a meaningful completeness gap for a 7-parameter tool.

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 71%, so most parameters are already documented in the schema. The description adds little parameter-level meaning: it maps 'birth date, exact birth time, and location' to the inputs but does not clarify the discrepancy between 'exact birth time required' and the schema's optional time plus unknown_time flag.

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 a specific verb ('Calculate') and a specific resource ('the Ascendant (Rising sign)'), with the required inputs. However, it does not distinguish itself from sibling tools like get_big_three, which may also provide the rising sign as part of a larger result.

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 gives a clear prerequisite: an exact birth time is required, and the tool must never be used to infer or guess a rising sign. This is a useful when-to-use/when-not-to-use signal, though it does not explicitly name alternatives or explain when to prefer a sibling tool.

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. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.1
    • First observedcalculate_aspects
    • First observedcalculate_birth_chart
    • First observedcalculate_synastry
    • First observedget_big_three
    • First observedget_moon_sign
    • First observedget_planet_positions
    • First observedget_rising_sign

TDQS

A3.7/5.0
Disambiguation3/5

The tools are generally clear but overlap exists: calculate_birth_chart likely subsumes get_planet_positions, get_big_three, get_moon_sign, get_rising_sign, and calculate_aspects. Descriptions help distinguish full-chart vs. granular lookups, but an agent could misselect when a broad chart request overlaps with a specific placement request.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case throughout. The get_ prefix is used for direct placement lookups and calculate_ for computed chart outputs, which is a predictable and recognizable convention.

Tool Count5/5

Seven tools is well-scoped for an astrology calculation API: a full chart, key placements, aspects, and synastry. Each tool serves a distinct calculation need and the count feels neither bloated nor thin.

Completeness4/5

The server covers the core birth-chart workflows: full chart, planetary positions, Sun/Moon/Rising, aspects, and synastry. Minor gaps exist such as no dedicated Sun-sign or house-position endpoint, but calculate_birth_chart covers those cases and avoids dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Multi-tradition astrology engine that computes real birth charts, transits, and synastry for AI agents via MCP tools.
    6
    -
  • A
    license
    A
    quality
    A
    maintenance
    Astrology MCP server that computes natal charts, transits, synastry, progressions, returns, eclipses, retrogrades, and moon phases from a real ephemeris, enabling AI agents to provide accurate astrological calculations without hallucination.
    12
    72
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    High-precision astrology tools for LLM agents, including natal charts, transits, progressions, synastry, and more, backed by Swiss Ephemeris.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Precision-audited astrology MCP for natal charts, transits, synastry and moon phases. No API key.
    10
    221
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/getbirthchart-com/getbirthchart-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server