Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Exa MCP connector

API KeyAISearchDeveloper Tools

Connect to Exa MCP to perform AI-powered semantic web search, crawl websites for structured content, get natural language answers from the web, and run...

Exa MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. 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. Register your Exa MCP credentials with Scalekit so it can authenticate requests on your behalf. You do this once per environment.

    Dashboard setup steps

    Register your Exa API key with Scalekit so it can authenticate and proxy requests on behalf of your users. Unlike OAuth connectors, Exa MCP uses API key authentication — there is no redirect URI or OAuth flow.

    1. Generate an Exa API key

      • Sign in to dashboard.exa.ai/api-keys. Under Management, click API Keys.

      • Click + Create Key, enter a name (e.g., Agent Auth), and confirm.

      • In the Secret Key column, click the eye icon to reveal the key and copy it. Store it somewhere safe — you will not be able to view it again.

    2. Create a connection in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Exa MCP and click Create.

      • Note the Connection name — you will use this as connection_name in your code (e.g., examcp).

    3. Add a connected account

      Connected accounts link a specific user identifier in your system to an Exa API key. Add accounts via the dashboard for testing, or via the Scalekit API in production.

      Via dashboard (for testing)

      • Open the connection you created and click the Connected Accounts tab → Add account.

      • Fill in:

        • Your User’s ID — a unique identifier for this user in your system (e.g., user_123)
        • API Key — the Exa API key you copied in step 1
      • Click Save.

      Via API (for production)

      await scalekit.actions.upsertConnectedAccount({
      connectionName: 'examcp',
      identifier: 'user_123',
      credentials: { api_key: 'your-exa-api-key' },
      });
  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'examcp'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'examcp_web_fetch_exa',
    toolInput: { urls: [] },
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Search web — Search the web and get clean, ready-to-use content
  • Fetch web — Read one or more webpages and return their full content as clean markdown

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

examcp_web_fetch_exa#Read one or more webpages and return their full content as clean markdown. Use when you have specific URLs to read, or to get full content after a web search returns insufficient highlights. Supports batching multiple URLs in a single call.2 params

Read one or more webpages and return their full content as clean markdown. Use when you have specific URLs to read, or to get full content after a web search returns insufficient highlights. Supports batching multiple URLs in a single call.

NameTypeRequiredDescription
urlsarrayrequiredOne or more URLs to fetch. Batch multiple URLs in a single call.
maxCharactersnumberoptionalMaximum characters to extract per page (default: 3000).
examcp_web_search_exa#Search the web and get clean, ready-to-use content. Best for current information, news, facts, people, and companies. Describe the ideal page rather than using keywords (e.g. 'blog post comparing React and Vue performance'). Use category:people or category:company to search LinkedIn profiles or companies.2 params

Search the web and get clean, ready-to-use content. Best for current information, news, facts, people, and companies. Describe the ideal page rather than using keywords (e.g. 'blog post comparing React and Vue performance'). Use category:people or category:company to search LinkedIn profiles or companies.

NameTypeRequiredDescription
querystringrequiredNatural language description of the ideal page. Optionally include category:people or category:company to focus results.
numResultsnumberoptionalNumber of search results to return (default: 10).