이 MCP로 할 수 있는 일
Resolves a user's location reference to a verified place or address and coordinate using contextual evidence.
도구
입력 스키마
{'type': 'object', 'oneOf': [{'required': ['transcript']}, {'required': ['intent']}], 'required': ['anchor'], 'properties': {'anchor': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number', 'description': 'WGS 84 latitude'}, 'lng': {'type': 'number', 'description': 'WGS 84 longitude'}}, 'description': "The user's current position - Kviria resolves relative to this point."}, 'intent': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['action', 'target'], 'properties': {'action': {'const': 'find'}, 'target': {'$ref': '#/definitions/find_target'}}}, {'type': 'object', 'properties': {'action': {'const': 'search'}, 'categoryAny': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Exact labels the user WANTS (e.g. ["mexican_restaurant"])'}, 'categoryNot': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Exact labels the user rejects (e.g. ["cafe"])'}}}, {'type': 'object', 'required': ['action', 'of'], 'properties': {'of': {'$ref': '#/definitions/target_anchor'}, 'side': {'enum': ['left', 'right']}, 'action': {'const': 'neighbors'}}}, {'type': 'object', 'required': ['action', 'of'], 'properties': {'of': {'$ref': '#/definitions/target_anchor'}, 'action': {'const': 'near'}, 'categoryAny': {'type': 'array', 'items': {'type': 'string'}}, 'categoryNot': {'type': 'array', 'items': {'type': 'string'}}}}, {'type': 'object', 'required': ['action', 'of'], 'properties': {'of': {'$ref': '#/definitions/target_anchor'}, 'action': {'const': 'across'}, 'categoryAny': {'type': 'array', 'items': {'type': 'string'}}}}, {'type': 'object', 'required': ['action', 'street', 'n'], 'properties': {'n': {'type': 'integer', 'minimum': 1}, 'action': {'const': 'along'}, 'street': {'type': 'string'}}}, {'type': 'object', 'required': ['action', 'number'], 'properties': {'action': {'const': 'at_address'}, 'number': {'type': 'string'}, 'street': {'type': 'string'}}}, {'type': 'object', 'required': ['action', 'street'], 'properties': {'action': {'const': 'street_zoom'}, 'street': {'type': 'string'}}}, {'type': 'object', 'required': ['action', 'street'], 'properties': {'action': {'const': 'street_end'}, 'street': {'type': 'string', 'description': 'The street whose end places the user wants.'}, 'categoryAny': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional kind filter for the end places ("is there any market at the end of this street?").'}, 'categoryNot': {'type': 'array', 'items': {'type': 'string'}}}}, {'type': 'object', 'required': ['action', 'value'], 'properties': {'value': {'enum': ['yes', 'no']}, 'action': {'const': 'confirm'}}}, {'type': 'object', 'required': ['action', 'index'], 'properties': {'index': {'type': 'integer', 'minimum': 1}, 'action': {'const': 'select'}}}], 'description': "The structured meaning of the user's words. Send exactly one of transcript or intent. Category filters take EXACT labels from the area's real categories (provided in every response). Unfiltered `across` returns the place on the opposite side with its own category; add categoryAny to ask for a specific kind. Full mapping rules: https://kviria.com/skill.md"}, 'rangeM': {'type': 'integer', 'default': 100, 'maximum': 1000, 'minimum': 50, 'description': 'Search radius around the anchor in meters (clamped to 50-1000).'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['gers'], 'properties': {'gers': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'name': {'type': ['string', 'null'], 'maxLength': 512}, 'category': {'type': ['string', 'null'], 'maxLength': 256}, 'location': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}}, 'distanceM': {'type': 'number', 'minimum': 0}, 'pendingConfirm': {'type': 'boolean', 'description': 'Marks the confirm-gate target; echo it back exactly as received.'}}}, 'maxItems': 50, 'description': 'The pending candidates from the previous response, echoed VERBATIM (including the pendingConfirm marker) so clarification answers and confirm yes/no bind mechanically.'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['gers'], 'properties': {'lat': {'type': 'number', 'description': 'Reference latitude as returned by Kviria.'}, 'lng': {'type': 'number', 'description': 'Reference longitude as returned by Kviria.'}, 'gers': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'name': {'type': ['string', 'null'], 'maxLength': 512}}}, 'maxItems': 5, 'description': 'Previously resolved places, most recent first, so "it" and "that cafe" resolve on later turns. Optional. Echo any lat/lng Kviria returned so distances stay real.'}, 'transcript': {'type': 'string', 'maxLength': 1000, 'minLength': 2, 'description': "The user's raw message (voice transcript or text), as spoken, typos and all. Do not normalize or paraphrase it. Mutually exclusive with `intent`."}, 'confirmation': {'enum': ['on', 'off'], 'type': 'string', 'default': 'on', 'description': '"on" (default): a single survivor emits a confirm decision, and the coordinate is released only after the user verifies it. "off": agents without a human in the loop get direct resolution.'}}, 'definitions': {'find_target': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['ref'], 'properties': {'ref': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['index'], 'properties': {'index': {'type': 'integer', 'minimum': 1}}}], 'description': 'An entity lookup: ref (gers from a previous response), name (exactly as returned), or index (1-based into echoed candidates). Raw coordinates belong to the spatial actions.'}, 'target_anchor': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['ref'], 'properties': {'ref': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['at'], 'properties': {'at': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}}}}, {'type': 'object', 'required': ['index'], 'properties': {'index': {'type': 'integer', 'minimum': 1}}}], 'description': 'The anchor to act on: ref (gers from a previous response), name (exactly as returned), index (1-based into echoed candidates), or at (raw coordinates). Never a free description.'}}}
출력 스키마
{'type': 'object', 'required': ['decision'], 'properties': {'target': {'$ref': '#/definitions/target', 'description': 'The resolved or pending target (on resolved, confirm, address).'}, 'category': {'type': 'string', 'description': 'The absent category on notFound decisions.'}, 'decision': {'enum': ['resolved', 'confirm', 'candidates', 'notFound', 'clarify'], 'type': 'string', 'description': 'The decision for this turn. An exact address resolves as "resolved" with the door facts riding target.address; several door clusters for one number come back as "candidates".'}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'required': ['test', 'result', 'reasonCode'], 'properties': {'test': {'type': 'string', 'description': 'Which gate produced this entry.'}, 'detail': {'type': 'object', 'description': 'Optional structured detail.'}, 'result': {'enum': ['pass', 'reject', 'warn'], 'type': 'string', 'description': 'How the gate concluded.'}, 'reasonCode': {'type': 'string', 'description': 'Stable enum explaining the outcome (e.g. winner_confirmed, kind_below_noise_floor, user_confirmed, single_survivor, out_of_coverage). Read the code, never the free text.'}}}, 'description': 'Why this answer: the gate trail behind the decision. Present none of this to the user; it exists for trust and auditability.'}, 'confirmed': {'type': 'boolean', 'description': 'True when the user verified the target through the confirm gate.'}, 'candidates': {'type': 'array', 'items': {'$ref': '#/definitions/target'}, 'description': 'The pending candidate set. Echo it back verbatim on the next turn.'}}, 'definitions': {'target': {'type': 'object', 'required': ['gers', 'name', 'category', 'confidence', 'location', 'distanceM'], 'properties': {'gers': {'type': 'string', 'description': 'Stable global entity id, persistent across turns and sessions.'}, 'name': {'type': ['string', 'null'], 'description': 'The place name as-is; never paraphrase it.'}, 'address': {'type': 'object', 'required': ['street'], 'properties': {'number': {'type': ['string', 'null']}, 'street': {'type': 'string'}}, 'description': 'Address facts when the target is a house/unit.'}, 'category': {'type': ['string', 'null'], 'description': 'The place category label.'}, 'location': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'description': 'Named lat/lng fields; no coordinate-array ordering ambiguity.'}, 'distanceM': {'type': 'number', 'minimum': 0, 'description': 'Straight-line meters from the anchor.'}, 'confidence': {'type': ['number', 'null'], 'maximum': 1, 'minimum': 0, 'description': 'Existence confidence, 0 to 1, or null.'}}}, 'find_target': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['ref'], 'properties': {'ref': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['index'], 'properties': {'index': {'type': 'integer', 'minimum': 1}}}], 'description': 'An entity lookup: ref (gers from a previous response), name (exactly as returned), or index (1-based into echoed candidates). Raw coordinates belong to the spatial actions.'}, 'target_anchor': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['ref'], 'properties': {'ref': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['at'], 'properties': {'at': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}}}}, {'type': 'object', 'required': ['index'], 'properties': {'index': {'type': 'integer', 'minimum': 1}}}], 'description': 'The anchor to act on: ref (gers from a previous response), name (exactly as returned), index (1-based into echoed candidates), or at (raw coordinates). Never a free description.'}}}
최근 도구 변경
유사한 MCP 서버
SupplyGraph.AI Data
Provides China-focused location, surrounding-area, company, industry-chain, property, population, retail, and regional business i…
Microburbs Australian Property Data
Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.
gisgp
Provides GIS geocoding, routing, spatial transformations, ArcGIS layer inspection and export, and location due diligence for haza…
ikeytz Einsatzgebiet-Karten
Provides public map and service-area data, geographic search, proximity calculations, area boundaries, business contact details, …
Namaste America
Helps users find Indian-American restaurants, temples, events, businesses, professionals, services, movies, offers, and community…
MolTravel
Searches and provides details for flights, hotels, rental cars, ferries, airports, travel experiences, destinations, country info…
EasyTerritory MCP
Builds, balances, analyzes, and edits sales or service territories, with geocoding, routing, scheduling, map visualization, and G…
MapMap
Provides mapping tools for routing, truck and ADR routing, geocoding, distance matrices, and isochrones.