{
  "server": "latlong-map",
  "url": "https://geocp.latlong.ai/mcp/",
  "date": "2026-09-03",
  "protocolVersion": "2025-11-25",
  "serverInfo": {
    "name": "latlong-maps",
    "version": "1.0.0"
  },
  "listChangedDeclared": true,
  "toolCount": 6,
  "outputSchemaCoveragePct": 100,
  "tools": [
    {
      "description": "Return the server's capability matrix (supported map types, geo types, output formats, and classification methods).",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "get_capabilities",
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "auto_level_detection": {
            "type": "boolean"
          },
          "available_indices": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "classification_methods": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "default_output": {
            "type": "string"
          },
          "geo_detection": {
            "type": "boolean"
          },
          "geo_levels": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "index_modes": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "map_types": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "output_formats": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "png_supported": {
            "type": "boolean"
          },
          "stateless_only": {
            "type": "boolean"
          },
          "svg_default": {
            "type": "boolean"
          }
        },
        "required": [
          "map_types",
          "geo_levels",
          "output_formats",
          "default_output",
          "classification_methods",
          "available_indices",
          "index_modes",
          "geo_detection",
          "auto_level_detection",
          "svg_default",
          "png_supported",
          "stateless_only"
        ],
        "type": "object"
      }
    },
    {
      "description": "Get computed index scores for regions. Returns rankings + render_map_input payload.\n\nMODES:\n  - mode=\"rank\" (default): Top N regions ranked by index score\n  - mode=\"compare\": Compare specific regions head-to-head (pass regions=[\"A\",\"B\",\"C\"])\n  - mode=\"filter\": Show all districts within a state (pass state_filter=\"Maharashtra\")\n\nAVAILABLE INDICES: ev_adoption, vehicle_density, ev_per_capita, income_proxy, fuel_transition, pop_growth, credit_activity\n\nTIME FILTER: Pass \"year\" and/or \"month\" to get data for a specific period. When omitted, returns the all-time aggregate.\n\nRENDER FLAG: Set \"render\":true to get the SVG map inline without a separate render_map call.\n\nNEXT STEP: When render=false (default), call render_map with the returned render_map_input to generate the SVG map visualization.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "geo_level": {
            "type": "string"
          },
          "index_name": {
            "type": "string"
          },
          "mode": {
            "type": "string"
          },
          "month": {
            "type": "integer"
          },
          "regions": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "render": {
            "type": "boolean"
          },
          "state_filter": {
            "type": "string"
          },
          "top_n": {
            "type": "integer"
          },
          "year": {
            "type": "integer"
          }
        },
        "required": [
          "index_name"
        ],
        "type": "object"
      },
      "name": "get_index",
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "type": "integer"
          },
          "geo_level": {
            "type": "string"
          },
          "index_name": {
            "type": "string"
          },
          "methodology": {
            "type": "string"
          },
          "mode": {
            "type": "string"
          },
          "month": {
            "type": [
              "null",
              "integer"
            ]
          },
          "rankings": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "category": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "rank": {
                  "type": "integer"
                }
              },
              "required": [
                "name",
                "category",
                "rank"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "render_map_input": {
            "additionalProperties": false,
            "properties": {
              "data": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "geo_column": {
                "type": "string"
              },
              "geo_type": {
                "type": "string"
              },
              "map_type": {
                "type": "string"
              },
              "style": {
                "additionalProperties": false,
                "properties": {
                  "distribution": {
                    "type": "string"
                  },
                  "distribution_mode": {
                    "type": "string"
                  },
                  "legend_show": {
                    "type": "boolean"
                  },
                  "palette": {
                    "type": "string"
                  },
                  "show_labels": {
                    "type": "boolean"
                  },
                  "steps_count": {
                    "type": "integer"
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "title": {
                "type": "string"
              },
              "value_column": {
                "type": "string"
              }
            },
            "required": [
              "data",
              "map_type",
              "geo_type",
              "geo_column",
              "value_column"
            ],
            "type": "object"
          },
          "render_warnings": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "svg": {
            "type": "string"
          },
          "timing_ms": {
            "type": "integer"
          },
          "total_regions": {
            "type": "integer"
          },
          "year": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "required": [
          "index_name",
          "geo_level",
          "mode",
          "confidence",
          "rankings",
          "methodology",
          "total_regions",
          "render_map_input"
        ],
        "type": "object"
      }
    },
    {
      "description": "List supported India geographic region types (state, district, city, AC, PC, SCR, PINCODE) with coverage notes.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "list_geographies",
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "geographies": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "coverage_note": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "supported": {
                  "type": "boolean"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type",
                "supported",
                "name"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          }
        },
        "required": [
          "geographies"
        ],
        "type": "object"
      }
    },
    {
      "description": "List all available computed indices with descriptions and supported geographic levels.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "list_indices",
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "indices": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "description": {
                  "type": "string"
                },
                "geo_levels": {
                  "items": {
                    "type": "string"
                  },
                  "type": [
                    "null",
                    "array"
                  ]
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "description",
                "geo_levels"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          }
        },
        "required": [
          "indices"
        ],
        "type": "object"
      }
    },
    {
      "description": "Render a map from structured JSON data. Returns SVG markup by default with metadata (render_id, join_summary, unmatched_geos, warnings). Set output_format to 'png' for base64 PNG image, or 'both' for SVG + PNG.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "filters": {
            "additionalProperties": true,
            "type": "object"
          },
          "geo_column": {
            "type": "string"
          },
          "geo_type": {
            "type": "string"
          },
          "label_column": {
            "type": "string"
          },
          "legend": {
            "additionalProperties": true,
            "type": "object"
          },
          "map_type": {
            "type": "string"
          },
          "mid_aa_order": {
            "type": "integer"
          },
          "no_cache": {
            "type": "boolean"
          },
          "output_format": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "state_hint": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "style": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": {
            "type": "string"
          },
          "tooltip": {
            "type": "boolean"
          },
          "value_column": {
            "type": "string"
          },
          "viewport_mode": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "map_type",
          "geo_type",
          "geo_column",
          "value_column"
        ],
        "type": "object"
      },
      "name": "render_map",
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "detected_level": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "height": {
            "type": "integer"
          },
          "match_percentage": {
            "type": "integer"
          },
          "matched": {
            "type": "integer"
          },
          "mime_type": {
            "type": "string"
          },
          "preview_image_base64": {
            "type": "string"
          },
          "render_id": {
            "type": "string"
          },
          "render_warnings": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "svg": {
            "type": "string"
          },
          "timing_ms": {
            "type": "integer"
          },
          "title_used": {
            "type": "string"
          },
          "unmatched": {
            "type": "integer"
          },
          "width": {
            "type": "integer"
          }
        },
        "required": [
          "render_id",
          "title_used",
          "matched",
          "unmatched",
          "match_percentage",
          "detected_level",
          "render_warnings",
          "timing_ms",
          "format"
        ],
        "type": "object"
      }
    },
    {
      "description": "Validate whether a dataset can be rendered as a map. Runs geo matching and config resolution without generating an image. Returns valid/warnings/unmatched geos.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "data": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "filters": {
            "additionalProperties": true,
            "type": "object"
          },
          "geo_column": {
            "type": "string"
          },
          "geo_type": {
            "type": "string"
          },
          "label_column": {
            "type": "string"
          },
          "map_type": {
            "type": "string"
          },
          "mid_aa_order": {
            "type": "integer"
          },
          "query": {
            "type": "string"
          },
          "state_hint": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "style": {
            "additionalProperties": true,
            "type": "object"
          },
          "value_column": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "map_type",
          "geo_type",
          "geo_column",
          "value_column"
        ],
        "type": "object"
      },
      "name": "validate_map",
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "join_summary": {
            "additionalProperties": true,
            "type": "object"
          },
          "recommended_fixes": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "resolved_config": {
            "additionalProperties": true,
            "type": "object"
          },
          "unmatched_geos": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "input_value": {
                  "type": "string"
                },
                "possible_matches": {
                  "items": {
                    "type": "string"
                  },
                  "type": [
                    "null",
                    "array"
                  ]
                }
              },
              "required": [
                "input_value",
                "possible_matches"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "valid": {
            "type": "boolean"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          }
        },
        "required": [
          "valid",
          "resolved_config",
          "warnings",
          "join_summary",
          "unmatched_geos",
          "recommended_fixes"
        ],
        "type": "object"
      }
    }
  ]
}
