List destination places
Filter up to 20 place cards published on a destination page by fields such as category, audience, or accessibility. This covers the page’s selection.
What it returns
This lists place cards already published on the current destination page. It is a bounded page subset, not the complete set of places in the destination.
For the full current contract and linked context, see the WebMCP manifest and the WebMCP overview.
WebMCP
Input schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Optional published place name or partial name."
},
"category": {
"type": "string",
"description": "Optional published category code."
},
"audience": {
"type": "string",
"description": "Optional published audience label or code."
},
"accessibility": {
"type": "string",
"description": "Optional published accessibility label or code."
},
"neighborhood": {
"type": "string",
"description": "Optional published neighborhood."
},
"administrativeArea": {
"type": "string",
"description": "Optional published administrative area."
},
"activityType": {
"type": "string",
"description": "Optional published activity type."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"items": {
"type": "array"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"items",
"count"
]
}
},
"required": [
"data"
]
}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 === 'list_destination_places');
if (!tool) throw new Error('list_destination_places is not registered for the current page.');
const result = await modelContext.executeTool(tool, {"limit": 5});
console.log(result);
Registration is page-scoped. Check getTools() before calling.
HTTP API
Request body schema
{
"type": "object",
"properties": {
"pagePath": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."
},
"name": {
"type": "string",
"description": "Optional published place name or partial name."
},
"category": {
"type": "string",
"description": "Optional published category code."
},
"audience": {
"type": "string",
"description": "Optional published audience label or code."
},
"accessibility": {
"type": "string",
"description": "Optional published accessibility label or code."
},
"neighborhood": {
"type": "string",
"description": "Optional published neighborhood."
},
"administrativeArea": {
"type": "string",
"description": "Optional published administrative area."
},
"activityType": {
"type": "string",
"description": "Optional published activity type."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"additionalProperties": false,
"required": [
"pagePath"
]
}Successful response schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"items": {
"type": "array"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"items",
"count"
]
}
},
"required": [
"data"
]
}Error response schema
{
"type": "object",
"properties": {
"schemaVersion": {
"const": "1"
},
"completeness": {
"enum": [
"invalid-input",
"not-found",
"unavailable"
]
},
"error": {
"type": "string"
}
},
"required": [
"schemaVersion",
"completeness",
"error"
],
"additionalProperties": false
}Send a JSON POST to https://govisit.ai/api/tools/v1/list_destination_places. See the HTTP API guide for shared conventions.
Use the pathname from an actual canonical GoVisit link, including its language prefix. The sample page path illustrates the shape; replace it with your selected published page. HTTP inputs add pagePath to the browser arguments. No cookies, browser session or inferred location are required. Queries, fragments, origins and cache-refresh flags are rejected. Language comes from the page path.
curl
curl --silent --show-error https://govisit.ai/api/tools/v1/list_destination_places \
-H 'Content-Type: application/json' \
--data '{"pagePath": "/en/destinations/cz/prague/", "limit": 5}'
JavaScript
const response = await fetch("https://govisit.ai/api/tools/v1/list_destination_places", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"pagePath": "/en/destinations/cz/prague/",
"limit": 5
})
});
const result = await response.json();
if (!response.ok) throw new Error(`${response.status}: ${result.error || "unavailable"}`);
console.log(result);
Python
import json
from urllib.error import HTTPError
from urllib.request import Request, urlopen
request = Request(
"https://govisit.ai/api/tools/v1/list_destination_places",
data=json.dumps({
"pagePath": "/en/destinations/cz/prague/",
"limit": 5
}).encode(),
headers={"Content-Type": "application/json"},
method="POST",
)
try:
with urlopen(request) as response:
result = json.load(response)
except HTTPError as error:
result = json.load(error)
raise RuntimeError(f"{error.code}: {result.get('error', 'unavailable')}") from error
print(result)
Successful results match the browser tool's published page projection, including its freshness and scope limits. The adapter uses GoVisit's existing page caches; it does not provide a fresh live availability check. An absent page returns 404; an unsupported section returns 400; unavailable or malformed page context returns 503. See Reliability for errors and shared request limits.
MCP
Tool arguments schema
{
"type": "object",
"properties": {
"pagePath": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."
},
"name": {
"type": "string",
"description": "Optional published place name or partial name."
},
"category": {
"type": "string",
"description": "Optional published category code."
},
"audience": {
"type": "string",
"description": "Optional published audience label or code."
},
"accessibility": {
"type": "string",
"description": "Optional published accessibility label or code."
},
"neighborhood": {
"type": "string",
"description": "Optional published neighborhood."
},
"administrativeArea": {
"type": "string",
"description": "Optional published administrative area."
},
"activityType": {
"type": "string",
"description": "Optional published activity type."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"additionalProperties": false,
"required": [
"pagePath"
]
}Structured result schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"items": {
"type": "array"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"items",
"count"
]
}
},
"required": [
"data"
]
}Connect a Streamable HTTP MCP client to https://govisit.ai/mcp and call list_destination_places. Use the HTTP API arguments shown above, including the canonical pagePath. Replace example paths with the published page you want to read.
const result = await client.callTool({
name: "list_destination_places",
arguments: {"pagePath": "/en/destinations/cz/prague/", "limit": 5},
});
if (result.isError) throw new Error(result.content[0]?.text ?? "GoVisit tool call failed");
console.log(result.structuredContent);
Agent Skills
Tool input schema
{
"type": "object",
"properties": {
"pagePath": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Canonical GoVisit page path supplying this tool's published context; no origin, query or fragment."
},
"name": {
"type": "string",
"description": "Optional published place name or partial name."
},
"category": {
"type": "string",
"description": "Optional published category code."
},
"audience": {
"type": "string",
"description": "Optional published audience label or code."
},
"accessibility": {
"type": "string",
"description": "Optional published accessibility label or code."
},
"neighborhood": {
"type": "string",
"description": "Optional published neighborhood."
},
"administrativeArea": {
"type": "string",
"description": "Optional published administrative area."
},
"activityType": {
"type": "string",
"description": "Optional published activity type."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"additionalProperties": false,
"required": [
"pagePath"
]
}Tool output schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"items": {
"type": "array"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"items",
"count"
]
}
},
"required": [
"data"
]
}After installing GoVisit skills, ask your assistant to use govisit-list-destination-places. The skill calls the GoVisit HTTP API.
Find the destination on GoVisit and copy its profile link.
Use GoVisit to list up to five places published on [destination page URL]. Include each place’s name and profile link.
Skill package and contract
Skill source · Complete package · HTTP contract
The complete package includes its MIT license and versioned contract. GoVisit data remains subject to the GoVisit Data Use License.