Back to Docs

match_charts

core

Performs Ashtakoota (8-fold) compatibility matching between two natal charts. Returns per-koota scores, dosha assessments with cancellation logic, cross-chart graha overlaps, weighted composite score, and optional multi-school consensus. Supports inline ChartArtifact objects or cached session keys.

When to use

For Kundali Milan (marriage compatibility) analysis. Cast both charts with cast_chart first, then reference them by session_key here.

When NOT to use

For single-chart analysis (use cast_chart) or timing questions (use query_transits or query_muhurtha).

Input Schema

{
  "type": "object",
  "properties": {
    "chart_a": {
      "type": "object",
      "description": "First chart — either a session_key or an inline chart_artifact.",
      "properties": {
        "session_key": {
          "type": "string"
        },
        "chart_artifact": {
          "type": "object"
        }
      }
    },
    "chart_b": {
      "type": "object",
      "description": "Second chart — either a session_key or an inline chart_artifact.",
      "properties": {
        "session_key": {
          "type": "string"
        },
        "chart_artifact": {
          "type": "object"
        }
      }
    },
    "school_profile": {
      "type": "string",
      "enum": [
        "parashari",
        "jaimini",
        "kp"
      ],
      "default": "parashari"
    },
    "scoring_method": {
      "type": "string",
      "enum": [
        "ashtakoota",
        "dashakoota",
        "comprehensive"
      ],
      "default": "ashtakoota",
      "description": "ashtakoota: 8-factor score. comprehensive: adds cross-chart and multi-school consensus."
    }
  },
  "required": [
    "chart_a",
    "chart_b"
  ]
}

Output

A MatchingArtifact containing: ashtakoota (per-koota scores, total/36), doshas (mangal, nadi, bhakoot with cancellation), cross_chart comparison, composite_score (0.0–1.0), consensus (multi-school), and matching_confidence.

Example Request

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "match_charts",
    "arguments": {
      "chart_a": {
        "session_key": "matching_person_a"
      },
      "chart_b": {
        "session_key": "matching_person_b"
      },
      "school_profile": "parashari",
      "scoring_method": "ashtakoota"
    }
  }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "resource",
        "resource": {
          "uri": "kundalimcp://matching/def456",
          "mimeType": "application/json",
          "text": "{\"ashtakoota\":{\"total\":28,\"max\":36},\"doshas\":{\"nadi\":{\"present_in_a\":false,\"present_in_b\":false,\"cancelled\":false}},\"composite_score\":{\"score\":0.78}}"
        }
      }
    ]
  }
}