List collection places
Filter up to 20 place cards published in a destination collection by name, category, or other available fields. The result covers the page’s selection.
What it returns
This lists a bounded set of place cards published in the current collection. It is not a complete search over all GoVisit places.
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_collection_places');
if (!tool) throw new Error('list_collection_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_collection_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_collection_places \
-H 'Content-Type: application/json' \
--data '{"pagePath": "/en/destinations/cz/prague/collections/family/", "limit": 5}'
JavaScript
const response = await fetch("https://govisit.ai/api/tools/v1/list_collection_places", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"pagePath": "/en/destinations/cz/prague/collections/family/",
"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_collection_places",
data=json.dumps({
"pagePath": "/en/destinations/cz/prague/collections/family/",
"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_collection_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_collection_places",
arguments: {"pagePath": "/en/destinations/cz/prague/collections/family/", "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-collection-places. The skill calls the GoVisit HTTP API.
Copy the link to the GoVisit collection whose places you want to explore.
Use GoVisit to list up to five places in [collection page URL]. Include their names and GoVisit profile links.
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.