Skip to main content
Glama
waldzellai

Exa Websets MCP Server

by waldzellai

Exa Websets MCP Server 🔍

npm version

A Model Context Protocol (MCP) server that provides Exa AI's websets management capabilities and web search functionality to AI assistants like Claude. This simplified server focuses on comprehensive content collection management through an intuitive interface.

Features ✨

This MCP server provides three essential tools and seven agentic prompts:

Tools

  • websets_manager: A comprehensive tool for managing content collections, searches, and data enhancements

  • web_search_exa: Real-time web search capabilities powered by Exa AI

  • websets_guide: Helpful guidance and examples for using websets effectively

  • knowledge_graph: Maintain connections between webset results in an onboard graph

Prompts (NEW!)

Interactive workflows to guide you through websets operations:

  • list_mcp_assets: Comprehensive list of all server capabilities

  • quick_start: Get started quickly with creating your first webset

  • webset_discovery: Discover and explore available websets

  • webset_status_check: Monitor async webset operations with guided instructions

  • webset_analysis_guide: Step-by-step guide for analyzing completed websets

  • webhook_setup_guide: Configure webhooks for real-time notifications

  • enrichment_workflow: Detailed workflow for enriching webset data with AI

  • horizontal_process: Advanced workflow for creating multiple websets and building meta-datasets from cross-matches

  • webset_portal: Deep-dive parallel research through webset URLs using Claude Code subagents

  • iterative_intelligence: Self-improving research system with webset registry for fast retrieval and batch processing

Why Choose This Server?

  • Simplified: Just 3 tools instead of 20+ individual ones

  • Comprehensive: The websets_manager handles all 20 websets operations in one tool

  • Guided: Agentic prompts provide step-by-step workflows for complex operations

  • Fast: No dynamic tool loading - all tools are immediately available

  • Reliable: 100% operational coverage with graceful error handling

  • Smart Pagination: Automatic handling of large responses to prevent token overflow

  • Auto-Polling: Optional automatic polling for async operations (search, enhance)

Related MCP server: Exa Websets MCP Server

Remote Exa Websets MCP 🌐

Connect directly to Exa's hosted MCP server (instead of running it locally).

Remote MCP URL

https://mcp.exa.ai/websets?exaApiKey=your-exa-api-key

Replace your-api-key-here with your actual Exa API key from dashboard.exa.ai/api-keys.

Claude Desktop Configuration for Remote MCP

Add this to your Claude Desktop configuration file:

{
  "mcpServers": {
    "exa-websets": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.exa.ai/websets?exaApiKey=your-exa-api-key"
      ]
    }
  }
}

Installation 📦

NPM Installation

npm install -g exa-websets-mcp-server

Using Smithery

To install the Exa Websets MCP server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install exa-websets --client claude

Configuration ⚙️

For Claude Desktop

1. Configure Claude Desktop to recognize the Exa Websets MCP server

You can find claude_desktop_config.json inside the settings of Claude Desktop app:

Open the Claude Desktop app and enable Developer Mode from the top-left menu bar.

Once enabled, open Settings (also from the top-left menu bar) and navigate to the Developer Option, where you'll find the Edit Config button. Clicking it will open the claude_desktop_config.json file, allowing you to make the necessary edits.

OR (if you want to open claude_desktop_config.json from terminal)

For macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
For Windows:
code %APPDATA%\Claude\claude_desktop_config.json

2. Add the Exa Websets server configuration:

