Location & Demand Intelligence
Pay-per-call where-and-when-to-operate signals from official local statistics.
사용해야 할까요
품질 및 안전성
발견 사항 (12)
- LOWafad-earthquake-operations-router에서
- LOWafad-earthquake-operations-router에서
- LOWispark-metro-destination-access-scorer에서
- LOWispark-metro-destination-access-scorer에서
- LOWmois-neighborhood-age-demand-scorer에서
- LOWmois-neighborhood-age-demand-scorer에서
- LOWmois-solo-household-demand-scorer에서
- LOWmois-solo-household-demand-scorer에서
- LOWsahibindex-property-market-benchmark에서
- LOWsahibindex-property-market-benchmark에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"location-demand-intelligence": {
"url": "https://api.timzinin.com/mcp/location-demand-intelligence"
}
}
}원격 엔드포인트
https://api.timzinin.com/mcp/location-demand-intelligencestreamable-http할 수 있는 일
도구 목록
도구 (7)
🟢pricing_info
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.
입력 스키마
{
"type": "object",
"properties": {}
}⚪afad-earthquake-operations-router(requestId, assets, minimumMagnitude, maximumDepthKm, alertRadiusKm, ...)
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).
입력 스키마
{
"type": "object",
"properties": {
"requestId": {
"title": "Request ID",
"description": "Unique non-PII idempotency ID. Reusing it with changed inputs fails.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"minLength": 8,
"maxLength": 64,
"editor": "textfield"
},
"assets": {
"title": "Assets and route waypoints",
"description": "One to 100 customer-owned operational points. Use opaque non-PII asset IDs.",
"type": "array",
"minItems": 1,
"maxItems": 100,
"editor": "json",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"assetId": {
"title": "Asset ID",
"description": "Opaque non-PII customer identity.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"minLength": 1,
"maxLength": 64
},
"assetType": {
"title": "Asset type",
"description": "Determines whether the reroute action can apply.",
"type": "string",
"enum": [
"site",
"warehouse",
"store",
"route_waypoint"
]
},
"latitude": {
"title": "Latitude",
"description": "WGS84 coordinate in the Turkey/nearby operating envelope.",
"type": "number",
"minimum": 34,
"maximum": 43
},
"longitude": {
"title": "Longitude",
"description": "WGS84 coordinate in the Turkey/nearby operating envelope.",
"type": "number",
"minimum": 24,
"maximum": 46
}
},
"required": [
"assetId",
"assetType",
"latitude",
"longitude"
]
},
"default": [
{
"assetId": "warehouse_ankara_01",
"assetType": "warehouse",
"latitude": 39.9334,
"longitude": 32.8597
}
]
},
"minimumMagnitude": {
"title": "Minimum event magnitude",
"description": "Events below this AFAD magnitude are ignored.",
"type": "number",
"minimum": 0,
"maximum": 10,
"default": 2.5,
"editor": "number"
},
"maximumDepthKm": {
"title": "Maximum event depth (km)",
"description": "Events deeper than this are ignored.",
"type": "number",
"minimum": 0,
"maximum": 800,
"default": 100,
"editor": "number"
},
"alertRadiusKm": {
"title": "Alert radius (km)",
"description": "Only event–asset pairs within this straight-line distance can become alerts.",
"type": "number",
"minimum": 1,
"maximum": 1000,
"default": 100,
"editor": "number"
},
"inspectMagnitude": {
"title": "Inspect threshold",
"description": "At or above this magnitude a matching site receives inspect_asset_and_review.",
"type": "number",
"minimum": 0,
"maximum": 10,
"default": 3.5,
"editor": "number"
},
"pauseDispatchMagnitude": {
"title": "Pause-dispatch threshold",
"description": "At or above this magnitude a matching non-route asset receives pause_dispatch_and_review.",
"type": "number",
"minimum": 0,
"maximum": 10,
"default": 5,
"editor": "number"
},
"rerouteMagnitude": {
"title": "Route-review threshold",
"description": "At or above this magnitude a matching route waypoint receives reroute_for_review.",
"type": "number",
"minimum": 0,
"maximum": 10,
"default": 4,
"editor": "number"
},
"maximumEventAgeHours": {
"title": "Maximum event age (hours)",
"description": "Ignores older rows even if they remain in the last-100 list.",
"type": "integer",
"minimum": 1,
"maximum": 168,
"default": 24,
"editor": "number"
},
"maxAlerts": {
"title": "Maximum alerts",
"description": "Returns the highest-priority matching event–asset pairs, up to this limit.",
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20,
"editor": "number"
},
"maxTotalChargeUsd": {
"title": "Customer charge cap",
"description": "Hard run cap checked before any alert claim or paid delivery.",
"type": "number",
"minimum": 0.005,
"maximum": 100,
"default": 2.01,
"editor": "number"
}
},
"required": [
"requestId",
"assets",
"minimumMagnitude",
"maximumDepthKm",
"alertRadiusKm",
"inspectMagnitude",
"pauseDispatchMagnitude",
"rerouteMagnitude",
"maximumEventAgeHours",
"maxAlerts",
"maxTotalChargeUsd"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"schemaVersion": 1,
"title": "AFAD Earthquake Operations Router input",
"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.",
"additionalProperties": false
}⚪ispark-metro-destination-access-scorer(requestId, sites, railWeight, railReferenceMeters, parkingReferenceMeters, ...)
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).
입력 스키마
{
"type": "object",
"properties": {
"requestId": {
"title": "Request ID",
"description": "Unique non-PII idempotency ID. Reusing it with different decision inputs fails.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"minLength": 8,
"maxLength": 64,
"editor": "textfield"
},
"sites": {
"title": "Candidate sites",
"description": "One to 100 customer-owned site IDs and coordinates inside the bounded Istanbul service area.",
"type": "array",
"minItems": 1,
"maxItems": 100,
"editor": "json",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"siteId": {
"title": "Site ID",
"description": "Non-PII customer identity for this candidate site.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"minLength": 1,
"maxLength": 64
},
"latitude": {
"title": "Latitude",
"description": "WGS84 latitude inside the bounded Istanbul service area.",
"type": "number",
"minimum": 40.7,
"maximum": 41.5
},
"longitude": {
"title": "Longitude",
"description": "WGS84 longitude inside the bounded Istanbul service area.",
"type": "number",
"minimum": 28.3,
"maximum": 30
}
},
"required": [
"siteId",
"latitude",
"longitude"
]
},
"default": [
{
"siteId": "kadikoy_candidate",
"latitude": 40.9909,
"longitude": 29.0221
}
]
},
"railWeight": {
"title": "Metro weight",
"description": "Share of the final score assigned to metro proximity. Parking receives one minus this value.",
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0.6,
"editor": "number"
},
"railReferenceMeters": {
"title": "Metro reference distance (m)",
"description": "Metro proximity reaches zero at and beyond this straight-line distance.",
"type": "integer",
"minimum": 100,
"maximum": 5000,
"default": 1000,
"editor": "number"
},
"parkingReferenceMeters": {
"title": "Parking reference distance (m)",
"description": "Parking proximity reaches zero at and beyond this straight-line distance.",
"type": "integer",
"minimum": 100,
"maximum": 5000,
"default": 750,
"editor": "number"
},
"minimumEmptySpaces": {
"title": "Minimum empty spaces",
"description": "Flags the nearest İSPARK facility when its reported live empty capacity is below this threshold.",
"type": "integer",
"minimum": 0,
"maximum": 10000,
"default": 10,
"editor": "number"
},
"maxTotalChargeUsd": {
"title": "Customer charge cap",
"description": "Maximum accepted total run charge. A 100-site default-price batch needs at least $2.005 including Actor start.",
"type": "number",
"minimum": 0.025,
"maximum": 100,
"default": 2.01,
"editor": "number"
}
},
"required": [
"requestId",
"sites",
"railWeight",
"railReferenceMeters",
"parkingReferenceMeters",
"minimumEmptySpaces",
"maxTotalChargeUsd"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"schemaVersion": 1,
"title": "İSPARK & Metro Destination Access Scorer input",
"description": "Ranks customer-supplied Istanbul sites using straight-line proximity to official metro stations and İSPARK parking proximity/live capacity.",
"additionalProperties": false
}⚪mois-neighborhood-age-demand-scorer(requestId, targetAdminCodes, peerAdminCodes, cohortWeights, maxTotalChargeUsd)
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).
입력 스키마
{
"type": "object",
"properties": {
"requestId": {
"title": "Request ID",
"description": "Stable idempotency key without personal data.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"editor": "textfield"
},
"targetAdminCodes": {
"title": "Target administrative codes",
"description": "One to 20 official 10-digit administrative-neighborhood codes to score.",
"type": "array",
"minItems": 1,
"maxItems": 20,
"uniqueItems": true,
"editor": "stringList",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
}
},
"peerAdminCodes": {
"title": "Peer administrative codes",
"description": "Two to 200 official codes; must include every target.",
"type": "array",
"minItems": 2,
"maxItems": 200,
"uniqueItems": true,
"editor": "stringList",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
}
},
"cohortWeights": {
"title": "Cohort weights",
"description": "Non-overlapping inclusive age bands; age 110 means 110+.",
"type": "array",
"minItems": 1,
"maxItems": 12,
"editor": "json",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"minAge": {
"title": "Minimum age",
"description": "Inclusive lower age bound.",
"type": "integer",
"minimum": 0,
"maximum": 110
},
"maxAge": {
"title": "Maximum age",
"description": "Inclusive upper age bound; 110 represents 110+.",
"type": "integer",
"minimum": 0,
"maximum": 110
},
"weight": {
"title": "Business weight",
"description": "Positive relative importance of this cohort.",
"type": "number",
"minimum": 0.000001,
"maximum": 10
}
},
"required": [
"minAge",
"maxAge",
"weight"
]
}
},
"maxTotalChargeUsd": {
"title": "Customer charge cap",
"description": "Maximum total run charge in addition to the platform cap.",
"type": "number",
"minimum": 0.005,
"maximum": 100,
"default": 1,
"editor": "number"
}
},
"required": [
"requestId",
"targetAdminCodes",
"peerAdminCodes",
"cohortWeights",
"maxTotalChargeUsd"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"schemaVersion": 1,
"title": "MOIS Neighborhood Age Demand Scorer input",
"description": "Ranks target Korean administrative neighborhoods against an explicit peer set using official age-cohort population shares.",
"additionalProperties": false
}⚪mois-solo-household-demand-scorer(requestId, targetLegalCodes, peerLegalCodes, ageWeights, maxTotalChargeUsd)
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).
입력 스키마
{
"type": "object",
"properties": {
"requestId": {
"title": "Request ID",
"description": "Stable idempotency key without personal data.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"editor": "textfield"
},
"targetLegalCodes": {
"title": "Target legal-district codes",
"description": "One to 20 official 10-digit legal-district codes to score.",
"type": "array",
"minItems": 1,
"maxItems": 20,
"uniqueItems": true,
"editor": "stringList",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
}
},
"peerLegalCodes": {
"title": "Peer legal-district codes",
"description": "Two to 200 official codes; must include every target.",
"type": "array",
"minItems": 2,
"maxItems": 200,
"uniqueItems": true,
"editor": "stringList",
"items": {
"type": "string",
"pattern": "^[0-9]{10}$"
}
},
"ageWeights": {
"title": "Age weights",
"description": "Non-overlapping inclusive age bands; age 110 means 110+.",
"type": "array",
"minItems": 1,
"maxItems": 12,
"editor": "json",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"minAge": {
"title": "Minimum age",
"description": "Inclusive lower age bound.",
"type": "integer",
"minimum": 0,
"maximum": 110
},
"maxAge": {
"title": "Maximum age",
"description": "Inclusive upper age bound; 110 represents 110+.",
"type": "integer",
"minimum": 0,
"maximum": 110
},
"weight": {
"title": "Business weight",
"description": "Positive relative importance of this age band.",
"type": "number",
"minimum": 0.000001,
"maximum": 10
}
},
"required": [
"minAge",
"maxAge",
"weight"
]
}
},
"maxTotalChargeUsd": {
"title": "Customer charge cap",
"description": "Maximum total run charge in addition to the platform cap.",
"type": "number",
"minimum": 0.005,
"maximum": 100,
"default": 1,
"editor": "number"
}
},
"required": [
"requestId",
"targetLegalCodes",
"peerLegalCodes",
"ageWeights",
"maxTotalChargeUsd"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"schemaVersion": 1,
"title": "MOIS Solo Household Demand Scorer input",
"description": "Ranks target Korean legal districts against an explicit peer set using official one-person-household age shares.",
"additionalProperties": false
}⚪sahibindex-property-market-benchmark(requestId, reportUrl, properties, deviationThresholdPct, slowMarketDays, ...)
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).
입력 스키마
{
"type": "object",
"properties": {
"requestId": {
"title": "Request ID",
"description": "Unique non-PII idempotency ID. Reuse is allowed only with identical decision inputs.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,64}$",
"minLength": 8,
"maxLength": 64,
"editor": "textfield"
},
"reportUrl": {
"title": "Public report PDF",
"description": "Optional exact image5.sahibinden.com staticContent PDF. The PDF must identify itself as a public sale-market Sahibindex/BETAM report.",
"type": "string",
"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$",
"default": "https://image5.sahibinden.com/staticContent/46800756/5ff7/403d/a818/c375e3143738/1774419975.pdf",
"editor": "textfield"
},
"properties": {
"title": "Customer property facts",
"description": "One to 50 customer-owned fact sets. Do not submit an address, owner name, contact data or listing URL.",
"type": "array",
"minItems": 1,
"maxItems": 50,
"editor": "json",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"propertyId": {
"title": "Property ID",
"description": "Opaque non-PII customer identifier.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"minLength": 1,
"maxLength": 64
},
"city": {
"title": "Benchmark geography",
"description": "The four geographies fully stated in every supported report.",
"type": "string",
"enum": [
"Türkiye",
"İstanbul",
"Ankara",
"İzmir"
]
},
"priceTry": {
"title": "Subject asking price (TRY)",
"description": "Customer-supplied asking price; not fetched from a listing.",
"type": "number",
"minimum": 10000,
"maximum": 100000000000
},
"areaM2": {
"title": "Subject area (m²)",
"description": "Customer-supplied area used to compute the subject price per m².",
"type": "number",
"minimum": 10,
"maximum": 5000
}
},
"required": [
"propertyId",
"city",
"priceTry",
"areaM2"
]
},
"default": [
{
"propertyId": "istanbul_demo_001",
"city": "İstanbul",
"priceTry": 5500000,
"areaM2": 100
}
]
},
"deviationThresholdPct": {
"title": "Deviation threshold (%)",
"description": "Absolute price-per-m² deviation that triggers below/above aggregate review.",
"type": "number",
"minimum": 1,
"maximum": 100,
"default": 10,
"editor": "number"
},
"slowMarketDays": {
"title": "Slow-market threshold (days)",
"description": "Closed-listing age at or above this value is labelled slow.",
"type": "number",
"minimum": 1,
"maximum": 365,
"default": 75,
"editor": "number"
},
"maxReportAgeMonths": {
"title": "Maximum report age",
"description": "Fail if the aggregate reference period is older than this many months.",
"type": "integer",
"minimum": 1,
"maximum": 36,
"default": 12,
"editor": "number"
},
"maxTotalChargeUsd": {
"title": "Customer charge cap",
"description": "Hard run cap checked for the entire set of new benchmarks before any claim.",
"type": "number",
"minimum": 0.005,
"maximum": 100,
"default": 1.505,
"editor": "number"
}
},
"required": [
"requestId",
"properties",
"maxTotalChargeUsd"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"schemaVersion": 1,
"title": "Sahibindex Property Market Benchmark input",
"description": "Compares customer-supplied price-per-m² facts with a public Sahibinden/BETAM aggregate report. Listing URLs and listing-page scraping are not supported.",
"additionalProperties": false
}⚪traffic-index-operating-window-planner(requestId, windows, maxTotalChargeUsd)
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).
입력 스키마
{
"type": "object",
"properties": {
"requestId": {
"title": "Idempotency key",
"description": "Reuse only for the exact same input. A changed payload with the same key fails closed.",
"type": "string",
"minLength": 8,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$",
"editor": "textfield"
},
"windows": {
"title": "Operating windows",
"description": "One paid decision at most per new, non-duplicate window plan.",
"type": "array",
"minItems": 1,
"maxItems": 50,
"editor": "json",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"windowId",
"scheduledAt",
"flexHours",
"maxTrafficIndex",
"costPerIndexPointUsd"
],
"properties": {
"windowId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_-]+$",
"title": "Window ID",
"description": "Stable customer identifier for this operating window."
},
"scheduledAt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:00\\+03:00$",
"title": "Scheduled local time",
"description": "ISO timestamp with explicit Istanbul +03:00 offset."
},
"flexHours": {
"type": "integer",
"minimum": 0,
"maximum": 6,
"title": "Flexible hours before/after",
"description": "Search this many whole hours before and after the planned time."
},
"maxTrafficIndex": {
"type": "integer",
"minimum": 1,
"maximum": 99,
"title": "Maximum acceptable index",
"description": "Customer threshold used to select the resulting action."
},
"costPerIndexPointUsd": {
"type": "number",
"minimum": 0,
"maximum": 10000,
"title": "Estimated cost per avoidable index point",
"description": "Customer-supplied unit cost used for transparent avoided-cost arithmetic."
}
}
},
"default": [
{
"windowId": "dispatch_am",
"scheduledAt": "2026-08-18T08:30:00+03:00",
"flexHours": 2,
"maxTrafficIndex": 45,
"costPerIndexPointUsd": 12.5
}
]
},
"maxTotalChargeUsd": {
"title": "Hard customer budget",
"description": "Checked before any decision claim and again by the Apify platform.",
"type": "number",
"minimum": 0.025,
"maximum": 100,
"default": 1,
"editor": "number"
}
},
"required": [
"requestId",
"windows",
"maxTotalChargeUsd"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"schemaVersion": 1,
"title": "Traffic Index Operating Window Planner input",
"description": "Evaluate planned operating windows against 28 days of official hourly traffic-index history. Times must use Istanbul's +03:00 offset.",
"additionalProperties": false
}커뮤니티
증거