Get current traveler location

Read explicitly supplied, current traveler location without prompting for permission.

Availability

This tool runs through browser WebMCP on a GoVisit page that registers get_current_location. It needs that page’s published context; it has no stateless HTTP endpoint or generated Agent Skill.

Call in a compatible browser

const modelContext = document.modelContext;
if (!modelContext) throw new Error("This browser does not expose WebMCP on this page.");
const tool = (await modelContext.getTools()).find((entry) => entry.name === 'get_current_location');
if (!tool) throw new Error('get_current_location is not registered for the current page.');
const result = await modelContext.executeTool(tool, {});
console.log(result);

Registration is page-scoped; the exact URL patterns below the contract are generated from the catalog. Check getTools() before calling.

Input and output contract

Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output schema
{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "const": "1"
    },
    "completeness": {
      "type": "string"
    },
    "error": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "available",
            "needs-permission",
            "permission-denied",
            "unavailable",
            "stale",
            "loading",
            "invalid-input"
          ]
        },
        "coordinates": {
          "type": "object",
          "properties": {
            "latitude": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "longitude": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          },
          "required": [
            "latitude",
            "longitude"
          ],
          "additionalProperties": false
        },
        "accuracyMeters": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "observedAt": {
          "type": "string",
          "format": "date-time"
        },
        "provenance": {
          "enum": [
            "host",
            "user-supplied",
            "browser-geolocation"
          ]
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "schemaVersion",
    "data"
  ]
}

The schemas above are rendered server-side from config/webmcp-tools.json, the canonical reviewed tool catalog. The WebMCP manifest also publishes the machine-readable contract; native RegisteredTool entries advertise an output-contract URL because that interface does not provide an inline outputSchema field.

Interpretation limits

This is an explicit, read-only browser-context read. It never prompts for permission or infers a location from the current page. Treat missing, denied, unavailable, or stale results as unknown; the published position expires after five minutes.

For the full current contract and linked context, see the WebMCP manifest and the WebMCP overview.

Last updated: October 9, 2026