{"auth":{"required":false},"capabilities":{"prompts":true,"tools":true},"endpoints":{"mcp":"http://c2mv-letxipu-osm-mcp.hf.space/mcp"},"protocol":"MCP","protocolVersion":"2025-03-26","service":"mcp-server","toolCount":25,"toolNames":["get_map_image","get_version","bbox_from_points","polyline_encode","route_fetch","geo_distance","explore_area","centroid_points","polyline_decode","geocode_address","find_nearby_places","find_charging_stations","filter_tags","enrich_emissions","reverse_geocode","sort_by_distance","suggest_meeting_point","analyze_neighborhood","osm_query_bbox","route_sample","analyze_commute","tile_cache","find_parking_facilities","find_schools_nearby","get_route_directions"],"tools":[{"description":"Retrieve and display an OpenStreetMap image for analysis","inputSchema":{"type":"object","properties":{"latitude":{"description":"The latitude coordinate","type":"number"},"longitude":{"description":"The longitude coordinate","type":"number"},"zoom":{"default":14,"description":"Zoom level (1-19, higher values show more detail)","type":"number"}},"required":["latitude","longitude"]},"name":"get_map_image"},{"description":"Get the version and build information of the OSM MCP service","inputSchema":{"type":"object"},"name":"get_version"},{"description":"Create a bounding box that encompasses all given geographic coordinates","inputSchema":{"type":"object","properties":{"points":{"description":"Array of latitude/longitude points to include in the bounding box","type":"array"}},"required":["points"]},"name":"bbox_from_points"},{"description":"Encode a series of geographic coordinates into a polyline string","inputSchema":{"type":"object","properties":{"points":{"description":"Array of latitude/longitude points to encode","type":"array"}},"required":["points"]},"name":"polyline_encode"},{"description":"Fetch a route between two points using OSRM routing service","inputSchema":{"type":"object","properties":{"end":{"description":"The ending point as {latitude, longitude}","properties":{},"type":"object"},"mode":{"default":"car","description":"Travel mode (car, bike, foot)","type":"string"},"start":{"description":"The starting point as {latitude, longitude}","properties":{},"type":"object"}},"required":["start","end"]},"name":"route_fetch"},{"description":"Calculate the distance between two geographic coordinates using the Haversine formula","inputSchema":{"type":"object","properties":{"from":{"description":"The starting point as {latitude, longitude}","properties":{},"type":"object"},"to":{"description":"The ending point as {latitude, longitude}","properties":{},"type":"object"}},"required":["from","to"]},"name":"geo_distance"},{"description":"Explore and describe an area based on its coordinates","inputSchema":{"type":"object","properties":{"latitude":{"description":"The latitude coordinate of the area's center point","type":"number"},"longitude":{"description":"The longitude coordinate of the area's center point","type":"number"},"radius":{"description":"Search radius in meters (max 5000)","type":"number"}},"required":["latitude","longitude","radius"]},"name":"explore_area"},{"description":"Calculate the geographic centroid (mean center) of a set of coordinates","inputSchema":{"type":"object","properties":{"points":{"description":"Array of latitude/longitude points to calculate centroid from","type":"array"}},"required":["points"]},"name":"centroid_points"},{"description":"Decode an encoded polyline string into a series of geographic coordinates","inputSchema":{"type":"object","properties":{"polyline":{"description":"The encoded polyline string to decode","type":"string"}},"required":["polyline"]},"name":"polyline_decode"},{"description":"Convert an address, place name, or military coordinates to geographic coordinates.\n\nAutomatically detects and converts:\n- MGRS (Military Grid Reference System): e.g., \"54SVK2747201448\", \"18SUJ23370651\"\n- UTM (Universal Transverse Mercator): e.g., \"47N 485986 2197460\"\n- DMS (Degrees Minutes Seconds): e.g., \"19°51'22\"N 99°48'59\"E\"\n- Place names and street addresses\n\nFor MGRS/UTM/DMS coordinates, returns precise lat/lon directly without external lookup.\nEssential for tactical/military coordinate handling.","inputSchema":{"type":"object","properties":{"address":{"description":"The address, place name, or coordinate to geocode. Accepts MGRS (e.g., '54SVK2747201448'), UTM (e.g., '47N 485986 2197460'), DMS, or place names. For addresses, include city/country for best results.","type":"string"},"region":{"default":"","description":"Optional region context to improve results for ambiguous queries (e.g., 'Singapore'). Will be automatically appended to short queries.","type":"string"}},"required":["address"]},"name":"geocode_address"},{"description":"Find points of interest near a specific location","inputSchema":{"type":"object","properties":{"category":{"default":"","description":"Optional category filter (e.g., restaurant, hotel, park)","type":"string"},"latitude":{"description":"The latitude coordinate of the center point","type":"number"},"limit":{"default":10,"description":"Maximum number of results to return","type":"number"},"longitude":{"description":"The longitude coordinate of the center point","type":"number"},"radius":{"default":1000,"description":"Search radius in meters (max 50000)","type":"number"}},"required":["latitude","longitude"]},"name":"find_nearby_places"},{"description":"Find electric vehicle charging stations near a specific location","inputSchema":{"type":"object","properties":{"latitude":{"description":"The latitude coordinate of the center point","type":"number"},"limit":{"default":10,"description":"Maximum number of results to return","type":"number"},"longitude":{"description":"The longitude coordinate of the center point","type":"number"},"radius":{"default":5000,"description":"Search radius in meters (max 10000)","type":"number"}},"required":["latitude","longitude"]},"name":"find_charging_stations"},{"description":"Filter OSM elements by specified tags","inputSchema":{"type":"object","properties":{"elements":{"description":"Array of OSM elements to filter","type":"array"},"tags":{"description":"Tags to filter by, with key-value pairs where values are an array of acceptable values","properties":{},"type":"object"}},"required":["elements","tags"]},"name":"filter_tags"},{"description":"Enrich route options with CO2 emissions, calorie burn, and cost estimates","inputSchema":{"type":"object","properties":{"options":{"description":"Array of route options with mode and distance (and optional duration)","type":"array"}},"required":["options"]},"name":"enrich_emissions"},{"description":"Convert geographic coordinates to a human-readable address","inputSchema":{"type":"object","properties":{"latitude":{"description":"The latitude coordinate as a decimal between -90 and 90","type":"number"},"longitude":{"description":"The longitude coordinate as a decimal between -180 and 180","type":"number"}},"required":["latitude","longitude"]},"name":"reverse_geocode"},{"description":"Sort OSM elements by distance from a reference point","inputSchema":{"type":"object","properties":{"elements":{"description":"Array of OSM elements to sort","type":"array"},"ref":{"description":"Reference point to measure distances from","properties":{},"type":"object"}},"required":["elements","ref"]},"name":"sort_by_distance"},{"description":"Suggest optimal meeting points for multiple participants","inputSchema":{"type":"object","properties":{"category":{"default":"restaurant","description":"Type of meeting point to suggest (restaurant, cafe, etc.)","type":"string"},"limit":{"default":5,"description":"Maximum number of suggestions to return","type":"number"},"locations":{"description":"Array of participant locations","type":"array"}},"required":["locations"]},"name":"suggest_meeting_point"},{"description":"Evaluate neighborhood livability for real estate and relocation decisions","inputSchema":{"type":"object","properties":{"include_price_data":{"default":true,"description":"Whether to include pricing and real estate data in the analysis","type":"boolean"},"latitude":{"description":"The latitude coordinate of the neighborhood center","type":"number"},"longitude":{"description":"The longitude coordinate of the neighborhood center","type":"number"},"neighborhood_name":{"default":"","description":"Optional name of the neighborhood (if known)","type":"string"},"radius":{"default":1000,"description":"Search radius in meters (max 2000)","type":"number"}},"required":["latitude","longitude"]},"name":"analyze_neighborhood"},{"description":"Query OpenStreetMap data within a bounding box with tag filters. Requirements: (1) Use exact field names: minLat, minLon, maxLat, maxLon (case-sensitive), (2) Latitude range: -90 to 90, (3) Longitude range: -180 to 180, (4) minLat \u003c maxLat, (5) minLon \u003c maxLon. Example usage: bbox: {\"minLat\": 37.77, \"minLon\": -122.42, \"maxLat\": 37.78, \"maxLon\": -122.41}, tags: {\"amenity\": \"restaurant\", \"cuisine\": \"*\"}","inputSchema":{"type":"object","properties":{"bbox":{"description":"Bounding box object with required fields: minLat (number), minLon (number), maxLat (number), maxLon (number). Example: {\"minLat\": 37.77, \"minLon\": -122.42, \"maxLat\": 37.78, \"maxLon\": -122.41}","properties":{},"type":"object"},"tags":{"description":"Tags to filter by as key-value string pairs. Use '*' as value to match any value for a key. Example: {\"amenity\": \"restaurant\", \"cuisine\": \"*\", \"name\": \"Pizza\"}. Common keys: amenity, shop, leisure, highway, building, name, cuisine, brand","properties":{},"type":"object"}},"required":["bbox","tags"]},"name":"osm_query_bbox"},{"description":"Sample points along a route at specified intervals","inputSchema":{"type":"object","properties":{"interval":{"description":"Sampling interval in meters (must be \u003e 0)","type":"number"},"polyline":{"description":"The encoded polyline string representing the route","type":"string"}},"required":["polyline","interval"]},"name":"route_sample"},{"description":"Analyze transportation options between home and work locations","inputSchema":{"type":"object","properties":{"home_latitude":{"description":"The latitude coordinate of the home location","type":"number"},"home_longitude":{"description":"The longitude coordinate of the home location","type":"number"},"transport_modes":{"default":["car","cycling","walking"],"description":"Transport modes to analyze (car, cycling, walking)","type":"array"},"work_latitude":{"description":"The latitude coordinate of the work location","type":"number"},"work_longitude":{"description":"The longitude coordinate of the work location","type":"number"}},"required":["home_latitude","home_longitude","work_latitude","work_longitude"]},"name":"analyze_commute"},{"description":"Manage and access cached map tiles","inputSchema":{"type":"object","properties":{"action":{"description":"Action to perform: 'list', 'get', 'stats'","type":"string"},"x":{"description":"Tile X coordinate (required for 'get' action)","type":"number"},"y":{"description":"Tile Y coordinate (required for 'get' action)","type":"number"},"zoom":{"description":"Tile zoom level (required for 'get' action)","type":"number"}},"required":["action"]},"name":"tile_cache"},{"description":"Find parking facilities near a specific location","inputSchema":{"type":"object","properties":{"include_private":{"default":false,"description":"Whether to include private parking facilities","type":"boolean"},"latitude":{"description":"The latitude coordinate of the center point","type":"number"},"limit":{"default":10,"description":"Maximum number of results to return (max 50)","type":"number"},"longitude":{"description":"The longitude coordinate of the center point","type":"number"},"radius":{"default":1000,"description":"Search radius in meters (max 5000)","type":"number"},"type":{"default":"","description":"Optional type filter (e.g., surface, underground, multi-storey)","type":"string"}},"required":["latitude","longitude"]},"name":"find_parking_facilities"},{"description":"Find educational institutions near a specific location","inputSchema":{"type":"object","properties":{"latitude":{"description":"The latitude coordinate of the center point","type":"number"},"limit":{"default":10,"description":"Maximum number of results to return","type":"number"},"longitude":{"description":"The longitude coordinate of the center point","type":"number"},"radius":{"default":2000,"description":"Search radius in meters (max 5000)","type":"number"},"school_type":{"default":"","description":"Optional school type filter (e.g., elementary, secondary, university, college)","type":"string"}},"required":["latitude","longitude"]},"name":"find_schools_nearby"},{"description":"Get directions for a route between two locations","inputSchema":{"type":"object","properties":{"end_lat":{"description":"The latitude of the destination","type":"number"},"end_lon":{"description":"The longitude of the destination","type":"number"},"mode":{"default":"car","description":"Transportation mode: car, bike, foot","type":"string"},"start_lat":{"description":"The latitude of the starting point","type":"number"},"start_lon":{"description":"The longitude of the starting point","type":"number"}},"required":["start_lat","start_lon","end_lat","end_lon"]},"name":"get_route_directions"}],"transport":"streamable-http"}
