Citybook
Live Calgary events for AI agents.
Should I use this
Quality & Safety
Findings (1)
- LOWin fetch_events
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"citybook": {
"url": "https://mcp.citybook.ai/mcp"
}
}
}Remote endpoints
https://mcp.citybook.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (1)
🟢fetch_events(city, neighbourhood, sector_id, after, before, ...)
Find upcoming local events — community programs, markets, festivals, fitness classes, workshops, and entertainment. Filter by city, neighbourhood, sector, date range, and accessibility flags. Returns rich metadata including geo coordinates, images, structured pricing, recurrence, and accessibility info. Connect and list the paid event tool without a Citybook key. Credential-free fetch_events calls require x402 payment; other tools require Bearer authentication.
Input Schema
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name (e.g. Calgary, Banff)"
},
"neighbourhood": {
"type": "string",
"description": "Neighbourhood within the city"
},
"sector_id": {
"type": "string",
"description": "One of: /events/community, /events/government, /events/market, /events/fitness, /events/education, /events/entertainment, /events/tourism"
},
"after": {
"type": "string",
"description": "ISO 8601 datetime — only events starting after this time."
},
"before": {
"type": "string",
"description": "ISO 8601 datetime — only events starting before this time."
},
"pet_friendly": {
"type": "boolean",
"description": "Filter for pet-friendly events only."
},
"family_friendly": {
"type": "boolean",
"description": "Filter for family-friendly events only."
},
"indoor_outdoor": {
"type": "string",
"description": "Filter by venue type: 'indoor', 'outdoor', or 'both'."
},
"commitment": {
"type": "string",
"description": "Filter by engagement type: 'drop_in' (no registration), 'register_required' (single-occurrence event needing RSVP/registration), or 'multi_week_program' (recurring multi-week series like 8-week soccer)."
},
"since": {
"type": "string",
"description": "ISO 8601 datetime — only events submitted after this time. Use for incremental polling."
},
"limit": {
"type": "number",
"description": "Max results (default 10, max 50)"
},
"offset": {
"type": "number",
"description": "Skip first N results for pagination. Default 0."
}
},
"required": [
"city"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Recommended Prompts
fetch_eventsfetch_eventsCommunity
Evidence