Skip to main content
Glama

Server Details

Location understanding for AI agents: know where, then navigate there. Beta: contiguous US.

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
94.6% over 30 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.8/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of misselection between tools. Its purpose (resolve a place from a user turn plus state) is stated unambiguously, and the description enumerates the response modes that steer the agent's next move.

Naming Consistency5/5

With a single tool named after the server, there is no pattern to violate and no mixed convention. The name is a plain lowercase noun, readable and stable.

Tool Count4/5

A single tool is thin for most servers, but here the entire domain is one stateful operation (resolve the place the user means), so one tool is a defensible design rather than an oversight. It earns its place by handling resolve, confirm, disambiguate, and error paths through the state field.

Completeness5/5

The description covers the full conversational lifecycle: first call with anchor, subsequent calls with state, all terminal outcomes (one, one_unconfirmed, many, none, unclear, not_a_place_request), coverage limits, and both documented error codes. No obvious agent-facing gap remains.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedkviria34 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / definitions
        Removed value: -{
        -  "find_target": {
        -    "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.",
        -    "oneOf": [
        -      {
        -        "properties": {
        -          "ref": {
        -            "minLength": 1,
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "ref"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "name": {
        -            "minLength": 1,
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "index": {
        -            "minimum": 1,
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "index"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "type": "object"
        -  },
        -  "target_anchor": {
        -    "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.",
        -    "oneOf": [
        -      {
        -        "properties": {
        -          "ref": {
        -            "minLength": 1,
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "ref"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "name": {
        -            "minLength": 1,
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "at": {
        -            "properties": {
        -              "lat": {
        -                "type": "number"
        -              },
        -              "lng": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "lat",
        -              "lng"
        -            ],
        -            "type": "object"
        -          }
        -        },
        -        "required": [
        -          "at"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "index": {
        -            "minimum": 1,
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "index"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "type": "object"
        -  }
        -}
      • removedInput schema / oneOf
        Removed value: -[
        -  {
        -    "required": [
        -      "transcript"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "intent"
        -    ]
        -  }
        -]
      • addedInput schema / properties / anchor / additionalProperties
        Added value: +false
      • changedInput schema / properties / anchor / description
        Previous value: -"The user's current position - Kviria resolves relative to this point."New value: +"The user's current position - Kviria resolves relative to this point. Required on the first call of a conversation; later calls may leave it out while the user has not moved."
      • addedInput schema / properties / anchor / properties / lat / maximum
        Added value: +90
      • addedInput schema / properties / anchor / properties / lat / minimum
        Added value: +-90
      • addedInput schema / properties / anchor / properties / lng / maximum
        Added value: +180
      • addedInput schema / properties / anchor / properties / lng / minimum
        Added value: +-180
      • removedInput schema / properties / candidates
        Removed value: -{
        -  "description": "The pending candidates from the previous response, echoed VERBATIM (including the pendingConfirm marker) so clarification answers and confirm yes/no bind mechanically.",
        -  "items": {
        -    "properties": {
        -      "category": {
        -        "maxLength": 256,
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "distanceM": {
        -        "minimum": 0,
        -        "type": "number"
        -      },
        -      "gers": {
        -        "maxLength": 128,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "location": {
        -        "properties": {
        -          "lat": {
        -            "type": "number"
        -          },
        -          "lng": {
        -            "type": "number"
        -          }
        -        },
        -        "required": [
        -          "lat",
        -          "lng"
        -        ],
        -        "type": "object"
        -      },
        -      "name": {
        -        "maxLength": 512,
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "pendingConfirm": {
        -        "description": "Marks the confirm-gate target; echo it back exactly as received.",
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "gers"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 50,
        -  "type": "array"
        -}
      • changedInput schema / properties / confirmation / description
        Previous value: -"\"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."New value: +"\"on\" (default): a place the user named only in part is returned as one_unconfirmed, and its coordinate is released only after the user verifies it. \"off\": it is returned as one immediately, for agents without a human in the loop."
      • removedInput schema / properties / intent
        Removed value: -{
        -  "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",
        -  "oneOf": [
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "find"
        -        },
        -        "target": {
        -          "$ref": "#/definitions/find_target"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "target"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "search"
        -        },
        -        "categoryAny": {
        -          "description": "Exact labels the user WANTS (e.g. [\"mexican_restaurant\"])",
        -          "items": {
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        "categoryNot": {
        -          "description": "Exact labels the user rejects (e.g. [\"cafe\"])",
        -          "items": {
        -            "type": "string"
        -          },
        -          "type": "array"
        -        }
        -      },
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "neighbors"
        -        },
        -        "of": {
        -          "$ref": "#/definitions/target_anchor"
        -        },
        -        "side": {
        -          "enum": [
        -            "left",
        -            "right"
        -          ]
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "of"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "near"
        -        },
        -        "categoryAny": {
        -          "items": {
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        "categoryNot": {
        -          "items": {
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        "of": {
        -          "$ref": "#/definitions/target_anchor"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "of"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "across"
        -        },
        -        "categoryAny": {
        -          "items": {
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        "of": {
        -          "$ref": "#/definitions/target_anchor"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "of"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "along"
        -        },
        -        "n": {
        -          "minimum": 1,
        -          "type": "integer"
        -        },
        -        "street": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "street",
        -        "n"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "at_address"
        -        },
        -        "number": {
        -          "type": "string"
        -        },
        -        "street": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "number"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "street_zoom"
        -        },
        -        "street": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "street"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "street_end"
        -        },
        -        "categoryAny": {
        -          "description": "Optional kind filter for the end places (\"is there any market at the end of this street?\").",
        -          "items": {
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        "categoryNot": {
        -          "items": {
        -            "type": "string"
        -          },
        -          "type": "array"
        -        },
        -        "street": {
        -          "description": "The street whose end places the user wants.",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "street"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "confirm"
        -        },
        -        "value": {
        -          "enum": [
        -            "yes",
        -            "no"
        -          ]
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "value"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "action": {
        -          "const": "select"
        -        },
        -        "index": {
        -          "minimum": 1,
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "action",
        -        "index"
        -      ],
        -      "type": "object"
        -    }
        -  ],
        -  "type": "object"
        -}
      • changedInput schema / properties / rangeM / description
        Previous value: -"Search radius around the anchor in meters (clamped to 50-1000)."New value: +"Search radius around the anchor in meters (clamped to 50-350)."
      • changedInput schema / properties / rangeM / maximum
        Previous value: -1000New value: +350
      • removedInput schema / properties / references
        Removed value: -{
        -  "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.",
        -  "items": {
        -    "properties": {
        -      "gers": {
        -        "maxLength": 128,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "lat": {
        -        "description": "Reference latitude as returned by Kviria.",
        -        "type": "number"
        -      },
        -      "lng": {
        -        "description": "Reference longitude as returned by Kviria.",
        -        "type": "number"
        -      },
        -      "name": {
        -        "maxLength": 512,
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "gers"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 5,
        -  "type": "array"
        -}
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "The `state` field of the previous kviria response, copied character for character: that field only, never the whole response, and never shortened. Empty string on the first call.",
        +  "maxLength": 2263,
        +  "type": "string"
        +}
      • changedInput schema / properties / transcript / description
        Previous value: -"The user's raw message (voice transcript or text), as spoken, typos and all. Do not normalize or paraphrase it. Mutually exclusive with `intent`."New value: +"The user's whole last turn, word for word: yes or no, corrections, hesitations and everything around the place included. Never shorten, rephrase, correct or complete it. If one turn arrived in pieces, join them in order."
      • changedInput schema / properties / transcript / minLength
        Previous value: -2New value: +1
      • changedInput schema / required
        Previous value: -[
        -  "anchor"
        -]New value: +[
        +  "transcript"
        +]
      • removedOutput schema / definitions / find_target
        Removed value: -{
        -  "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.",
        -  "oneOf": [
        -    {
        -      "properties": {
        -        "ref": {
        -          "minLength": 1,
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "ref"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "name": {
        -          "minLength": 1,
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "name"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "index": {
        -          "minimum": 1,
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "index"
        -      ],
        -      "type": "object"
        -    }
        -  ],
        -  "type": "object"
        -}
      • addedOutput schema / definitions / target / properties / acrossStreet
        Added value: +{
        +  "description": "Set when the user named a street to be across, or when the place is on a corner and so has two acrosses: one answer per street, each naming the street it is across.",
        +  "type": "string"
        +}
      • addedOutput schema / definitions / target / properties / baseDistanceM
        Added value: +{
        +  "description": "Set when the answer is relative to a place (near, across, next to): metres from that place. distanceM stays the distance from the user.",
        +  "type": "number"
        +}
      • addedOutput schema / definitions / target / properties / intersection
        Added value: +{
        +  "description": "Set when the target is a street corner: every street that meets there. Such a target has category and confidence null.",
        +  "properties": {
        +    "streets": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "streets"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / definitions / target / properties / location / description
        Previous value: -"Named lat/lng fields; no coordinate-array ordering ambiguity."New value: +"Named lat/lng fields; no coordinate-array ordering ambiguity. Absent on one_unconfirmed: the coordinate comes with the user's yes."
      • changedOutput schema / definitions / target / required
        Previous value: -[
        -  "gers",
        -  "name",
        -  "category",
        -  "confidence",
        -  "location",
        -  "distanceM"
        -]New value: +[
        +  "gers",
        +  "name",
        +  "category",
        +  "confidence",
        +  "distanceM"
        +]
      • removedOutput schema / definitions / target_anchor
        Removed value: -{
        -  "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.",
        -  "oneOf": [
        -    {
        -      "properties": {
        -        "ref": {
        -          "minLength": 1,
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "ref"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "name": {
        -          "minLength": 1,
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "name"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "at": {
        -          "properties": {
        -            "lat": {
        -              "type": "number"
        -            },
        -            "lng": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "lat",
        -            "lng"
        -          ],
        -          "type": "object"
        -        }
        -      },
        -      "required": [
        -        "at"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "properties": {
        -        "index": {
        -          "minimum": 1,
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "index"
        -      ],
        -      "type": "object"
        -    }
        -  ],
        -  "type": "object"
        -}
      • changedOutput schema / properties / candidates / description
        Previous value: -"The pending candidate set. Echo it back verbatim on the next turn."New value: +"The candidates to present on many. Never send them back: send state."
      • changedOutput schema / properties / category / description
        Previous value: -"The absent category on notFound decisions."New value: +"The category that was asked for and is absent, on a none decision."
      • changedOutput schema / properties / decision / description
        Previous value: -"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\"."New value: +"The decision for this turn: how many answers there are and whether the single answer is certain, or not_a_place_request when the user's words are not about a place. An exact address is \"one\" with the door facts riding target.address; several door clusters for one number come back as \"many\"."
      • changedOutput schema / properties / decision / enum
        Previous value: -[
        -  "resolved",
        -  "confirm",
        -  "candidates",
        -  "notFound",
        -  "clarify"
        -]New value: +[
        +  "one",
        +  "one_unconfirmed",
        +  "many",
        +  "none",
        +  "unclear",
        +  "not_a_place_request"
        +]
      • changedOutput schema / properties / evidence / items / properties / reasonCode / description
        Previous value: -"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."New value: +"Stable enum explaining the outcome (e.g. user_confirmed, single_survivor_pending, partial_name, out_of_coverage). Read the code, never the free text."
      • addedOutput schema / properties / state
        Added value: +{
        +  "description": "The conversation state. Send it back unchanged as `state` on the next call.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / target / description
        Previous value: -"The resolved or pending target (on resolved, confirm, address)."New value: +"The settled target (one), or the target waiting for the user's yes or no (one_unconfirmed, without a location)."
      • changedOutput schema / required
        Previous value: -[
        -  "decision"
        -]New value: +[
        +  "decision",
        +  "evidence",
        +  "state"
        +]
  2. 1 tool update
    • First observedkviria

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources