{"id":770849,"recorded_at":"2026-10-28T11:35:20.679737Z","observed_at":"2026-10-28T11:35:20.679582Z","subject_kind":"endpoint","subject":"ca960bb6-bea0-4f78-b6e7-1d9fb28e7daf","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":18,"tools":[{"description":"Summarize WiFi near a static reference point and district-level libraries/culture.\n\n    district (all 39 Istanbul districts) is exclusive with place/coordinates;\n    district-only place names also return district address lists, without WiFi or\n    invented distances. Radius applies only to WiFi with a point. For Acıbadem,\n    specify 'Acıbadem, Kadıköy' or 'Acıbadem, Üsküdar'. Not full address geocoding.\n    ","inputSchema":{"properties":{"district":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"District"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lat"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lon"},"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Place"},"radius_m":{"default":1500,"title":"Radius M","type":"integer"}},"title":"istanbul_city_services_nearbyArguments","type":"object"},"name":"istanbul_city_services_nearby"},{"description":"Run a bounded SELECT over records from one allowlisted CKAN resource.\n\n    SQLite dialect: use table records and published column names. GROUP BY and\n    aggregates are supported; no writes, arbitrary functions or application DB.\n    A complete bounded capture is required, never partial counts. The server\n    enforces an outer result limit (default 20, max 100) even if SQL omits LIMIT.\n    Only resources configured in CKAN_SQL_ALLOWED_RESOURCE_IDS are available.\n    Local query syntax and bounds: https://github.com/Batu1-1an/istanbulmcp/blob/main/docs/datastore-sql.md\n    Source API: https://docs.ckan.org/en/latest/maintaining/datastore.html\n    ","inputSchema":{"properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"resource_id":{"title":"Resource Id","type":"string"},"sql":{"title":"Sql","type":"string"}},"required":["resource_id","sql"],"title":"istanbul_datastore_queryArguments","type":"object"},"name":"istanbul_datastore_query"},{"description":"Return metadata and resources for one IBB dataset.","inputSchema":{"properties":{"dataset_id":{"title":"Dataset Id","type":"string"}},"required":["dataset_id"],"title":"istanbul_get_datasetArguments","type":"object"},"name":"istanbul_get_dataset"},{"description":"Return DataStore field schema for a resource.","inputSchema":{"properties":{"resource_id":{"title":"Resource Id","type":"string"}},"required":["resource_id"],"title":"istanbul_get_resource_schemaArguments","type":"object"},"name":"istanbul_get_resource_schema"},{"description":"Inspect local GTFS load age, calendar validity, row counts and skipped rows.\n\n    No upstream request or refresh is made. A missing or warming snapshot is\n    unavailable, not an empty timetable. Cache age is not feed publication age;\n    a loaded snapshot does not prove live arrivals or transport service.\n    ","inputSchema":{"properties":{},"title":"istanbul_gtfs_snapshot_statusArguments","type":"object"},"name":"istanbul_gtfs_snapshot_status"},{"description":"Return Istanbul MCP service readiness.","inputSchema":{"properties":{},"title":"istanbul_healthArguments","type":"object"},"name":"istanbul_health"},{"description":"Return the published weekly İBB market schedule, optionally by district/day.\n\n    day accepts Turkish/English weekdays, today/yesterday/tomorrow, or an ISO\n    date. Results are a static weekly schedule, not proof a market is open today;\n    coordinates are source points and maps_url is a map search link.\n    ","inputSchema":{"properties":{"day":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Day"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"District"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"}},"title":"istanbul_market_scheduleArguments","type":"object"},"name":"istanbul_market_schedule"},{"description":"Return official Metro İstanbul equipment/total counts and current equipment fault details, optionally filtered by line, station, or equipment type. This is not an end-to-end accessibility guarantee.","inputSchema":{"properties":{"equipment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Equipment Type"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"line":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Line"},"station":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Station"}},"title":"istanbul_metro_accessibility_statusArguments","type":"object"},"name":"istanbul_metro_accessibility_status"},{"description":"Summarize mobility near a static place reference or coordinates.\n\n    district (all 39 Istanbul districts) is exclusive with place/coordinates and\n    returns parking only, without distances. District-only place names do the same.\n    For Acıbadem specify 'Acıbadem, Kadıköy' or 'Acıbadem, Üsküdar'. Not address geocoding.\n    ","inputSchema":{"properties":{"district":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"District"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lat"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lon"},"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Place"},"radius_m":{"default":1500,"title":"Radius M","type":"integer"}},"title":"istanbul_mobility_nearbyArguments","type":"object"},"name":"istanbul_mobility_nearby"},{"description":"Find city services by kind and coordinates, or parking/pharmacy by district.\n\n    bbox and types apply only to city_feature (parking, metro_station,\n    air_quality_station, public_transport_stop, wifi, ev_charging, taxi_stand,\n    market). air_quality includes latest readings; city_feature has station\n    locations only. Static layers return published locations, not live status.\n    District lists have no distances. Pharmacy records include name, district, address, phone, map links,\n    provenance and freshness; maps_search_url is address search, not a verified pin.\n    Pharmacy duty-end times are not guaranteed. Card/social locations are static,\n    not live operating status.\n    ","inputSchema":{"properties":{"bbox":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"default":null,"title":"Bbox"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"District"},"kind":{"default":"city_feature","enum":["city_feature","parking","pharmacy","istanbulkart","social_facility","metro_station","air_quality","water_fault"],"title":"Kind","type":"string"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lat"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lon"},"radius_m":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Radius M"},"types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Types"}},"title":"istanbul_nearbyArguments","type":"object"},"name":"istanbul_nearby"},{"description":"Return a joined neighborhood profile from social, building, and earthquake scenario records.","inputSchema":{"properties":{"district":{"title":"District","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"neighborhood":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Neighborhood"}},"required":["district"],"title":"istanbul_neighborhood_profileArguments","type":"object"},"name":"istanbul_neighborhood_profile"},{"description":"Search GTFS stop names or return published departures for selected stops.\n\n    Use stop_query with limit only to discover stop_id candidates by name,\n    including Turkish/ASCII spellings (Kadıköy/kadikoy). This mode returns stops,\n    NOT departures. Same-name stops remain separate; never choose the first\n    automatically. Approximate spelling suggestions are labeled, not matches.\n    Ask the user to select a candidate using name/map, then call with stop_id.\n    stop_code identifies the published stop sign when present. stop_desc and\n    platform_direction_text preserve source text; they are not inferred route directions.\n    Missing metadata stays null; districts are not inferred.\n\n    at is an ISO datetime with a UTC offset; omitted means now in Europe/Istanbul.\n    The search covers 24 hours. stop_id and coordinates are mutually exclusive.\n    line matches the published route short name. Times are scheduled, never live\n    ETA, delays or proof of service. Outside-calendar queries are unavailable.\n    ","inputSchema":{"properties":{"at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"At"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lat"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"line":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Line"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Lon"},"radius_m":{"default":500,"title":"Radius M","type":"integer"},"stop_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Stop Id"},"stop_query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Stop Query"}},"title":"istanbul_next_departuresArguments","type":"object"},"name":"istanbul_next_departures"},{"description":"Query IBB CKAN DataStore records with guarded filters and limits.\n\n    API reference: https://docs.ckan.org/en/latest/maintaining/datastore.html\n    Uses datastore_search, not SQL; field names come from the resource schema.\n    ","inputSchema":{"properties":{"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Filters"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"resource_id":{"title":"Resource Id","type":"string"}},"required":["resource_id"],"title":"istanbul_query_resourceArguments","type":"object"},"name":"istanbul_query_resource"},{"description":"Search the IBB open data catalog.","inputSchema":{"properties":{"formats":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Formats"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"query":{"title":"Query","type":"string"}},"required":["query"],"title":"istanbul_search_datasetsArguments","type":"object"},"name":"istanbul_search_datasets"},{"description":"Return Istanbul citywide traffic index.","inputSchema":{"properties":{},"title":"istanbul_traffic_statusArguments","type":"object"},"name":"istanbul_traffic_status"},{"description":"Get IETT line info, ordered stops or planned main-terminal departures.\n\n    limit applies only to departures. This is not live intermediate-stop ETA.\n    Cross-operator service notices are provided by istanbul_transport_disruptions.\n    ","inputSchema":{"properties":{"action":{"default":"info","enum":["info","stops","departures"],"title":"Action","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"line_code":{"title":"Line Code","type":"string"}},"required":["line_code"],"title":"istanbul_transit_lineArguments","type":"object"},"name":"istanbul_transit_line"},{"description":"Return current official disruptions and service announcements across supported transport operators.","inputSchema":{"properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"line":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Line"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mode"},"operator":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Operator"}},"title":"istanbul_transport_disruptionsArguments","type":"object"},"name":"istanbul_transport_disruptions"},{"description":"Get ISKI active faults (district or fault_number) or dam occupancy.\n\n    Dam filters apply only to dams; fault_number is exclusive with district.\n    Nearby faults are provided by istanbul_nearby(kind=\"water_fault\"). Results\n    carry fallback freshness and approximate fault locations; no restoration guarantee.\n    ","inputSchema":{"properties":{"dam_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Dam Name"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"District"},"fault_number":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Fault Number"},"kind":{"default":"faults","enum":["faults","dams"],"title":"Kind","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"},"min_occupancy":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Min Occupancy"}},"title":"istanbul_water_statusArguments","type":"object"},"name":"istanbul_water_status"}]},"body_sha256":"69f3eaf4ba192d890514e90e607ee6bd4f0bb2642eac05ace3ed535e0a77e27e","prev_id":null,"leaf":"0x12a24f1e52d55553d0f656a632464e447ee0c1f65b3d515b411a4bd94d37f6e8","leaf_text":"{\"body\":\"69f3eaf4ba192d890514e90e607ee6bd4f0bb2642eac05ace3ed535e0a77e27e\",\"id\":770849,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793187320679582,\"prev\":null,\"subject\":\"ca960bb6-bea0-4f78-b6e7-1d9fb28e7daf\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-28","leaves":231336,"root":"0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e","chained":"0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be","anchor_chain":"eip155:5042002","anchor_tx":"0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae","anchor_block":69584042},"proof":["0x12a241efe71632a087c68fb71f9ee5d33a1f54b3046fe157d3a15dbbd6dbdf68","0xec2b22c10a24d9d2a7708b5a90ba2267de25bd96bd6d9edfd3c4b38b62f16b86","0x1d33dbe28b44a4f951ddcb0e426f20050539ae26cdc888b28d6fceb5d4e731ee","0xdcd39461e7bd970b035949ff5da91447ad4f3e893d34faeff76870fe420d6f3e","0x90da53ac42a432d238a73be8ff594a2640064f96d36a1c0dcd0805ba2d20468a","0xd55d10d3856ce72ba0388b3dfd5f4baae7762ad0cabbf85e074327d7214caedc","0x792d653d2c0a2c875e413a3d0dbfdf01cd40c42e69cb17931938384fd0487335","0xc6fe91b9dd2cf05dba5e9a44c1da03ad9d52d61511fd1f3da4457a535fa5631f","0x6ae34777dcfed29e82330c435bc6573eb4e1ad6d475637c60d641e4aae02cc43","0x010fa298fea386bb402e8efbbe9cf0f21ed58d6fdc2b4b642ca7ce0684c29eea","0x662627b566e5695ed9e44ef95122ce68df4a7fd4d8629e2e6d4829fa5809f5c8","0xd3e3d5122a1bc515e0da13fffa946f5bbdca32998b689bba762a1a197b2cde55","0x7fa5866908096f0b22f929078a2cec5d1e2891fa5835c6c55f26448d682790ec","0xdf8e9d4c523b87b2bea3cc4d461fe94e163080e98a261c596a4641e3fcaf7cc4","0x4698ebc7cbcb2286f661b867355eb6a9183e884482ee16965889e886b17d19ac","0x35e8995c30094446ec790423171382fccb377081b921295b0ae3840cc2c4f52c","0xf078ea7d84d98dbeffed23d8e67b36751e60464ffd4cfdc005e0aa6f8cb9b459","0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f"]}