Human Design MCP Server — first full-featured HD calculator for AI assistants. Provides tools to calculate Human Design charts, transits, and compatibility analysis.
Three tools with complete input schemas and detailed descriptions. Naming follows verb_noun pattern (calculate_chart, get_transits, compare_charts). Descriptions are comprehensive (200-400 chars) and explain WHAT, WHEN, and RETURN. However, output schemas are not formally documented, responses are JSON strings without declared field structures. Parameters lack enums for constrained values (e.g., birth_month should be 1-12 enum, not free integer). No error handling guidance or recovery paths. No tool annotations (readOnlyHint, idempotentHint). Composition is sound: each tool has one responsibility, and outputs contain IDs for chaining.
Calculate a complete Human Design rave chart (bodygraph). Provide EITHER birth_place (city name, auto-detects timezone including historical changes) OR utc_offset (explicit UTC offset in hours). If both are given, utc_offset takes priority. IMPORTANT: Historical timezone matters! For example, Kirov (Russia) was UTC+4 before 2014 and UTC+3 after. Using birth_place handles this automatically. If using utc_offset, verify the correct historical offset. Returns: Complete chart data: type, profile, authority, strategy, signature, not-self theme, defined/open centers, active channels, all gates with lines, incarnation cross, variables (4 arrows with color/tone/base), definition type (single/split/triple/quad).
Build a composite chart and analyze Human Design compatibility between two people. Shows: - Each person's type, profile, authority - Electromagnetic channels (strongest attraction — each person contributes one gate) - Dominance channels (one person defines the full channel) - Compromise channels (both people define the same channel) - Composite bodygraph type - Chemistry score Returns: Complete compatibility analysis with channel breakdown and composite type.
Calculate Human Design transits (current planetary field). If birth data is provided, shows which channels are temporarily activated by the transit field overlaying the natal chart. If no transit date is given, uses the current moment (UTC). If no birth data is given, returns only transit positions. Returns: Transit planetary positions (gate/line for each planet), and if birth data given: temporarily activated channels and centers.
Output schemas not formally documented. Tools return JSON strings without declared field structures (type, profile, authority, channels, etc.). LLMs cannot plan downstream operations or extract specific fields without parsing unstructured text.
Parameters lack enum constraints. birth_month accepts any integer (0-59 valid per schema) instead of enum 1-12. birth_hour accepts 0-59 instead of 0-23. LLMs can pass invalid values; no validation guidance in descriptions.
No error handling or recovery guidance. If birth_place is invalid or timezone resolution fails, no error message tells the LLM what to do next (retry with utc_offset, check spelling, etc.).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
No tool annotations. Tools are read-only (no state modification) but lack readOnlyHint annotation. This prevents agents from understanding retry safety and idempotency guarantees.
compare_charts requires 10 mandatory parameters (person1/person2 birth data) with no defaults. Simple comparisons force verbose calls. Consider optional defaults or a lookup-by-name variant.