Integrate Fever's global event catalog into your applications and AI assistants.
Connect Claude, Cursor, or any MCP-compatible client directly to Fever's event catalog. Search cities, venues and events, no extra setup required.
There are two ways to connect, and which one you need depends on who is calling. Pick yours before following the steps.
Individuals — sign in from your MCP client
A person using Claude, ChatGPT, Cursor or any other MCP client authenticates through the OAuth 2.0 sign-in we already have. It is self-service: there is no form to fill in and nothing to request from us. Follow steps 1 to 3 below.
Companies — machine-to-machine
A company whose integration runs unattended, with no person at a browser to sign in, needs the machine-to-machine path instead. Credentials for it are issued per integration and are not self-service, so this path starts by getting in touch with us at data-ai@feverup.com. The steps are under "Connecting a server-side integration" below.
1. Configure your MCP client
Add the Fever MCP server to your client configuration. For Claude Desktop, add the following to your claude_desktop_config.json:
{
"mcpServers": {
"fever": {
"url": "https://data-search.apigw.feverup.com/mcp/"
}
}
}
2. Sign in with OAuth 2.0
On first use, your MCP client opens a browser window to log in. After that everything is handled automatically: the session renews itself, so there is no daily sign-in to repeat. Sessions do have a 30-day ceiling — imposed by the MCP framework, not by the identity provider — after which you sign in once more.
3. Start using it
Ask your AI assistant to search for cities, venues or events on Fever and it will use the MCP tools automatically.
Connecting a server-side integration
This is the machine-to-machine path described above, for a company running an integration with no person at a browser. It uses the OAuth 2.0 client_credentials grant instead of a browser sign-in.
Start by getting in touch. Dynamic Client Registration is not supported on this path, so credentials are not self-service: we issue a client_id and client_secret per integration. Write to data-ai@feverup.com telling us what you are building, and we will send the pair together with the API identifier to use as the audience.
Then exchange those credentials for an access token, requesting the mcp:service scope:
curl --request POST \
--url https://feverup.us.auth0.com/oauth/token \
--header 'content-type: application/json' \
--data '{
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"audience": "YOUR_API_IDENTIFIER",
"scope": "mcp:service"
}'
Then call https://data-search.apigw.feverup.com/mcp/ with that token in an Authorization: Bearer <access_token> header. No refresh token is involved on this path: cache the token and request a new one when it expires, using the expires_in value from the response to know when.
Search for events, activities, and experiences available in a specific city through Fever. Filter by date range or venue, sort by popularity or price, and paginate through results.
Ideal for building event discovery features, recommendation engines, or letting AI assistants help users find things to do.
| Parameter | Type | Required | Description |
|---|---|---|---|
city_code | string | null | Required if no coordinates | 3-letter city code (e.g. MAD, NYC). Can be obtained via search_cities. Ignored when latitude/longitude are provided |
latitude | number | null | Required if no city_code | Latitude (-90 to 90). Must be used together with longitude. When provided, city_code is ignored. Example: 40.4168 for Madrid |
longitude | number | null | Required if no city_code | Longitude (-180 to 180). Must be used together with latitude. Example: -3.7038 for Madrid |
radius | integer | null | Optional | Search radius in meters. Only works with coordinates. Example: 5000 for 5 km. Default: no limit |
venue_id | integer | null | Optional | Only return events held at this venue. Use search_venues to turn a venue name into a venue_id, and pass that venue's city_code alongside it |
query | string | Optional | Search term for specific events (default: "" for all). It matches event titles and descriptions, not venue names — to search by venue, use search_venues |
sort_by | enum | Optional | popularity (default), price, rating, closest_session, distance (requires coordinates), random |
locale | string | Optional | Language code affecting content language (e.g. en, es). Default: en |
page | integer | Optional | Page number starting from 0 (default: 0) |
page_size | integer | Optional | Results per page, max 100 (default: 12). Values that are not a multiple of 3 are rounded up, so the card grid never ends in an orphan row |
start_datetime | string | null | Optional | ISO 8601 datetime (any timezone offset). Only sessions starting at or after this time are returned. Example: 2025-10-17T19:00:00Z |
end_datetime | string | null | Optional | ISO 8601 datetime (any timezone offset). Only sessions starting at or before this time are returned. Example: 2025-10-17T23:59:59Z |
include_description | boolean | Optional | If true, includes keywords and description per event. Useful for discovering event features and typology (default: false) |
id, name — Event identifier and titleurl — Direct link to the event on Fevercover_image_url — Main event imagerating — Formatted string, e.g. "4.8/5 (1250 reviews)"price — Formatted string, e.g. "From 25.00 EUR" or "Free"min_price, max_price — The same prices as numbers, in currency. max_price is only present when the event has a real price rangecurrency — ISO 4217 currency code, e.g. EURlocation — Venue and city, e.g. "Teatro Real, Madrid"availability — Up to three upcoming sessions as a human-readable string, then "and N more sessions". Restricted to the requested interval when a date filter is appliedsession_start_times — The same sessions as ISO 8601 local datetimes, with no UTC offset. Read them together with timezone, never as UTCtimezone — IANA timezone of the event's city or venue, e.g. Europe/Madridartists, music_genres — Line-up and genres, for events annotated with themkeywords, description — Only included if include_description=truevenue — The venue the search was scoped to. Returned only when venue_id was passed, with the same shape as a search_venues result, so a venue-to-events pivot needs no second callcount, next, previous — Pagination infoFields with no value are left out of the response rather than returned as null: an event whose price is hidden carries no min_price, and one with no annotated line-up carries no artists.
Find cities where Fever operates and offers events/activities. Useful for discovering available markets, looking up city codes for use with search_events, or browsing Fever's global presence.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Required | City name or search term. Use '' for all cities |
locale | string | Required | Language code affecting localization (e.g. en, es) |
city_code | string | null | Optional | 3-letter city code (e.g. MAD, NYC, LON, BCN) |
only_suggested | boolean | Optional | If true, returns only top/popular cities (default: false) |
Cities come back grouped into sections rather than as one flat list:
fields — The sections. Each carries a type, name, uses_location, count and its own results arrayhas_results — Whether those sections hold real matches, as opposed to the static suggestions returned when nothing matchedEach city inside a section's results includes:
city_id, city_code — Unique ID and 3-letter code (e.g. MAD, NYC)city_name — Localized city namelocation — Full location string, e.g. "Madrid, Spain"is_top_city — Whether the city is a major market with high inventoryFind venues where Fever runs events — theatres, museums, concert halls, landmarks. Use it for venue-first discovery such as "what is on at the WiZink Center" or "venues near me", and for questions about a venue itself: its street address, its coordinates, or whether Fever publishes a page for it.
Do not pass a venue name as query to search_events for this — that searches event titles and descriptions, not venues, and returns unrelated events in the same area. To list what is on at a venue, take its venue_id and city_code from here and pass both to search_events.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Optional | Venue name or search term (default: "", which browses all venues) |
locale | string | Optional | Language code affecting content language (e.g. en, es). Default: en |
latitude | number | null | Optional | Latitude (-90 to 90). Must be used together with longitude. Example: 40.4168 for Madrid |
longitude | number | null | Optional | Longitude (-180 to 180). Must be used together with latitude. Example: -3.7038 for Madrid |
radius | integer | null | Optional | Search radius in meters. Requires both coordinates. Example: 5000 for 5 km |
limit | integer | Optional | Maximum venues to return, max 50 (default: 10) |
country_code | string | null | Optional | ISO 3166-1 alpha-2 country filter, two letters (e.g. ES, US) |
A geo search returns the most relevant venues within the radius and then re-orders that set by distance. It is not the N nearest venues.
Within a single city the geographic decay is flat up to 50 km, so popularity — not proximity — decides which venues make the set; distance only decides the order they come back in. Reading distance_km ascending as "nearest first" is therefore wrong: a closer but less popular venue can be absent from a set that includes a farther, more popular one. Narrow the radius when you need strict proximity.
venue_id, name — Venue identifier and namelocation — Full location string, e.g. "Madrid, Spain" or "Branson, MO, United States"address — Street addresslatitude, longitude — Coordinates in decimal degrees (WGS84)distance_km — Great-circle distance from the searched point. Only present when searching by coordinatescover_image_url — Venue imagevenue_page_url — Link to the venue's page on Fever. Absent when Fever publishes no page for the venuecountry_code — ISO 3166-1 alpha-2 country codecity_code — 3-letter Fever city code. Pass it as city_code to search_eventsslug — The venue slug on Fever. Optional: absent for venues with no Fever place pagecity_slug — The slug of the venue's city on Fevercount — Number of venues returnedGetting Started
client_credentials grant, for integrations that run unattended with no person at a browser to sign in. Dynamic Client Registration is not supported on that path, so credentials are not self-service — we issue a client_id and client_secret per integration. Get in touch at data-ai@feverup.com, tell us what you are building, and we will send the pair together with the API identifier to use as the audience. The scope is mcp:service.
Usage
search_cities to find cities where Fever operates, search_venues to find the venues Fever runs events at, and search_events to discover events, activities, and experiences. You can search by keyword, location, coordinates, venue, date range, and more.
Support