Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Fever MCP server

Vendor MCP
Open markdown

The Fever MCP connector routes your AI agent's tool calls to Fever's own MCP server through Scalekit. Each user signs in to Fever once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 2 tools.

Tools
2
What they doRead · write · destructive
2 · 0 · 02 read0 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Fever MCP connection

    In AgentKit > Connections, create a Fever MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Fever MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'fevermcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Fever MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'fevermcp_search_events',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • fevermcp_search_citiesFind cities where Fever operates and offers events/activities.Read-only

    Search Cities

    Find cities where Fever operates and offers events/activities. Perfect for location discovery and travel planning.

    Inputs

    localestringrequired
    Language code (en, es, fr, de, pt, it, ar, bg, ca, cs, da, el, et, fi, he, hr, hu, id, ja, ko, lt, lv, nl, pl, ro, sk, sl, sv, th, tr, zh) - affects localization
    querystringrequired
    City name or search term (use '' for all cities)
    city_codestring
    Optional 3-letter city code (e.g., MAD, NYC, LON, BCN)
    only_suggestedboolean
    True returns only top/popular citiesdefault false
  • fevermcp_search_eventsFind events, activities, and experiences available in a specific city through Fever.Read-only

    Search Events

    Find events, activities, and experiences available in a specific city through Fever. Perfect for event discovery and travel planning. When the user mentions a time frame (e.g. 'this weekend', 'next Friday', 'in April'), set start_datetime and end_datetime to filter results.

    Inputs

    city_codestring
    3-letter city code (e.g., MAD, NYC, LON, BCN). Required if coordinates not provided.
    end_datetimestring
    End datetime in ISO 8601 format (UTC)
    include_descriptionboolean
    If True, includes full plan descriptions in the responsedefault false
    latitudenumber
    Latitude for coordinate search (-90 to 90)
    localestring
    Language code - affects content languagedefault en
    longitudenumber
    Longitude for coordinate search (-180 to 180)
    pageinteger
    Page number starting from 0 for paginationdefault 0
    page_sizeinteger
    Results per page (default 12, max 100)default 12
    querystring
    Search term for specific events (optional, '' for all)default
    radiusinteger
    Search radius in meters when using coordinates
    sort_bystring
    Sort order: popularity, price, rating, closest_session, distance, randomone of popularitypriceratingclosest_sessiondistancerandomdefault popularity
    start_datetimestring
    Start datetime in ISO 8601 format (UTC)