globick-mcp
A local MCP server that connects the Globick activities API to Claude Desktop, enabling natural language search and filtering of the activities catalogue.
README
globick-mcp
A local MCP server that connects the Globick activities API to Claude Desktop, so you can search and filter the catalogue in natural language:
"Find Barcelona activities with separate adult and child rates, under €30, that are refundable." "Which activities have no images? Group them by operator." "Give me a data-quality report for the Barcelona inventory."
Runs entirely on this machine over stdio — nothing to deploy. It reuses the
battle-tested globick SDK from ../globick-cli (auth caching,
per-endpoint rate limiting, 202/429 retries) as an editable path dependency.
Setup
cd ~/Dev/globick-mcp
uv sync # creates .venv and installs deps + ../globick-cli
cp .env.example .env # already done — Globick sandbox credentials live here
Claude Desktop wiring (~/Library/Application Support/Claude/claude_desktop_config.json,
already configured):
{
"mcpServers": {
"globick": {
"command": "/Users/gabriel/Dev/globick-mcp/.venv/bin/globick-mcp",
"args": []
}
}
}
No env block needed: the server loads .env by absolute path (Claude Desktop's
cwd is not this project). Restart Claude Desktop after changing the config or the code.
Tools
| Tool | What it does |
|---|---|
globick_list_locations |
Find a city's CIT_… code (~1,500 cities; pass name_contains) |
globick_list_categories |
Activity categories |
globick_search_activities |
Fast keyword/city search (lightweight stubs) |
globick_get_activity |
Curated detail: rates, refund policy, content checklist, portal link |
globick_filter_activities |
The star — filter by rate types (adult/child/group/…), images, content completeness, languages, price, duration, refundability, sandbox bookability |
globick_inventory_report |
Data-quality report: % with images, content-completeness histogram, language coverage, rate-category mix, price stats, operators with most content gaps |
globick_get_availability |
Available dates (+ sessions with times/prices for ranges ≤ 3 days) |
All tools are read-only. Rate types are semantic categories derived from each
rate's display name + age limits (the API's rateType codes are supplier-internal).
How filtering works (v1: live fetching)
Search returns lightweight stubs; the filters need per-activity detail. The filter
and report tools fetch details live (4 workers, capped by max_fetch, respecting the
client's rate limits) and memoize them in-process, so repeat calls in one Claude
Desktop session are instant and extend coverage. Every response carries a
coverage_note saying how much of the candidate set was examined. Activities whose
detail endpoint 404s or 500s in the sandbox (whole supplier ranges do) are cached as
known-missing and counted honestly.
Demo crib sheet
Warm up before going on stage: ask one filter question first so the cache fills, or narrate the first fetch as "indexing the city live".
- Warm open — "Which cities does Globick have activities in? Search Barcelona for Sagrada Familia."
- Detail — "Show me everything about the top one — prices, refund policy, languages." (the
portal_urlopens the activity in the Globick portal) - The star — "Find Barcelona activities with separate adult and child rates, under €30, that are refundable."
- Data-quality angle — "Which activities have no images or no description? Group by operator — who should the content team chase first?" (spoiler: Musement activities have zero images in the sandbox)
- Closer — "Give me a data-quality report for the Barcelona inventory." → pitch: this server, white-labeled, is what OTA clients could plug into their own AI.
Useful sandbox facts: Barcelona is CIT_160008 (786 activities; ignore the
"Location not identified" duplicate). Only test/certification suppliers book
end-to-end (bookable_in_sandbox); a 68xxx Musement range 500s on detail.
Tests
uv run pytest # 31 unit tests, no network (fixtures from real sandbox payloads)
uv run mcp dev src/globick_mcp/server.py # MCP Inspector for manual smoke
Future improvements
- Pre-warmed persistent cache — a SQLite cache (
search_index+detailstables) filled by apython -m globick_mcp.sync <city>command run before the demo would give instant, full-city coverage for filters and reports (nomax_fetchcap, survives restarts). The in-memory memo insrc/globick_mcp/fetch.pyis the seam where it plugs in. - Booking tool group — create/confirm/cancel orders reusing
globick/booking.pyvalidations, gated behindGLOBICK_MCP_ENABLE_BOOKING=1; confirm is irreversible and must never auto-retry. - AI gap-translation tool — port of the CLI's NXT-16 feature (translate activity content into locales the supplier doesn't provide).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.