Citybook

Live Calgary events for AI agents.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'fetch_events' suggests web access but openWorldHint=falsein fetch_events

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~477Tokens (tool definitions)
~4.4 KBTypical response size
Minimal attention impact (0.37% of 128k context)

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-http

What it can do

Tool inventory

Tools (1)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

retrieve_data
Get details about [item] from Citybook
Expected tools: fetch_events
fetch_info
Fetch [information type] using Citybook
Expected tools: fetch_events

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded1 tools
verifiedversion not recorded1 tools