MCP Server

Hemelion Decision and Pattern Reflection

com.hemelion/decision-reflection
Productivity Public & reachable MCP 2025-11-25

What this MCP does

Maps non-regulated decisions and individual episodes through structured reflection methods and evidence tools.

hemelion_assess_decision_readiness
Assess decision readiness
Use this when a person has a non-regulated decision and wants to know whether to protect the downside, run a bounded test, or close the evidence window. Uses four 1–5 ratings and returns a transparent rule. Do not use for emergencies or professional legal, medical, or financial advice.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['impact', 'reversibility', 'uncertainty', 'delayCost'], 'properties': {'impact': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Consequence if the choice is wrong: 1 contained, 5 major.'}, 'delayCost': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Cost of waiting: 1 low, 5 high.'}, 'uncertainty': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Important unknowns: 1 few, 5 many.'}, 'reversibility': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Ease of reversing course: 1 hard, 5 easy.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['classification', 'title', 'explanation', 'nextMove', 'evidenceThreshold', 'limitation', 'provider', 'product', 'methodVersion', 'canonicalUrl', 'attribution', 'executionBoundary'], 'properties': {'title': {'type': 'string'}, 'product': {'type': 'string'}, 'nextMove': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Hemelion'}, 'limitation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'explanation': {'type': 'string'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'methodVersion': {'type': 'string'}, 'classification': {'enum': ['protect-the-downside', 'run-a-bounded-test', 'close-the-evidence-window'], 'type': 'string'}, 'evidenceThreshold': {'type': 'string'}, 'executionBoundary': {'type': 'string'}}, 'additionalProperties': False}
hemelion_choose_reflection_mode
Choose a reflection mode
Use this when someone wants to choose between Clarity decision mapping for a difficult decision and MindScan single-episode reflection for a response they suspect may recur. Returns a no-charge reflection mode, a clarifying question, or a safety boundary. Do not use for diagnosis, emergencies, or legal, medical, financial, hiring, or insurance decisions.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['need'], 'properties': {'need': {'enum': ['difficult_decision', 'recurring_pattern', 'unsure', 'regulated_or_emergency'], 'type': 'string', 'description': 'The kind of help the person is seeking; choose the safety option for regulated or urgent situations.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recommendation', 'reason', 'boundary', 'provider', 'product', 'methodVersion', 'canonicalUrl', 'attribution', 'executionBoundary'], 'properties': {'reason': {'type': 'string'}, 'product': {'type': 'string'}, 'boundary': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Hemelion'}, 'attribution': {'type': 'string'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'methodVersion': {'type': 'string'}, 'recommendation': {'enum': ['decision_mapping', 'pattern_reflection', 'clarify_first', 'outside_scope'], 'type': 'string'}, 'executionBoundary': {'type': 'string'}}, 'additionalProperties': False}
hemelion_create_scan_handoff
Continue with a private Hemelion scan
Use this only after the person has chosen Clarity, MindScan, or asked Hemelion to show both. Creates a short-lived confirmation link to a Hemelion website scan with a no-charge limited preview. Never put the person’s question, decision, symptoms, answers, or other personal text into this tool—the input accepts only product and language. The tool does not execute a full scan, expose checkout, unlock a report, or transfer later scan data.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mode'], 'properties': {'mode': {'enum': ['clarity', 'mindscan', 'choose'], 'type': 'string', 'description': 'Clarity for one decision, MindScan for one episode from a suspected recurring response, or choose to show both.'}, 'language': {'enum': ['en', 'de'], 'type': 'string', 'default': 'en', 'description': 'Language for the confirmation boundary; the full scans currently remain in English.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contractVersion', 'mode', 'language', 'handoffUrl', 'expiresAt', 'privacyBoundary', 'nextStep', 'provider', 'product', 'methodVersion', 'canonicalUrl', 'attribution', 'executionBoundary'], 'properties': {'mode': {'enum': ['clarity', 'mindscan', 'choose'], 'type': 'string'}, 'product': {'type': 'string'}, 'language': {'enum': ['en', 'de'], 'type': 'string'}, 'nextStep': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Hemelion'}, 'expiresAt': {'type': 'string', 'format': 'date-time'}, 'handoffUrl': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'methodVersion': {'type': 'string'}, 'contractVersion': {'type': 'string', 'const': '1.0.0'}, 'privacyBoundary': {'type': 'string'}, 'executionBoundary': {'type': 'string'}}, 'additionalProperties': False}
hemelion_get_method_and_evidence
Inspect Hemelion method and evidence
Use this when someone asks what Hemelion measures, how it differs from a generic AI chat, what it can and cannot claim, or whether its research is published. Returns the versioned public method and evidence links. Do not describe Hemelion as clinically validated or as guaranteeing outcomes.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'purpose', 'pipeline', 'safeguards', 'methodologyUrl', 'researchUrl', 'examplesUrl', 'evidenceGates', 'provider', 'product', 'methodVersion', 'canonicalUrl', 'attribution', 'executionBoundary'], 'properties': {'product': {'type': 'string'}, 'purpose': {'type': 'string'}, 'version': {'type': 'string'}, 'pipeline': {'type': 'array', 'items': {'type': 'string'}}, 'provider': {'type': 'string', 'const': 'Hemelion'}, 'safeguards': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'string'}, 'examplesUrl': {'type': 'string', 'format': 'uri'}, 'researchUrl': {'type': 'string', 'format': 'uri'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'evidenceGates': {'anyOf': [{'type': 'object', 'required': ['status', 'gates'], 'properties': {'gates': {'type': 'array', 'items': {'type': 'object', 'required': ['product', 'checkpointDays', 'n', 'threshold', 'published', 'claim', 'noClaimReason'], 'properties': {'n': {'type': 'number'}, 'claim': {'type': 'null'}, 'product': {'enum': ['clarity', 'mindscan'], 'type': 'string'}, 'published': {'type': 'boolean'}, 'threshold': {'type': 'number'}, 'noClaimReason': {'type': 'string'}, 'checkpointDays': {'type': 'number'}}, 'additionalProperties': False}}, 'status': {'type': 'string', 'const': 'available'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'reason'], 'properties': {'reason': {'type': 'string'}, 'status': {'type': 'string', 'const': 'unavailable'}}, 'additionalProperties': False}]}, 'methodVersion': {'type': 'string'}, 'methodologyUrl': {'type': 'string', 'format': 'uri'}, 'executionBoundary': {'type': 'string'}}, 'additionalProperties': False}
hemelion_map_clarity_decision
Map a decision with Clarity
Use this for one non-regulated personal or business decision with two or three options. Ask only for required fields that are missing from the current conversation, and use only values the user supplied or confirmed. Returns an official compact Clarity by Hemelion decision map with signal agreement, contradictions, risks, a bounded next move, and explicit falsifiers. Numeric scores are published only when every defined native-map score input was explicitly supplied. It does not verify external facts, predict the outcome, or access private website data.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subject_attestation', 'scope_category', 'decision', 'options', 'priorities', 'reversibility'], 'properties': {'agency': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How much direct control the user has over the outcome: 0 little, 100 high.'}, 'regret': {'enum': ['committed_too_soon', 'waited_too_long', 'both_equal', 'unclear'], 'type': 'string', 'description': 'The timing mistake the user is more concerned about.'}, 'options': {'type': 'array', 'items': {'type': 'string', 'maxLength': 180, 'minLength': 2}, 'maxItems': 3, 'minItems': 2, 'description': 'Two or three real options supplied or confirmed by the user.'}, 'deadline': {'enum': ['now', 'weeks', 'months', 'later'], 'type': 'string', 'description': 'When the user needs to decide.'}, 'decision': {'type': 'string', 'maxLength': 500, 'minLength': 2, 'description': 'One concrete decision stated in the userâ\x80\x99s own words. Do not infer private facts.'}, 'avoidance': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How much the user suspects delay is replacing decision progress: 0 none, 100 high.'}, 'exit_plan': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How prepared the userâ\x80\x99s exit is if the choice turns out wrong: 0 none, 100 ready.'}, 'priorities': {'type': 'array', 'items': {'enum': ['growth', 'stability', 'autonomy', 'income', 'impact', 'relationships', 'wellbeing', 'status'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': 'One to three priorities confirmed by the user.'}, 'safety_net': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How much financial or practical buffer absorbs a bad outcome: 0 none, 100 substantial.'}, 'constraints': {'type': 'array', 'items': {'enum': ['time', 'money', 'health', 'location', 'obligations', 'timing', 'skills', 'information', 'none'], 'type': 'string'}, 'maxItems': 4, 'description': 'Material constraints the user explicitly identified.'}, 'testability': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How easily the options can be compared in a bounded real-world test: 0 hard, 100 easy.'}, 'reversibility': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How easy the first commitment is to reverse: 0 means very hard, 100 means very easy.'}, 'risk_tolerance': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Current emotional tolerance for downside: 0 low, 100 high.'}, 'scope_category': {'enum': ['general_personal', 'general_business', 'emergency_safety', 'health_or_mental_health', 'legal', 'regulated_finance', 'high_impact_third_party'], 'type': 'string', 'description': 'Required safety classification. Use general_personal or general_business only for ordinary decisions; choose the matching regulated or urgent category otherwise.'}, 'values_clarity': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How clear the user is about what they actually want: 0 unclear, 100 clear.'}, 'emotional_state': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How settled the user feels right now: 0 highly stressed, 100 calm. Needed for the rule that flags a strong leaning formed under stress.'}, 'social_pressure': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How strongly other peopleâ\x80\x99s expectations affect the choice: 0 none, 100 high.'}, 'immediate_leaning': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'The userâ\x80\x99s immediate, unconsidered leaning toward their preferred option: 0 none, 100 strong. Ask for a first reaction, not a reasoned one.'}, 'identity_alignment': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How well the preferred option fits who the user wants to become: 0 poorly, 100 closely.'}, 'decision_confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How confident the user feels making this decision now: 0 not at all, 100 fully.'}, 'subject_attestation': {'type': 'boolean', 'const': True, 'description': 'Assert only if the person has confirmed they are 18 or older, this is their own non-emergency situation, and the result will not be used for diagnosis, regulated advice, or a high-impact decision about another person. Ask them if you have not. Do not assert this on assumption.'}, 'evidence_reliability': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'How representative and comparable the current evidence is: 0 weak, 100 strong.'}, 'past_similar_outcome': {'enum': ['never', 'yes_good', 'yes_bad', 'yes_mixed'], 'type': 'string', 'description': 'Whether the user has faced a similar decision before and how it turned out.'}, 'evidence_leader_index': {'$ref': '#/properties/current_preference_index', 'description': 'Which option currently has the strongest comparable real-world evidence, if any. Use a zero-based index that is less than options.length: only 0 or 1 with two options, and 0, 1, or 2 with three. Use null or omit when no option leads.'}, 'priority_leader_index': {'$ref': '#/properties/current_preference_index', 'description': 'Which option best fits the userâ\x80\x99s stated priorities, if any. Use a zero-based index that is less than options.length: only 0 or 1 with two options, and 0, 1, or 2 with three. Use null or omit when no option leads.'}, 'current_preference_index': {'anyOf': [{'type': 'integer', 'maximum': 2, 'minimum': 0}, {'type': 'null'}], 'description': 'Which option the user currently prefers, if any. Use a zero-based index that is less than options.length: only 0 or 1 with two options, and 0, 1, or 2 with three. Use null or omit when no option leads.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'scopeBoundary', 'workingDirection', 'signalAudit', 'scores', 'dataQuality', 'contradictions', 'topRisks', 'nextSteps', 'whatWouldChangeThis', 'evidenceBoundary', 'costBoundary', 'provider', 'product', 'methodVersion', 'canonicalUrl', 'attribution', 'executionBoundary'], 'properties': {'scores': {'anyOf': [{'type': 'object', 'required': ['clarity', 'conflict', 'risk', 'agencyFriction'], 'properties': {'risk': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'clarity': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'conflict': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'agencyFriction': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'enum': ['completed', 'outside_scope'], 'type': 'string'}, 'product': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Hemelion'}, 'topRisks': {'type': 'array', 'items': {'type': 'object', 'required': ['risk', 'mitigation'], 'properties': {'risk': {'type': 'string'}, 'mitigation': {'type': 'string'}}, 'additionalProperties': False}}, 'nextSteps': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'string'}, 'dataQuality': {'anyOf': [{'type': 'object', 'required': ['coverage0to1', 'measuredInputs', 'missingInputs', 'interpretation'], 'properties': {'modelReach': {'type': 'object', 'required': ['riskWeightSupplied', 'agencyWeightSupplied', 'clarityPositiveTermsSupplied', 'contradictionRulesReachable', 'contradictionRulesTotal'], 'properties': {'riskWeightSupplied': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'agencyWeightSupplied': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'contradictionRulesTotal': {'type': 'integer', 'minimum': 0}, 'contradictionRulesReachable': {'type': 'integer', 'minimum': 0}, 'clarityPositiveTermsSupplied': {'type': 'boolean'}}, 'additionalProperties': False}, 'coverage0to1': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'missingInputs': {'type': 'array', 'items': {'type': 'string'}}, 'interpretation': {'type': 'string'}, 'measuredInputs': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, {'type': 'null'}]}, 'signalAudit': {'anyOf': [{'type': 'object', 'required': ['currentPreference', 'priorityLeader', 'evidenceLeader', 'agreement'], 'properties': {'agreement': {'enum': ['aligned', 'partly_aligned', 'mixed', 'insufficient'], 'type': 'string'}, 'evidenceLeader': {'type': ['string', 'null']}, 'priorityLeader': {'type': ['string', 'null']}, 'currentPreference': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'costBoundary': {'type': 'string'}, 'methodVersion': {'type': 'string'}, 'scopeBoundary': {'type': 'string'}, 'contradictions': {'type': 'array', 'items': {'type': 'string'}}, 'evidenceBoundary': {'type': 'string'}, 'workingDirection': {'type': ['string', 'null']}, 'executionBoundary': {'type': 'string'}, 'whatWouldChangeThis': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
hemelion_map_mindscan_episode
Map one episode with MindScan
Use this for non-clinical reflection on one concrete, low-risk episode. Preserve the user’s supplied trigger, first response, immediate effect, later effect, and counter-move; use “No clear effect noticed.” rather than inventing a missing effect. For the current 4.1.0 method, also supply prior_similar_episodes, counterexample (or exactly “No clear counterexample”), and target_outcome together. Omitting all three returns an explicitly versioned legacy 4.0.0 map. Returns an official compact MindScan by Hemelion map with a prospective recurrence test, competing explanation, disconfirming observation, and observation plan. Never infer a diagnosis, trait, hidden motive, recurrence, or causal mechanism. It cannot access private website data.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subject_attestation', 'trigger', 'first_response', 'immediate_effect', 'later_effect', 'counter_move'], 'properties': {'trigger': {'type': 'string', 'maxLength': 900, 'minLength': 2, 'description': 'One concrete situation supplied by the user, without an inferred diagnosis or hidden motive.'}, 'counter_move': {'type': 'string', 'maxLength': 900, 'minLength': 2, 'description': 'One safe, reversible alternative response designed by the user.'}, 'later_effect': {'type': 'string', 'maxLength': 900, 'minLength': 2, 'description': 'What the user noticed later. Use â\x80\x9cNo clear effect noticed.â\x80\x9d when unknown.'}, 'counterexample': {'type': 'string', 'maxLength': 400, 'minLength': 2, 'description': 'Optional current-method boundary evidence. Supply one comparable episode with a different response, or exactly â\x80\x9cNo clear counterexampleâ\x80\x9d; supply together with prior_similar_episodes and target_outcome.'}, 'first_response': {'type': 'string', 'maxLength': 900, 'minLength': 2, 'description': 'The first observable response the user reports.'}, 'target_outcome': {'type': 'string', 'maxLength': 400, 'minLength': 2, 'description': 'Optional current-method comparison target for the counter-move. Supply together with prior_similar_episodes and counterexample.'}, 'immediate_effect': {'type': 'string', 'maxLength': 900, 'minLength': 2, 'description': 'What the user noticed immediately afterward. Use â\x80\x9cNo clear effect noticed.â\x80\x9d when unknown.'}, 'subject_attestation': {'type': 'boolean', 'const': True, 'description': 'Assert only if the person has confirmed they are 18 or older, this is their own non-emergency situation, and the result will not be used for diagnosis, regulated advice, or a high-impact decision about another person. Ask them if you have not. Do not assert this on assumption.'}, 'prior_similar_episodes': {'enum': ['none', 'once', 'several', 'unsure'], 'type': 'string', 'description': 'Optional current-method recurrence history. Supply this together with counterexample and target_outcome. It is self-report, not proof of recurrence.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'methodVersion', 'scopeBoundary', 'patternLoop', 'recurrenceAudit', 'workingHypothesis', 'alternativeExplanation', 'disconfirmingObservation', 'highLeverageShift', 'observationPlan', 'evidenceBoundary', 'costBoundary', 'provider', 'product', 'canonicalUrl', 'attribution', 'executionBoundary'], 'properties': {'status': {'enum': ['completed', 'outside_scope'], 'type': 'string'}, 'product': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Hemelion'}, 'attribution': {'type': 'string'}, 'patternLoop': {'anyOf': [{'type': 'object', 'required': ['trigger', 'firstResponse', 'immediateEffect', 'laterEffect', 'counterMove'], 'properties': {'trigger': {'type': 'string'}, 'counterMove': {'type': 'string'}, 'laterEffect': {'type': 'string'}, 'firstResponse': {'type': 'string'}, 'immediateEffect': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'costBoundary': {'type': 'string'}, 'methodVersion': {'type': 'string'}, 'scopeBoundary': {'type': 'string'}, 'observationPlan': {'type': 'array', 'items': {'type': 'object', 'required': ['day', 'action', 'focus'], 'properties': {'day': {'type': 'integer', 'exclusiveMinimum': 0}, 'focus': {'type': 'string'}, 'action': {'type': 'string'}}, 'additionalProperties': False}}, 'recurrenceAudit': {'anyOf': [{'type': 'object', 'required': ['priorSimilarEpisodes', 'priorSimilarEpisodesLabel', 'counterexampleAvailable', 'counterexample', 'targetOutcome'], 'properties': {'targetOutcome': {'type': 'string'}, 'counterexample': {'type': 'string'}, 'priorSimilarEpisodes': {'enum': ['none', 'once', 'several', 'unsure'], 'type': 'string'}, 'counterexampleAvailable': {'type': 'boolean'}, 'priorSimilarEpisodesLabel': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'evidenceBoundary': {'type': 'string'}, 'executionBoundary': {'type': 'string'}, 'highLeverageShift': {'type': ['string', 'null']}, 'workingHypothesis': {'type': ['string', 'null']}, 'alternativeExplanation': {'type': ['string', 'null']}, 'disconfirmingObservation': {'type': ['string', 'null']}}, 'additionalProperties': False}
Added
hemelion_get_method_and_evidence
Sept. 17, 2026, 12:35 p.m.
Added
hemelion_create_scan_handoff
Sept. 17, 2026, 12:35 p.m.
Added
hemelion_map_mindscan_episode
Sept. 17, 2026, 12:35 p.m.
Added
hemelion_map_clarity_decision
Sept. 17, 2026, 12:35 p.m.
Added
hemelion_assess_decision_readiness
Sept. 17, 2026, 12:35 p.m.
Added
hemelion_choose_reflection_mode
Sept. 17, 2026, 12:35 p.m.