Fever Developer Portal — Tools and APIs for Live Entertainment
Fever Developer Portal
Fever Developer Portal

Integrate Fever's global event catalog into your applications and AI assistants.

Fever event discovery MCP Server

Connect Claude, Cursor, or any MCP-compatible client directly to Fever's event catalog. Search cities, venues and events, no extra setup required.

Get started in minutes

Two ways to connect — OAuth 2.0 sign-in for individuals, or machine-to-machine credentials for companies.

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.

Available Tools

search_events

Description

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.

Parameters

ParameterTypeRequiredDescription
city_codestring | nullRequired if no coordinates3-letter city code (e.g. MAD, NYC). Can be obtained via search_cities. Ignored when latitude/longitude are provided
latitudenumber | nullRequired if no city_codeLatitude (-90 to 90). Must be used together with longitude. When provided, city_code is ignored. Example: 40.4168 for Madrid
longitudenumber | nullRequired if no city_codeLongitude (-180 to 180). Must be used together with latitude. Example: -3.7038 for Madrid
radiusinteger | nullOptionalSearch radius in meters. Only works with coordinates. Example: 5000 for 5 km. Default: no limit
venue_idinteger | nullOptionalOnly 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
querystringOptionalSearch term for specific events (default: "" for all). It matches event titles and descriptions, not venue names — to search by venue, use search_venues
sort_byenumOptionalpopularity (default), price, rating, closest_session, distance (requires coordinates), random
localestringOptionalLanguage code affecting content language (e.g. en, es). Default: en
pageintegerOptionalPage number starting from 0 (default: 0)
page_sizeintegerOptionalResults 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_datetimestring | nullOptionalISO 8601 datetime (any timezone offset). Only sessions starting at or after this time are returned. Example: 2025-10-17T19:00:00Z
end_datetimestring | nullOptionalISO 8601 datetime (any timezone offset). Only sessions starting at or before this time are returned. Example: 2025-10-17T23:59:59Z
include_descriptionbooleanOptionalIf true, includes keywords and description per event. Useful for discovering event features and typology (default: false)

Example Response Fields

  • id, name — Event identifier and title
  • url — Direct link to the event on Fever
  • cover_image_url — Main event image
  • rating — 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 range
  • currency — ISO 4217 currency code, e.g. EUR
  • location — 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 applied
  • session_start_times — The same sessions as ISO 8601 local datetimes, with no UTC offset. Read them together with timezone, never as UTC
  • timezone — IANA timezone of the event's city or venue, e.g. Europe/Madrid
  • artists, music_genres — Line-up and genres, for events annotated with them
  • keywords, description — Only included if include_description=true
  • venue — 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 call
  • count, next, previous — Pagination info

Fields 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.

search_cities

Description

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.

Parameters

ParameterTypeRequiredDescription
querystringRequiredCity name or search term. Use '' for all cities
localestringRequiredLanguage code affecting localization (e.g. en, es)
city_codestring | nullOptional3-letter city code (e.g. MAD, NYC, LON, BCN)
only_suggestedbooleanOptionalIf true, returns only top/popular cities (default: false)

Example Response Fields

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 array
  • has_results — Whether those sections hold real matches, as opposed to the static suggestions returned when nothing matched

Each 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 name
  • location — Full location string, e.g. "Madrid, Spain"
  • is_top_city — Whether the city is a major market with high inventory
search_venues

Description

Find 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.

Parameters

ParameterTypeRequiredDescription
querystringOptionalVenue name or search term (default: "", which browses all venues)
localestringOptionalLanguage code affecting content language (e.g. en, es). Default: en
latitudenumber | nullOptionalLatitude (-90 to 90). Must be used together with longitude. Example: 40.4168 for Madrid
longitudenumber | nullOptionalLongitude (-180 to 180). Must be used together with latitude. Example: -3.7038 for Madrid
radiusinteger | nullOptionalSearch radius in meters. Requires both coordinates. Example: 5000 for 5 km
limitintegerOptionalMaximum venues to return, max 50 (default: 10)
country_codestring | nullOptionalISO 3166-1 alpha-2 country filter, two letters (e.g. ES, US)

How results are ranked

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.

Example Response Fields

  • venue_id, name — Venue identifier and name
  • location — Full location string, e.g. "Madrid, Spain" or "Branson, MO, United States"
  • address — Street address
  • latitude, longitude — Coordinates in decimal degrees (WGS84)
  • distance_km — Great-circle distance from the searched point. Only present when searching by coordinates
  • cover_image_url — Venue image
  • venue_page_url — Link to the venue's page on Fever. Absent when Fever publishes no page for the venue
  • country_code — ISO 3166-1 alpha-2 country code
  • city_code — 3-letter Fever city code. Pass it as city_code to search_events
  • slug — The venue slug on Fever. Optional: absent for venues with no Fever place page
  • city_slug — The slug of the venue's city on Fever
  • count — Number of venues returned

Frequently Asked Questions

Find answers to common questions about the Fever event discovery MCP Server.

Getting Started

What is the Model Context Protocol (MCP)? MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data sources. The Fever event discovery MCP Server gives compatible AI clients direct access to Fever's event discovery platform.
What AI clients are supported? The Fever event discovery MCP Server works with any MCP-compatible client, including Claude Desktop, Cursor, Windsurf, Claude Code, and other tools that support the MCP standard.
How do I get access? There are two paths. As an individual using a client such as Claude Desktop or Cursor, simply add the Fever MCP server URL as a connector and complete the OAuth 2.0 authentication flow — it is self-service and no registration form is needed. As a company running an unattended server-side integration, you need machine-to-machine credentials, which we issue on request — see the next question. Either way, the Getting Started section above has step-by-step instructions.
I am a company. How do I get machine-to-machine access? Machine-to-machine access uses the OAuth 2.0 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.
Is it free? The Fever event discovery MCP Server is currently available at no cost. Just add the server URL to your MCP client and authenticate to get started.

Usage

What data can I access? The server exposes three tools — 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.
Are there rate limits? Yes, rate limits apply to ensure fair usage across all users. If you need higher limits for a specific use case, reach out to us at data-ai@feverup.com.
How fresh is the data? The data served through the MCP Server is real-time. It is updated at the same rate as the Fever platform itself, so you always get the latest events, sessions, and availability.

Support

How can I get in touch? For any extra needs, questions, or feedback about the Fever event discovery MCP Server, you can reach us at data-ai@feverup.com.