{
    "version": "1.1.0",
    "tools": [
        {
            "name": "get_coverage",
            "description": "Read Arizona coverage, missing jurisdictions, snapshot age, and evidence limitations before using candidate data.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "state": {
                        "type": "string",
                        "enum": [
                            "AZ"
                        ],
                        "default": "AZ"
                    },
                    "election": {
                        "type": "string",
                        "enum": [
                            "2026-general"
                        ],
                        "default": "2026-general"
                    }
                },
                "required": [],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "coverage"
        },
        {
            "name": "search_candidates",
            "description": "Find public Arizona candidate records. Returns a partial research directory, not ballot eligibility.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "state": {
                        "type": "string",
                        "enum": [
                            "AZ"
                        ],
                        "default": "AZ"
                    },
                    "election": {
                        "type": "string",
                        "enum": [
                            "2026-general"
                        ],
                        "default": "2026-general"
                    },
                    "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100,
                        "default": 20
                    },
                    "offset": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000,
                        "default": 0
                    },
                    "q": {
                        "type": "string",
                        "description": "Name search",
                        "maxLength": 250
                    },
                    "office": {
                        "type": "string",
                        "description": "Exact office label from list_races",
                        "maxLength": 250
                    },
                    "district": {
                        "type": "string",
                        "description": "Exact district",
                        "maxLength": 250
                    }
                },
                "required": [],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "candidates"
        },
        {
            "name": "get_candidate",
            "description": "Read candidate facts and source references. Party baselines are not candidate statements.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Stable candidate ID",
                        "maxLength": 250
                    }
                },
                "required": [
                    "id"
                ],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "candidate"
        },
        {
            "name": "list_topics",
            "description": "Find topic IDs and neutral comparison statements.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100,
                        "default": 20
                    },
                    "offset": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000,
                        "default": 0
                    },
                    "q": {
                        "type": "string",
                        "description": "Topic name or statement search",
                        "maxLength": 250
                    }
                },
                "required": [],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "topics"
        },
        {
            "name": "list_races",
            "description": "List office/district groups represented in the partial Arizona directory.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100,
                        "default": 20
                    },
                    "offset": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000,
                        "default": 0
                    }
                },
                "required": [],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "races"
        },
        {
            "name": "compare_candidates",
            "description": "Compare source references for 2 to 4 selected candidates in the same race across equal topics. No rankings or inferred positions.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100,
                        "default": 20
                    },
                    "offset": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000,
                        "default": 0
                    },
                    "ids": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "maxLength": 60
                        },
                        "minItems": 2,
                        "maxItems": 4,
                        "uniqueItems": true
                    },
                    "topic": {
                        "type": "string",
                        "description": "Optional exact topic ID",
                        "maxLength": 250
                    }
                },
                "required": [
                    "ids"
                ],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "compare"
        },
        {
            "name": "get_evidence",
            "description": "Retrieve a source reference, its provenance and unknown review dates. A link alone does not substantiate a position.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Stable evidence ID",
                        "maxLength": 250
                    }
                },
                "required": [
                    "id"
                ],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "evidence"
        },
        {
            "name": "get_candidate_sources",
            "description": "Read reviewed candidate-source records and available cited biography and issue summaries. Profile narratives are unscored and separate from paginated sources. Preserve historical and provisional limits.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100,
                        "default": 20
                    },
                    "offset": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000,
                        "default": 0
                    },
                    "id": {
                        "type": "string",
                        "description": "Stable candidate ID",
                        "maxLength": 250
                    }
                },
                "required": [
                    "id"
                ],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "research"
        },
        {
            "name": "get_changes",
            "description": "Read recorded dataset observations after a cursor. Changes do not imply a changed political position.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100,
                        "default": 20
                    },
                    "offset": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000,
                        "default": 0
                    },
                    "since": {
                        "type": "string",
                        "pattern": "^[0-9]+$",
                        "maxLength": 20,
                        "default": "0"
                    }
                },
                "required": [],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "required": [
                    "schema_version",
                    "dataset_version",
                    "snapshot_at",
                    "coverage",
                    "data"
                ],
                "properties": {
                    "schema_version": {
                        "type": "string"
                    },
                    "dataset_version": {
                        "type": "string"
                    },
                    "snapshot_at": {
                        "type": "string"
                    },
                    "coverage": {
                        "type": "object"
                    },
                    "data": {
                        "type": "object"
                    },
                    "attribution": {
                        "type": "string"
                    }
                }
            },
            "annotations": {
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
            },
            "_resource": "changes"
        }
    ]
}