{
  "mcpServers": {
    "exa-websets": {
      "command": "npx",
      "args": ["-y", "exa-websets-mcp-server"],
      "env": {
        "EXA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Replace your-api-key-here with your actual Exa API key from dashboard.exa.ai/api-keys.

For Claude Code

To configure this MCP server with Claude Code, use the following command:

# Install server locally first
npm install -g exa-websets-mcp-server

# Add to Claude Code with environment variable
claude mcp add exa-websets -e EXA_API_KEY=your-api-key-here -- npx exa-websets-mcp-server

# Or if you have built the project locally:
claude mcp add exa-websets -e EXA_API_KEY=your-api-key-here -- node /path/to/exa-websets-mcp-server/build/index.js

After adding the server, you can check its status with:

claude mcp list

Use the /mcp command within Claude Code to verify the server is connected.

3. Restart Claude Desktop

For the changes to take effect:

  1. Completely quit Claude Desktop (not just close the window)

  2. Start Claude Desktop again

  3. Look for the icon to verify the Exa Websets server is connected

Using the Tools 🛠️

websets_manager

The unified websets manager provides a single interface for all websets operations:

# Create a new content collection
operation: create_collection
collection: { searchQuery: "AI news", description: "Latest AI developments" }

# Search within a collection
operation: search_collection
resourceId: "collection-id"
search: { query: "breakthrough", maxResults: 10 }

# Enhance content with AI
operation: enhance_content
resourceId: "collection-id"
enhancement: { task: "Extract key findings from each article" }

web_search_exa

Perform real-time web searches:

query: "latest AI developments"
numResults: 10

websets_guide

Get help and examples for using websets:

topic: "getting_started"

Available topics:

  • getting_started

  • creating_collections

  • searching_content

  • enhancing_data

  • setting_notifications

  • workflow_examples

  • troubleshooting

  • best_practices

Using Prompts 💬

Prompts provide interactive workflows that guide you through complex websets operations. They're especially useful for:

  • Understanding the asynchronous nature of websets

  • Learning best practices for different use cases

  • Getting step-by-step instructions with example commands

To use a prompt in Claude, simply mention it:

  • "Use the quick_start prompt to help me create my first webset"

  • "Show me the webset_status_check for webset_abc123"

Pagination and Polling Best Practices 📖

Automatic Pagination

The server automatically handles large responses to prevent token overflow:

// List activities - automatically paginated if no limit specified
operation: "list_activities"
// Returns manageable chunks that fit within token limits

// Or specify your own limit if you know what you need
operation: "list_activities"
query: { limit: 5 }

How it works:

  • If you don't specify a limit, the server automatically paginates results

  • Starts with small batches and adjusts based on response size

  • Prevents "response too large" errors from MCP clients

  • Works for activities, websets, and content items

Automatic Polling for Async Operations

Search and enhancement operations can now wait for results automatically:

// Search with automatic polling (waits up to 1 minute)
operation: "search_webset"
resourceId: "webset_123"
search: {
  query: "AI startups",
  advanced: {
    waitForResults: true  // Enable auto-polling
  }
}

// Enhancement with automatic polling (waits up to 2 minutes)
operation: "enhance_content"
resourceId: "webset_123"
enhancement: {
  task: "Extract company names and funding",
  advanced: {
    waitForResults: true  // Enable auto-polling
  }
}

Polling intervals:

  • Search: Checks every 2 seconds for up to 1 minute

  • Enhancement: Checks every 3 seconds for up to 2 minutes

  • No exponential backoff - predictable, reasonable intervals

  • Progress updates logged during polling

When to use:

  • Enable waitForResults when you need results immediately

  • Disable it (default) when running batch operations

  • Polling stops as soon as operation completes or fails

  • "Guide me through enrichment_workflow for my completed webset"

Each prompt provides contextual guidance, example commands, and best practices tailored to your specific situation.

Using via NPX

Run the server directly with npx:

# Run the websets server
npx exa-websets-mcp-server

Troubleshooting 🔧

Common Issues

  1. Server Not Found

    • Verify the npm package is correctly installed

    • Check Claude Desktop configuration syntax (json file)

  2. API Key Issues

    • Confirm your EXA_API_KEY is valid

    • Check the EXA_API_KEY is correctly set in the configuration

    • Verify no spaces or quotes around the API key

  3. Connection Issues

    • Restart Claude Desktop completely

    • Check Claude Desktop logs for error messages

  4. Events API Unavailable

    • The events endpoint may return 500 errors

    • Use webhooks for event notifications instead

    • Monitor webset status through get_collection_status

Changelog

v1.0.5 (2025-06-20)

  • Added automatic pagination for large responses to prevent token overflow

  • Implemented optional auto-polling for async operations (search, enhance)

  • Added waitForResults option for immediate results from async operations

  • Improved activity list handling with smart pagination

  • Added progress logging during polling operations

  • No exponential backoff - uses predictable, reasonable polling intervals

v1.0.4 (2025-06-06)

  • Added stdio transport support for local MCP connections

  • Fixed server startup for both Claude Desktop and Smithery deployments

  • Improved compatibility with Claude Code

  • Enhanced error handling and security checks

  • Added comprehensive prompt system with 10 interactive workflows

  • Improved package metadata for npm publishing

v1.0.2 (2025-05-27)

  • Fixed keep-alive mechanism to prevent connection timeouts

  • Now sends MCP logging messages to maintain stdio connection

  • Prevents Claude Desktop disconnections during idle periods

v1.0.1 (2025-05-27)

  • Fixed authentication header from 'Authorization: Bearer' to 'x-api-key'

  • Resolved network errors in websets operations

  • All tools now work correctly with Smithery deployment

v1.0.0 (2025-05-27)

  • Initial release with simplified architecture

  • Three essential tools: websets_manager, web_search_exa, websets_guide

  • 100% operational coverage for all websets operations


Built with ❤️ by team Exa

Available Tools

4 tools
knowledge_graphD

Maintain an onboard knowledge graph of webset results.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYes
entitiesNo
relationsNo
observationsNo
deletionsNo
namesNo
queryNo

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose behavioral traits such as side effects, authorization requirements, or that the tool performs multiple mutation and query operations. The single sentence provides no insight beyond the tool's purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence), but this brevity sacrifices essential information. It lacks structure, such as bullet points or sections, and fails to earn its place by omitting critical details about operations and parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 7 parameters, 9 enum operations, and no output schema, the description is grossly inadequate. It provides no information on return values, error handling, or how to use the diverse operations, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no information about any of the seven parameters. Properties like 'operation' (with 9 enum values) and others are left entirely to schema names, which are insufficient for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Maintain an onboard knowledge graph of webset results' is vague. It uses the generic verb 'maintain' without specifying the broad set of operations (create, delete, read, search, etc.) evident in the input schema. It does not differentiate the tool from siblings or clarify what 'webset results' are.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings (web_search_exa, websets_guide, websets_manager). There is no mention of appropriate contexts, prerequisites, or alternative tools, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

web_search_exaA

Search the web using Exa AI - performs real-time web searches and can scrape content from specific URLs. Supports configurable result counts and returns the content from the most relevant websites.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query
numResultsNoNumber of search results to return (default: 5)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It discloses real-time searching and scraping but lacks details on authentication, rate limits, or behavior when no results. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no fluff, covering the main behavioral aspects. It is well-structured but could be slightly more organized (e.g., separate lines). Still, it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no output schema or annotations, the description covers primary functionality and return content. However, it omits details like scraping mechanics, error handling, and data freshness. Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds 'configurable result counts' (aligning with numResults) and mentions scraping, which is not reflected in parameters. Some extra context but not significantly beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs real-time web searches using Exa AI and can scrape content from specific URLs. It distinguishes itself from sibling tools (knowledge_graph, websets_guide, websets_manager) which are not general web search tools, making purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the general web search tool but does not explicitly state when to use it versus alternatives like knowledge_graph or websets_guide. No when-not-to-use or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

websets_guideB

Get helpful guidance, examples, and workflows for using Exa's content websets effectively. Learn how to create websets, search content, enhance data, and set up notifications with practical examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesWhat you'd like guidance on

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as whether the tool is read-only, requires authentication, or what the output format is. Only basic purpose is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, efficiently stating purpose and listing topics. No verbose or irrelevant content, though the topic list is somewhat redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple guidance tool with one enum parameter and no output schema, the description covers the purpose and available topics but lacks details on return format, usage context, or behavioral constraints. Could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'topic' having a description. The description lists topics that mirror the enum values but adds no new meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides guidance, examples, and workflows for using websets. It uses a specific verb 'Get' and resource 'guidance', and distinguishes from siblings like websets_manager (management) and web_search_exa (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need guidance on websets, but does not explicitly state when to use this tool vs alternatives or provide exclusions. Lacks comparison to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

websets_managerC

Manage content websets, searches, and data enhancements using Exa's platform. This single tool handles creating websets of web content, searching within them, enhancing data with AI, and setting up notifications. Much simpler than using separate tools for each operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYesWhat you want to do
resourceIdNoID of the webset, search, or enhancement to work with
websetNo
searchNo
enhancementNo
notificationNo
updateNo
queryNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as sync/async nature, permissions, rate limits, or side effects. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (3 sentences) and front-loads the purpose. No unnecessary words, but could benefit from structured formatting like bullet points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex with many operations and nested parameters, but the description provides no details on how to use specific parameters or operations. Extremely incomplete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain any parameters; it only offers a high-level overview. With schema description coverage at 25%, the description fails to add meaning beyond the limited schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages websets, searches, enhancements, and notifications via Exa. It lists multiple operations, making the purpose clear, though it does not explicitly differentiate from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it's simpler than using separate tools, but provides no explicit when-to-use or when-not-to-use guidance, nor comparison to sibling tools like knowledge_graph or web_search_exa.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • Changedknowledge_graph2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedweb_search_exa2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedwebsets_guide2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedwebsets_manager2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
  2. 4 tool updates
    • First observedknowledge_graph
    • First observedweb_search_exa
    • First observedwebsets_guide
    • First observedwebsets_manager

TDQS

C2.7/5.0

Scored across 4 tools

Disambiguation2/5

The tools have overlapping purposes that create ambiguity. The 'websets_manager' tool claims to handle creating websets, searching within them, enhancing data, and setting up notifications, which directly overlaps with the functions described in 'websets_guide' (guidance on creating websets, searching content, enhancing data, and setting up notifications) and partially with 'web_search_exa' (searching). This makes it difficult for an agent to choose between them without confusion.

Naming Consistency3/5

The naming conventions are mixed and not fully consistent. 'knowledge_graph' and 'web_search_exa' use snake_case, while 'websets_guide' and 'websets_manager' use a descriptive but inconsistent format with underscores. There is no clear verb_noun pattern, as names vary from noun phrases to compound terms, making the set readable but lacking a predictable structure.

Tool Count4/5

With 4 tools, the count is reasonable for a server focused on web content management and search. It is well-scoped for handling knowledge graphs, web searches, guidance, and management operations, though the overlap might suggest some consolidation could improve efficiency without being excessive or too sparse.

Completeness3/5

Inferring the domain as web content search and management with Exa's platform, the tool set covers key areas like search, knowledge graphs, and webset operations. However, there are notable gaps in lifecycle coverage, such as missing explicit update or delete tools for websets, and the overlap between 'websets_manager' and other tools creates redundancy rather than a complete CRUD surface, potentially leading to agent confusion in workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to perform real-time web searches, company research, content crawling, LinkedIn searches, and deep research using the Exa AI Search API. Provides comprehensive web information retrieval capabilities in a safe and controlled manner.
    2
    19,692
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables creation and management of AI-powered web entity collections (companies, people, research papers) with automated search, data enrichment, monitoring, and verification through Exa's Websets API.
    15
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to perform web searches, research paper searches, and Twitter searches using the Exa AI Search API with real-time crawling and structured results.
    19,692
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to perform web searches, research papers, Twitter searches, company research, URL crawling, and LinkedIn searches using the Exa AI Search API for real-time web information.
    19,692
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/waldzellai/exa-mcp-server-websets'

If you have feedback or need assistance with the MCP directory API, please join our Discord server