{"tools":[{"name":"set_location","description":"Set the user's location by street address or coordinates. Returns the geocode (lat/lng) and juricode — a stack of jurisdiction IDs from federal down to municipal. Use the returned jurisdiction_ids to scope subsequent search queries.","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Street address to geocode (e.g., '300 Hemlock Ave, Vacaville, CA 95688')"},"latitude":{"maximum":90,"type":"number","description":"Latitude coordinate (use instead of address)","minimum":-90},"longitude":{"maximum":180,"type":"number","description":"Longitude coordinate (use instead of address)","minimum":-180}}}},{"name":"explore","description":"Search civic data with jurisdiction scoping and topic filtering. Pass jurisdiction_ids from set_location to scope results to relevant governments. Use focus to choose entity type and topic to narrow by subject area.","inputSchema":{"type":"object","required":["focus"],"properties":{"query":{"type":"string","description":"Free text search within the chosen focus (optional)"},"limit":{"default":10,"maximum":50,"type":"integer","description":"Maximum number of results","minimum":1},"topic":{"type":"string","enum":["housing","health","education","safety","permits","elections","taxes","benefits","employment","utilities","recreation","transportation"],"description":"Subject area filter (optional)"},"focus":{"type":"string","enum":["services","agencies","people","bodies","governance"],"description":"What type of entity to search"},"jurisdiction_ids":{"type":"array","description":"Jurisdiction IDs to scope results (from set_location). Omit to search all jurisdictions.","items":{"type":"integer"}}}}},{"name":"search_jurisdictions","description":"Search for jurisdictions by name or location. Returns basic information about matching jurisdictions including name, level (federal/state/county/municipal), and geographic details.","inputSchema":{"type":"object","required":["query"],"properties":{"offset":{"default":0,"type":"integer","description":"Number of results to skip (for pagination)","minimum":0},"level":{"type":"string","enum":["federal","state","county","municipal"],"description":"Filter by jurisdiction level (optional)"},"query":{"type":"string","description":"Search query (jurisdiction name or partial name)"},"limit":{"default":10,"maximum":100,"type":"integer","description":"Maximum number of results to return","minimum":1}}}},{"name":"get_jurisdiction_details","description":"Get detailed information about a specific jurisdiction by ID. Returns comprehensive data including agencies, services, geographic boundaries, demographics, and related jurisdictions.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"The unique identifier of the jurisdiction"}}}},{"name":"find_jurisdictions_at_point","description":"Find all jurisdictions that contain a specific latitude/longitude point. Useful for answering 'What jurisdictions am I in?' based on GPS coordinates.","inputSchema":{"type":"object","required":["latitude","longitude"],"properties":{"latitude":{"maximum":90,"type":"number","description":"Latitude coordinate","minimum":-90},"longitude":{"maximum":180,"type":"number","description":"Longitude coordinate","minimum":-180}}}},{"name":"get_pending_tasks","description":"Get prioritized sourcing tasks for a jurisdiction — specific things jurisdictional.org needs help with. Returns tasks like 'verify the water district phone number' or 'find the city council meeting schedule'. Use this to show users concrete ways they can contribute for their area. Tasks can be completed and submitted back using the submit_sourcing_result tool.","inputSchema":{"type":"object","required":["jurisdiction_id"],"properties":{"limit":{"default":5,"maximum":20,"type":"integer","description":"Maximum number of tasks to return","minimum":1},"jurisdiction_id":{"type":"integer","description":"ID of the jurisdiction to fetch tasks for"},"task_type":{"type":"string","enum":["discover_agencies","extract_agency_contacts","discover_bodies","extract_officials","extract_services","extract_meeting_schedule","verify_stale_data","resolve_url","extract_budget"],"description":"Filter by task type (optional)"}}}},{"name":"get_coverage","description":"Get entity coverage summary and contribution recommendations for a jurisdiction. Returns counts per entity layer (agencies, bodies, positions, people, services) and data quality metrics (missing contacts, empty descriptions). Use this to show users where the biggest gaps are and what to work on next.","inputSchema":{"type":"object","required":["jurisdiction_id"],"properties":{"jurisdiction_id":{"type":"integer","description":"ID of the jurisdiction to assess"}}}},{"name":"get_next_uncovered","description":"Returns the highest-priority jurisdiction with zero agencies — the best next target for a data gathering session. Prioritizes place-level (cities/towns) over counties, then other levels. Use this to answer 'what should I gather next?' for a state or overall.","inputSchema":{"type":"object","required":[],"properties":{"state":{"type":"string","description":"Two-letter state abbreviation to limit results (e.g. 'CA'). Omit for all states."},"level":{"type":"string","enum":["place","county","state_legislative_upper","state_legislative_lower","congressional_district","school_district_unified"],"description":"Jurisdiction level to filter by (optional). Defaults to place."},"limit":{"default":5,"maximum":20,"type":"integer","description":"How many uncovered jurisdictions to return","minimum":1}}}},{"name":"search_agencies","description":"Search for government agencies by name, description, or contact information. Can filter by agency type.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query to match against agency name, description, phone, or email"},"limit":{"default":10,"maximum":100,"type":"integer","description":"Maximum number of results to return","minimum":1},"jurisdiction_ids":{"type":"array","description":"Scope results to these jurisdiction IDs (from set_location)","items":{"type":"integer"}},"agency_type":{"type":"string","enum":["executive","legislative","judicial","independent","educational","public_safety"],"description":"Filter by agency type (e.g., 'executive', 'legislative', 'judicial', 'independent')"}}}},{"name":"get_agency_details","description":"Get comprehensive details for a specific government agency by ID, including all associated services and jurisdiction information.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"The unique identifier of the agency"}}}},{"name":"find_agencies_near_point","description":"Find all government agencies within a specified radius of geographic coordinates (latitude/longitude).","inputSchema":{"type":"object","required":["latitude","longitude"],"properties":{"latitude":{"type":"number","description":"Latitude coordinate (e.g., 37.7749 for San Francisco)"},"longitude":{"type":"number","description":"Longitude coordinate (e.g., -122.4194 for San Francisco)"},"radius_meters":{"default":5000,"maximum":100000,"type":"integer","description":"Search radius in meters (default 5000m = 5km)","minimum":100}}}},{"name":"search_services","description":"Search for public services by name, description, eligibility requirements, or contact information. Can filter by service type.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query to match against service name, description, eligibility, or contact info"},"limit":{"default":10,"maximum":100,"type":"integer","description":"Maximum number of results to return","minimum":1},"jurisdiction_ids":{"type":"array","description":"Scope results to these jurisdiction IDs (from set_location)","items":{"type":"integer"}},"service_type":{"type":"string","enum":["health","education","housing","transportation","employment","public_safety","utilities","recreation","social_services"],"description":"Filter by service type (e.g., 'health', 'education', 'housing', 'transportation')"}}}},{"name":"get_service_details","description":"Get comprehensive details for a specific public service by ID, including agency and jurisdiction information.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"The unique identifier of the service"}}}},{"name":"find_services_near_point","description":"Find all public services within a specified radius of geographic coordinates (latitude/longitude).","inputSchema":{"type":"object","required":["latitude","longitude"],"properties":{"latitude":{"type":"number","description":"Latitude coordinate (e.g., 37.7749 for San Francisco)"},"longitude":{"type":"number","description":"Longitude coordinate (e.g., -122.4194 for San Francisco)"},"radius_meters":{"default":10000,"maximum":100000,"type":"integer","description":"Search radius in meters (default 10000m = 10km)","minimum":100}}}},{"name":"search_people","description":"Search for public officials and government employees by name, position, or contact information. Can filter by political affiliation.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query to match against first name, last name, position, or email"},"limit":{"default":10,"maximum":100,"type":"integer","description":"Maximum number of results to return","minimum":1},"political_affiliation":{"type":"string","description":"Filter by political affiliation (e.g., 'Democratic', 'Republican', 'Independent')"}}}},{"name":"get_person_details","description":"Get comprehensive details for a specific public official by ID, including all positions held (current and historical tenures).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"The unique identifier of the person"}}}},{"name":"search_bodies","description":"Search for governing bodies (city councils, commissions, boards) by name or legislative type.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query to match against body name, source, or legislative type"},"limit":{"default":10,"maximum":100,"type":"integer","description":"Maximum number of results to return","minimum":1},"legislative_type":{"type":"string","description":"Filter by legislative type (e.g., 'council', 'commission', 'board', 'committee')"}}}},{"name":"get_body_details","description":"Get comprehensive details for a specific governing body by ID, including jurisdiction and agency associations.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"The unique identifier of the governing body"}}}}]}