Exa Websets MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Exa Websets MCP Servercreate a webset of climate tech startups in Europe with 15 companies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Exa Websets MCP Server
A Model Context Protocol (MCP) server that integrates Exa's Websets API with Claude Desktop, Cursor, Windsurf, and other MCP-compatible clients.
What are Websets?
Websets are collections of web entities (companies, people, research papers) that can be automatically discovered, verified, and enriched with custom data. Think of them as smart, self-updating spreadsheets powered by AI web research.
Key capabilities:
🔍 Automated Search: Find entities matching natural language criteria
📊 Data Enrichment: Extract custom information using AI agents
🎯 Verification: AI validates that entities meet your criteria
🔗 Webhooks: Real-time notifications for collection updates
📥 Imports: Bring your own CSV data into Websets for enrichment or scoping
Available Tools
This MCP server provides the following tools:
Webset Management
Tool | Description |
| Create a new webset collection with optional search and enrichments |
| List all your websets with pagination support |
| Get details about a specific webset |
| Update a webset's title and/or metadata |
| Delete a webset and all its items |
| Preview how a search query will be interpreted before creating a webset |
Item Management
Tool | Description |
| List all items (entities) in a webset |
| Get a specific item from a webset with all enrichment data |
Search Operations
Tool | Description |
| Create a new search to find and add items to a webset |
| Get details about a specific search including status and progress |
| Cancel a running search operation |
Enrichment Operations
Tool | Description |
| Add a new data enrichment to extract custom information |
| Get details about a specific enrichment |
| Cancel a running enrichment operation |
Webhooks
Tool | Description |
| Subscribe to real-time HTTP callbacks for webset events |
| Get details about a specific webhook |
| Update a webhook's URL, events, or metadata |
| Delete a webhook |
| List all webhooks in your account |
Imports
Tool | Description |
| Create an import to upload your own CSV data into Websets |
| Get details about a specific import including upload URL |
| List all imports in your account |
Events
Tool | Description |
| List system events (search, enrichment, webset lifecycle, etc.) |
Installation
Installing via Smithery
To install Exa Websets automatically via Smithery:
npx -y @smithery/cli install @exa-labs/websets-mcp-serverPrerequisites
Node.js v18 or higher
Claude Desktop, Cursor, or another MCP-compatible client
An Exa API key from exa.ai
Using Claude Code (Recommended)
The quickest way to set up Websets MCP:
claude mcp add websets -e EXA_API_KEY=YOUR_API_KEY -- npx -y websets-mcp-serverReplace YOUR_API_KEY with your Exa API key.
Using NPX
# Install globally
npm install -g websets-mcp-server
# Or run directly with npx
npx websets-mcp-serverConfiguration
Claude Desktop Configuration
Enable Developer Mode
Open Claude Desktop
Click the menu → Enable Developer Mode
Go to Settings → Developer → Edit Config
Add to configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json{ "mcpServers": { "websets": { "command": "npx", "args": [ "-y", "websets-mcp-server" ], "env": { "EXA_API_KEY": "your-api-key-here" } } } }Restart Claude Desktop
Completely quit Claude Desktop
Start it again
Look for the 🔌 icon to verify connection
Cursor and Claude Code Configuration
Use the HTTP-based configuration. Pass your Exa API key as a Bearer token in the
Authorization header (or as an ?exaApiKey=... query parameter as a fallback):
{
"mcpServers": {
"websets": {
"type": "http",
"url": "https://websetsmcp.exa.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_EXA_API_KEY"
}
}
}
}Tool Schema Reference
⚠️ Important for AI Callers: See TOOL_SCHEMAS.md for exact parameter formats and examples.
Key Schema Rules:
criteriamust be an array of objects:[{description: "..."}](NOT an array of strings)entitymust be an object:{type: "company"}(NOT a string)optionsmust be an array of objects:[{label: "..."}](NOT an array of strings)
These formats ensure consistency across all tools and match the Websets API specification.
Usage Examples
Once configured, you can ask Claude to interact with Websets:
Creating a Webset
Create a webset of AI startups in San Francisco with 20 companies.
Add enrichments for revenue, employee count, and funding stage.Listing and Viewing Websets
List all my websets and show me the details of the one called "AI Startups"Managing Items
Show me the first 10 items from my "AI Startups" webset with all their enrichment dataAdding More Items
Run another search on my "AI Startups" webset for 20 more companies focused on
enterprise voice agents, appending to the existing itemsAdvanced Enrichments
Add an enrichment to my webset that extracts the company's latest product launch
and the CEO's LinkedIn profileExample Workflow
Here's a complete workflow for building a company research database:
Create the collection:
Create a webset called "SaaS Companies" that searches for "B2B SaaS companies with $10M+ revenue"Add enrichments:
Add enrichments to extract: annual recurring revenue, number of customers, primary market segment, and tech stack usedSubscribe to events:
Create a webhook to https://example.com/hook subscribed to webset.search.completed and webset.enrichment.completedView results:
Show me all items with their enrichment data, sorted by revenue
Tool Details
create_webset
Creates a new webset collection with optional automatic population and enrichments.
Parameters:
externalId(optional): Your own identifier for the webset (max 300 chars)searchQuery(optional): Natural language query to find entitiessearchCount(optional): Number of entities to find (default: 10, min: 1)searchEntity(optional): Entity type for the search, e.g.{type: "company"}. For"custom"type include adescription.searchCriteria(optional): Additional filtering criteria —[{description: "..."}](max 5)searchBehavior(optional):"override"(default) replaces existing items,"append"adds to themsearchExclude(optional): Imports/websets whose results to exclude —[{source: "webset"|"import", id: "..."}]searchScope(optional): Scope the search to existing imports or websets —[{source: "import"|"webset", id: "..."}]; enables hop searches with arelationshipobjectsearchRecall(optional): Whether to compute recall metrics for the searchsearchMaxPeoplePerCompany(optional): Soft cap on people-per-employer for person searchessearchMetadata(optional): Key-value metadata to associate with the searchenrichments(optional): Data enrichments to automatically extract for each itemmetadata(optional): Key-value metadata to associate with the websetexcludes(optional): Global excludes — sources whose results are omitted across all operations on this webset
Note: there is no top-level name or description parameter on the webset itself. Use update_webset with title after creation, or metadata to attach arbitrary key-value pairs.
Example:
{
"externalId": "tech-unicorns-2024",
"searchQuery": "Technology companies valued over $1 billion",
"searchCount": 50,
"searchEntity": {"type": "company"},
"searchCriteria": [
{"description": "Valued at over $1 billion"},
{"description": "Technology sector"}
],
"enrichments": [
{
"description": "Current company valuation in USD",
"format": "number"
},
{
"description": "Names of company founders",
"format": "text"
},
{
"description": "Company stage",
"format": "options",
"options": [
{"label": "Series A"},
{"label": "Series B"},
{"label": "Series C+"},
{"label": "Public"}
]
}
]
}create_enrichment
Adds a new data enrichment to extract custom information from each webset item.
Parameters:
websetId: The ID of the websetdescription: Detailed description of what to extractformat(optional): One of"text","date","number","options","email","phone","url"— auto-selected if omittedoptions(optional): Whenformatis"options", the choices the enrichment agent picks from —[{label: "..."}]metadata(optional): Key-value metadata to associate with this enrichment
Example:
{
"websetId": "webset_abc123",
"description": "Total number of full-time employees as of the most recent data",
"format": "number"
}Monitors (scheduled refresh/search) are exposed by the underlying Websets API but are not currently surfaced as MCP tools in this server. Configure monitors directly via the Websets API or websets.exa.ai.
API Endpoints
The server connects to Exa's Websets API at https://api.exa.ai/websets/v0.
Full API documentation: docs.exa.ai/reference/websets
Advanced Configuration
Enable Specific Tools Only
To enable only certain tools, use the enabledTools config:
{
"mcpServers": {
"websets": {
"command": "npx",
"args": [
"-y",
"websets-mcp-server",
"--tools=create_webset,list_websets,list_webset_items"
],
"env": {
"EXA_API_KEY": "your-api-key-here"
}
}
}
}Debug Mode
Enable debug logging to troubleshoot issues:
{
"mcpServers": {
"websets": {
"command": "npx",
"args": [
"-y",
"websets-mcp-server",
"--debug"
],
"env": {
"EXA_API_KEY": "your-api-key-here"
}
}
}
}Troubleshooting
Connection Issues
Verify your API key is valid
Ensure there are no spaces or quotes around the API key
Completely restart your MCP client (not just close the window)
Check the MCP logs for error messages
API Rate Limits
Websets API has the following limits:
Check your plan limits at exa.ai/dashboard
Use pagination for large websets
Monitor API usage in your dashboard
Common Errors
401 Unauthorized: Invalid or missing API key
404 Not Found: Webset ID doesn't exist or was deleted
422 Unprocessable: Invalid query or criteria format
429 Rate Limited: Too many requests, wait and retry
Resources
Development
Building from Source
git clone https://github.com/exa-labs/websets-mcp-server.git
cd websets-mcp-server
npm install
npm run buildProject Structure
websets-mcp-server/
├── src/
│ ├── index.ts # Main server setup
│ ├── types.ts # TypeScript type definitions
│ ├── tools/ # MCP tool implementations
│ │ ├── config.ts # API configuration
│ │ ├── createWebset.ts
│ │ ├── listWebsets.ts
│ │ ├── getWebset.ts
│ │ ├── updateWebset.ts
│ │ ├── deleteWebset.ts
│ │ ├── listItems.ts
│ │ ├── createEnrichment.ts
│ │ ├── createSearch.ts
│ │ ├── createWebhook.ts
│ │ ├── createImport.ts
│ │ └── ...
│ └── utils/
│ ├── api.ts # Shared API client and error handling
│ └── logger.ts # Logging utilities
├── package.json
└── tsconfig.jsonLicense
MIT
Contributing
Contributions welcome! Please open an issue or PR at github.com/exa-labs/websets-mcp-server.
Support
Documentation: docs.exa.ai
Discord: Join the Exa community
Email: support@exa.ai
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/exa-labs/websets-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server