Pay-per-call where-and-when-to-operate signals from official local statistics.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Turn official AFAD events into distance-based asset and route actions. Unofficial, independent Actor; not affiliated with or endorsed by any named source publisher. — $0.02/call, x402 (USDC on base).
One to 100 customer-owned operational points. Use opaque non-PII asset IDs.
Returns the highest-priority matching event–asset pairs, up to this limit.
Unique non-PII idempotency ID. Reusing it with changed inputs fails.
Only event–asset pairs within this straight-line distance can become alerts.
Events deeper than this are ignored.
At or above this magnitude a matching site receives inspect_asset_and_review.
Events below this AFAD magnitude are ignored.
At or above this magnitude a matching route waypoint receives reroute_for_review.
Hard run cap checked before any alert claim or paid delivery.
Ignores older rows even if they remain in the last-100 list.
At or above this magnitude a matching non-route asset receives pause_dispatch_and_review.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Turn official AFAD events into distance-based asset and route actions. Unofficial, independent Actor; not affiliated with or endorsed by any named source publisher. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| assets* | array | One to 100 customer-owned operational points. Use opaque non-PII asset IDs. |
| maxAlerts* | integer | Returns the highest-priority matching event–asset pairs, up to this limit. |
| requestId* | string | Unique non-PII idempotency ID. Reusing it with changed inputs fails. |
| alertRadiusKm* | number | Only event–asset pairs within this straight-line distance can become alerts. |
| maximumDepthKm* | number | Events deeper than this are ignored. |
| inspectMagnitude* | number | At or above this magnitude a matching site receives inspect_asset_and_review. |
| minimumMagnitude* | number | Events below this AFAD magnitude are ignored. |
| rerouteMagnitude* | number | At or above this magnitude a matching route waypoint receives reroute_for_review. |
| maxTotalChargeUsd* | number | Hard run cap checked before any alert claim or paid delivery. |
| maximumEventAgeHours* | integer | Ignores older rows even if they remain in the last-100 list. |
| pauseDispatchMagnitude* | number | At or above this magnitude a matching non-route asset receives pause_dispatch_and_review. |
{
"type": "object",
"title": "AFAD Earthquake Operations Router input",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"requestId",
"assets",
"minimumMagnitude",
"maximumDepthKm",
"alertRadiusKm",
"inspectMagnitude",
"pauseDispatchMagnitude",
"rerouteMagnitude",
"maximumEventAgeHours",
"maxAlerts",
"maxTotalChargeUsd"
],
"properties": {
"assets": {
"type": "array",
"items": {
"type": "object",
"required": [
"assetId",
"assetType",
"latitude",
"longitude"
],
"properties": {
"assetId": {
"type": "string",
"title": "Asset ID",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 64,
"minLength": 1,
"description": "Opaque non-PII customer identity."
},
"latitude": {
"type": "number",
"title": "Latitude",
"maximum": 43,
"minimum": 34,
"description": "WGS84 coordinate in the Turkey/nearby operating envelope."
},
"assetType": {
"enum": [
"site",
"warehouse",
"store",
"route_waypoint"
],
"type": "string",
"title": "Asset type",
"description": "Determines whether the reroute action can apply."
},
"longitude": {
"type": "number",
"title": "Longitude",
"maximum": 46,
"minimum": 24,
"description": "WGS84 coordinate in the Turkey/nearby operating envelope."
}
},
"additionalProperties": false
},
"title": "Assets and route waypoints",
"editor": "json",
"default": [
{
"assetId": "warehouse_ankara_01",
"latitude": 39.9334,
"assetType": "warehouse",
"longitude": 32.8597
}
],
"maxItems": 100,
"minItems": 1,
"description": "One to 100 customer-owned operational points. Use opaque non-PII asset IDs."
},
"maxAlerts": {
"type": "integer",
"title": "Maximum alerts",
"editor": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Returns the highest-priority matching event–asset pairs, up to this limit."
},
"requestId": {
"type": "string",
"title": "Request ID",
"editor": "textfield",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"maxLength": 64,
"minLength": 8,
"description": "Unique non-PII idempotency ID. Reusing it with changed inputs fails."
},
"alertRadiusKm": {
"type": "number",
"title": "Alert radius (km)",
"editor": "number",
"default": 100,
"maximum": 1000,
"minimum": 1,
"description": "Only event–asset pairs within this straight-line distance can become alerts."
},
"maximumDepthKm": {
"type": "number",
"title": "Maximum event depth (km)",
"editor": "number",
"default": 100,
"maximum": 800,
"minimum": 0,
"description": "Events deeper than this are ignored."
},
"inspectMagnitude": {
"type": "number",
"title": "Inspect threshold",
"editor": "number",
"default": 3.5,
"maximum": 10,
"minimum": 0,
"description": "At or above this magnitude a matching site receives inspect_asset_and_review."
},
"minimumMagnitude": {
"type": "number",
"title": "Minimum event magnitude",
"editor": "number",
"default": 2.5,
"maximum": 10,
"minimum": 0,
"description": "Events below this AFAD magnitude are ignored."
},
"rerouteMagnitude": {
"type": "number",
"title": "Route-review threshold",
"editor": "number",
"default": 4,
"maximum": 10,
"minimum": 0,
"description": "At or above this magnitude a matching route waypoint receives reroute_for_review."
},
"maxTotalChargeUsd": {
"type": "number",
"title": "Customer charge cap",
"editor": "number",
"default": 2.01,
"maximum": 100,
"minimum": 0.005,
"description": "Hard run cap checked before any alert claim or paid delivery."
},
"maximumEventAgeHours": {
"type": "integer",
"title": "Maximum event age (hours)",
"editor": "number",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "Ignores older rows even if they remain in the last-100 list."
},
"pauseDispatchMagnitude": {
"type": "number",
"title": "Pause-dispatch threshold",
"editor": "number",
"default": 5,
"maximum": 10,
"minimum": 0,
"description": "At or above this magnitude a matching non-route asset receives pause_dispatch_and_review."
}
},
"description": "Maps the official AFAD last-100 event list to customer-owned operational assets or route waypoints. It is not a structural-safety or earthquake-prediction product.",
"schemaVersion": 1,
"additionalProperties": false
}Score customer sites against official Metro stations and İSPARK capacity. Unofficial, independent Actor; not affiliated with or endorsed by any named source publisher. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| sites* | array | One to 100 customer-owned site IDs and coordinates inside the bounded Istanbul service area. |
| requestId* | string | Unique non-PII idempotency ID. Reusing it with different decision inputs fails. |
| railWeight* | number | Share of the final score assigned to metro proximity. Parking receives one minus this value. |
| maxTotalChargeUsd* | number | Maximum accepted total run charge. A 100-site default-price batch needs at least $2.005 including Actor start. |
| minimumEmptySpaces* | integer | Flags the nearest İSPARK facility when its reported live empty capacity is below this threshold. |
| railReferenceMeters* | integer | Metro proximity reaches zero at and beyond this straight-line distance. |
| parkingReferenceMeters* |
Score neighborhoods from official resident age cohorts with customer-defined weights. Unofficial, independent Actor; not affiliated with or endorsed by any named source publisher. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| requestId* | string | Stable idempotency key without personal data. |
| cohortWeights* | array | Non-overlapping inclusive age bands; age 110 means 110+. |
| peerAdminCodes* | array | Two to 200 official codes; must include every target. |
| targetAdminCodes* | array | One to 20 official 10-digit administrative-neighborhood codes to score. |
| maxTotalChargeUsd* | number | Maximum total run charge in addition to the platform cap. |
{
"type": "object",
"title": "MOIS Neighborhood Age Demand Scorer input",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"requestId",
"targetAdminCodes",
"peerAdminCodes",
"cohortWeights",
"maxTotalChargeUsd"
],
"properties": {
"requestId": {
"type": "string",
"title": "Request ID",
"editor": "textfield",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"description": "Stable idempotency key without personal data."
},
"cohortWeights": {
"type": "array",
"items": {
"type": "object",
"required": [
"minAge",
"maxAge",
"weight"
],
"properties": {
"maxAge": {
"type": "integer",
"title": "Maximum age",
"maximum": 110,
"minimum": 0,
"description": "Inclusive upper age bound; 110 represents 110+."
},
"minAge": {
"type": "integer",
"title": "Minimum age",
"maximum": 110,
"minimum": 0,
"description": "Inclusive lower age bound."
},
"weight": {
"type": "number",
"title": "Business weight",
"maximum": 10,
"minimum": 0.000001,
"description": "Positive relative importance of this cohort."
}
},
"additionalProperties": false
},
"title": "Cohort weights",
"editor": "json",
"maxItems": 12,
"minItems": 1,
"description": "Non-overlapping inclusive age bands; age 110 means 110+."
},
"peerAdminCodes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
},
"title": "Peer administrative codes",
"editor": "stringList",
"maxItems": 200,
"minItems": 2,
"description": "Two to 200 official codes; must include every target.",
"uniqueItems": true
},
"targetAdminCodes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
},
"title": "Target administrative codes",
"editor": "stringList",
"maxItems": 20,
"minItems": 1,
"description": "One to 20 official 10-digit administrative-neighborhood codes to score.",
"uniqueItems": true
},
"maxTotalChargeUsd": {
"type": "number",
"title": "Customer charge cap",
"editor": "number",
"default": 1,
"maximum": 100,
"minimum": 0.005,
"description": "Maximum total run charge in addition to the platform cap."
}
},
"description": "Ranks target Korean administrative neighborhoods against an explicit peer set using official age-cohort population shares.",
"schemaVersion": 1,
"additionalProperties": false
}Rank territories by official one-person-household age composition. Unofficial, independent Actor; not affiliated with or endorsed by any named source publisher. — $0.05/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| requestId* | string | Stable idempotency key without personal data. |
| ageWeights* | array | Non-overlapping inclusive age bands; age 110 means 110+. |
| peerLegalCodes* | array | Two to 200 official codes; must include every target. |
| targetLegalCodes* | array | One to 20 official 10-digit legal-district codes to score. |
| maxTotalChargeUsd* | number | Maximum total run charge in addition to the platform cap. |
{
"type": "object",
"title": "MOIS Solo Household Demand Scorer input",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"requestId",
"targetLegalCodes",
"peerLegalCodes",
"ageWeights",
"maxTotalChargeUsd"
],
"properties": {
"requestId": {
"type": "string",
"title": "Request ID",
"editor": "textfield",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"description": "Stable idempotency key without personal data."
},
"ageWeights": {
"type": "array",
"items": {
"type": "object",
"required": [
"minAge",
"maxAge",
"weight"
],
"properties": {
"maxAge": {
"type": "integer",
"title": "Maximum age",
"maximum": 110,
"minimum": 0,
"description": "Inclusive upper age bound; 110 represents 110+."
},
"minAge": {
"type": "integer",
"title": "Minimum age",
"maximum": 110,
"minimum": 0,
"description": "Inclusive lower age bound."
},
"weight": {
"type": "number",
"title": "Business weight",
"maximum": 10,
"minimum": 0.000001,
"description": "Positive relative importance of this age band."
}
},
"additionalProperties": false
},
"title": "Age weights",
"editor": "json",
"maxItems": 12,
"minItems": 1,
"description": "Non-overlapping inclusive age bands; age 110 means 110+."
},
"peerLegalCodes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
},
"title": "Peer legal-district codes",
"editor": "stringList",
"maxItems": 200,
"minItems": 2,
"description": "Two to 200 official codes; must include every target.",
"uniqueItems": true
},
"targetLegalCodes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
},
"title": "Target legal-district codes",
"editor": "stringList",
"maxItems": 20,
"minItems": 1,
"description": "One to 20 official 10-digit legal-district codes to score.",
"uniqueItems": true
},
"maxTotalChargeUsd": {
"type": "number",
"title": "Customer charge cap",
"editor": "number",
"default": 1,
"maximum": 100,
"minimum": 0.005,
"description": "Maximum total run charge in addition to the platform cap."
}
},
"description": "Ranks target Korean legal districts against an explicit peer set using official one-person-household age shares.",
"schemaVersion": 1,
"additionalProperties": false
}Free — list every paid tool in the 'location-demand-intelligence' bundle with its price, payTo address and network. Call this first if you don't have a wallet ready yet.
No arguments.
{
"type": "object",
"properties": {}
}Compare customer-owned property facts with licensed public Sahibindex market reports. Unofficial, independent Actor; not affiliated with or endorsed by any named source publisher. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| reportUrl | string | Optional exact image5.sahibinden.com staticContent PDF. The PDF must identify itself as a public sale-market Sahibindex/BETAM report. |
| requestId* | string | Unique non-PII idempotency ID. Reuse is allowed only with identical decision inputs. |
| properties* | array | One to 50 customer-owned fact sets. Do not submit an address, owner name, contact data or listing URL. |
| slowMarketDays | number | Closed-listing age at or above this value is labelled slow. |
| maxTotalChargeUsd* | number | Hard run cap checked for the entire set of new benchmarks before any claim. |
| maxReportAgeMonths | integer | Fail if the aggregate reference period is older than this many months. |
| deviationThresholdPct | number | Absolute price-per-m² deviation that triggers below/above aggregate review. |
Convert official hourly traffic history into explainable low-congestion operating windows. Unofficial, independent Actor; not affiliated with or endorsed by any named source publisher. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| windows* | array | One paid decision at most per new, non-duplicate window plan. |
| requestId* | string | Reuse only for the exact same input. A changed payload with the same key fails closed. |
| maxTotalChargeUsd* | number | Checked before any decision claim and again by the Apify platform. |
{
"type": "object",
"title": "Traffic Index Operating Window Planner input",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"requestId",
"windows",
"maxTotalChargeUsd"
],
"properties": {
"windows": {
"type": "array",
"items": {
"type": "object",
"required": [
"windowId",
"scheduledAt",
"flexHours",
"maxTrafficIndex",
"costPerIndexPointUsd"
],
"properties": {
"windowId": {
"type": "string",
"title": "Window ID",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 64,
"minLength": 1,
"description": "Stable customer identifier for this operating window."
},
"flexHours": {
"type": "integer",
"title": "Flexible hours before/after",
"maximum": 6,
"minimum": 0,
"description": "Search this many whole hours before and after the planned time."
},
"scheduledAt": {
"type": "string",
"title": "Scheduled local time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:00\\+03:00$",
"description": "ISO timestamp with explicit Istanbul +03:00 offset."
},
"maxTrafficIndex": {
"type": "integer",
"title": "Maximum acceptable index",
"maximum": 99,
"minimum": 1,
"description": "Customer threshold used to select the resulting action."
},
"costPerIndexPointUsd": {
"type": "number",
"title": "Estimated cost per avoidable index point",
"maximum": 10000,
"minimum": 0,
"description": "Customer-supplied unit cost used for transparent avoided-cost arithmetic."
}
},
"additionalProperties": false
},
"title": "Operating windows",
"editor": "json",
"default": [
{
"windowId": "dispatch_am",
"flexHours": 2,
"scheduledAt": "2026-08-18T08:30:00+03:00",
"maxTrafficIndex": 45,
"costPerIndexPointUsd": 12.5
}
],
"maxItems": 50,
"minItems": 1,
"description": "One paid decision at most per new, non-duplicate window plan."
},
"requestId": {
"type": "string",
"title": "Idempotency key",
"editor": "textfield",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 64,
"minLength": 8,
"description": "Reuse only for the exact same input. A changed payload with the same key fails closed."
},
"maxTotalChargeUsd": {
"type": "number",
"title": "Hard customer budget",
"editor": "number",
"default": 1,
"maximum": 100,
"minimum": 0.025,
"description": "Checked before any decision claim and again by the Apify platform."
}
},
"description": "Evaluate planned operating windows against 28 days of official hourly traffic-index history. Times must use Istanbul's +03:00 offset.",
"schemaVersion": 1,
"additionalProperties": false
}| integer |
| Parking proximity reaches zero at and beyond this straight-line distance. |
{
"type": "object",
"title": "İSPARK & Metro Destination Access Scorer input",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"requestId",
"sites",
"railWeight",
"railReferenceMeters",
"parkingReferenceMeters",
"minimumEmptySpaces",
"maxTotalChargeUsd"
],
"properties": {
"sites": {
"type": "array",
"items": {
"type": "object",
"required": [
"siteId",
"latitude",
"longitude"
],
"properties": {
"siteId": {
"type": "string",
"title": "Site ID",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 64,
"minLength": 1,
"description": "Non-PII customer identity for this candidate site."
},
"latitude": {
"type": "number",
"title": "Latitude",
"maximum": 41.5,
"minimum": 40.7,
"description": "WGS84 latitude inside the bounded Istanbul service area."
},
"longitude": {
"type": "number",
"title": "Longitude",
"maximum": 30,
"minimum": 28.3,
"description": "WGS84 longitude inside the bounded Istanbul service area."
}
},
"additionalProperties": false
},
"title": "Candidate sites",
"editor": "json",
"default": [
{
"siteId": "kadikoy_candidate",
"latitude": 40.9909,
"longitude": 29.0221
}
],
"maxItems": 100,
"minItems": 1,
"description": "One to 100 customer-owned site IDs and coordinates inside the bounded Istanbul service area."
},
"requestId": {
"type": "string",
"title": "Request ID",
"editor": "textfield",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"maxLength": 64,
"minLength": 8,
"description": "Unique non-PII idempotency ID. Reusing it with different decision inputs fails."
},
"railWeight": {
"type": "number",
"title": "Metro weight",
"editor": "number",
"default": 0.6,
"maximum": 1,
"minimum": 0,
"description": "Share of the final score assigned to metro proximity. Parking receives one minus this value."
},
"maxTotalChargeUsd": {
"type": "number",
"title": "Customer charge cap",
"editor": "number",
"default": 2.01,
"maximum": 100,
"minimum": 0.025,
"description": "Maximum accepted total run charge. A 100-site default-price batch needs at least $2.005 including Actor start."
},
"minimumEmptySpaces": {
"type": "integer",
"title": "Minimum empty spaces",
"editor": "number",
"default": 10,
"maximum": 10000,
"minimum": 0,
"description": "Flags the nearest İSPARK facility when its reported live empty capacity is below this threshold."
},
"railReferenceMeters": {
"type": "integer",
"title": "Metro reference distance (m)",
"editor": "number",
"default": 1000,
"maximum": 5000,
"minimum": 100,
"description": "Metro proximity reaches zero at and beyond this straight-line distance."
},
"parkingReferenceMeters": {
"type": "integer",
"title": "Parking reference distance (m)",
"editor": "number",
"default": 750,
"maximum": 5000,
"minimum": 100,
"description": "Parking proximity reaches zero at and beyond this straight-line distance."
}
},
"description": "Ranks customer-supplied Istanbul sites using straight-line proximity to official metro stations and İSPARK parking proximity/live capacity.",
"schemaVersion": 1,
"additionalProperties": false
}{
"type": "object",
"title": "Sahibindex Property Market Benchmark input",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"requestId",
"properties",
"maxTotalChargeUsd"
],
"properties": {
"reportUrl": {
"type": "string",
"title": "Public report PDF",
"editor": "textfield",
"default": "https://image5.sahibinden.com/staticContent/46800756/5ff7/403d/a818/c375e3143738/1774419975.pdf",
"pattern": "^https://image5\\.sahibinden\\.com/staticContent/[0-9A-Fa-f]{8}/[0-9A-Fa-f]{4}/[0-9A-Fa-f]{4}/[0-9A-Fa-f]{4}/[0-9A-Fa-f]{12}/[0-9]{10}\\.pdf$",
"description": "Optional exact image5.sahibinden.com staticContent PDF. The PDF must identify itself as a public sale-market Sahibindex/BETAM report."
},
"requestId": {
"type": "string",
"title": "Request ID",
"editor": "textfield",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"maxLength": 64,
"minLength": 8,
"description": "Unique non-PII idempotency ID. Reuse is allowed only with identical decision inputs."
},
"properties": {
"type": "array",
"items": {
"type": "object",
"required": [
"propertyId",
"city",
"priceTry",
"areaM2"
],
"properties": {
"city": {
"enum": [
"Türkiye",
"İstanbul",
"Ankara",
"İzmir"
],
"type": "string",
"title": "Benchmark geography",
"description": "The four geographies fully stated in every supported report."
},
"areaM2": {
"type": "number",
"title": "Subject area (m²)",
"maximum": 5000,
"minimum": 10,
"description": "Customer-supplied area used to compute the subject price per m²."
},
"priceTry": {
"type": "number",
"title": "Subject asking price (TRY)",
"maximum": 100000000000,
"minimum": 10000,
"description": "Customer-supplied asking price; not fetched from a listing."
},
"propertyId": {
"type": "string",
"title": "Property ID",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"maxLength": 64,
"minLength": 1,
"description": "Opaque non-PII customer identifier."
}
},
"additionalProperties": false
},
"title": "Customer property facts",
"editor": "json",
"default": [
{
"city": "İstanbul",
"areaM2": 100,
"priceTry": 5500000,
"propertyId": "istanbul_demo_001"
}
],
"maxItems": 50,
"minItems": 1,
"description": "One to 50 customer-owned fact sets. Do not submit an address, owner name, contact data or listing URL."
},
"slowMarketDays": {
"type": "number",
"title": "Slow-market threshold (days)",
"editor": "number",
"default": 75,
"maximum": 365,
"minimum": 1,
"description": "Closed-listing age at or above this value is labelled slow."
},
"maxTotalChargeUsd": {
"type": "number",
"title": "Customer charge cap",
"editor": "number",
"default": 1.505,
"maximum": 100,
"minimum": 0.005,
"description": "Hard run cap checked for the entire set of new benchmarks before any claim."
},
"maxReportAgeMonths": {
"type": "integer",
"title": "Maximum report age",
"editor": "number",
"default": 12,
"maximum": 36,
"minimum": 1,
"description": "Fail if the aggregate reference period is older than this many months."
},
"deviationThresholdPct": {
"type": "number",
"title": "Deviation threshold (%)",
"editor": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Absolute price-per-m² deviation that triggers below/above aggregate review."
}
},
"description": "Compares customer-supplied price-per-m² facts with a public Sahibinden/BETAM aggregate report. Listing URLs and listing-page scraping are not supported.",
"schemaVersion": 1,
"additionalProperties": false
}