Get destination activities
Read up to 20 activities published on a destination page, with freshness metadata. Use the page’s selection as context for planning a visit.
What it returns
This returns activities already published on the current destination page. It is not a global activity search, itinerary planner, or live schedule.
For the full current contract and linked context, see the WebMCP manifest and the WebMCP overview.
WebMCP
Input schema
{
"type": "object",
"properties": {},
"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_activities');
if (!tool) throw new Error('list_destination_activities is not registered for the current page.');
const result = await modelContext.executeTool(tool, {});
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."
}
},
"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_activities. 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_activities \
-H 'Content-Type: application/json' \
--data '{"pagePath": "/en/destinations/cz/prague/"}'
JavaScript
const response = await fetch("https://govisit.ai/api/tools/v1/list_destination_activities", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"pagePath": "/en/destinations/cz/prague/"
})
});
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_activities",
data=json.dumps({
"pagePath": "/en/destinations/cz/prague/"
}).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."
}
},
"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_activities. 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_activities",
arguments: {"pagePath": "/en/destinations/cz/prague/"},
});
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."
}
},
"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-activities. The skill calls the GoVisit HTTP API.
Find your destination on GoVisit and copy its profile link.
Use GoVisit to list the activities published for [destination page URL]. Summarize the available descriptions and link to their sources.
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.