A Model Context Protocol server for Exa Websets API. Create, manage, and enrich collections of web entities (companies, people, papers) with automated search, enrichments, and monitoring capabilities.
This server defines 23 tools with reasonable naming conventions and decent parameter schemas. However, there are significant gaps in descriptions, missing output schema documentation, and inconsistent parameter detail. Most tools follow verb_noun naming (create_webset, list_websets, get_webset, delete_webset), which is correct. Tool descriptions are present and non-trivial for most tools (e.g., create_webset: 'Create a new Webset collection...'), meeting the 10-1024 character guideline. However, several tools have minimal or missing descriptions (e.g., update_webset, get_webhook, update_webhook lack visible detailed descriptions in the source). Parameter schemas are visible for complex tools like create_webset and create_search, but output schemas are completely undocumented, the code shows tool registration but returns no structured documentation of response shapes. Error handling is not evident in the provided code excerpts. The server lacks tool annotations (readOnlyHint, destructiveHint, idempotentHint), which are marked as false in the feature list. This is a borderline C/D server: definitions exist and are mostly usable, but lack the depth and polish expected of production tools.
Cancel a running enrichment operation. Only enrichments with status 'running' can be canceled; enrichments still in 'pending' status are unaffected.
Cancel a running search operation. This will stop the search from finding more items.
Create a new enrichment for a webset. Enrichments automatically extract custom data from each item using AI agents (e.g., 'company revenue', 'CEO name', 'funding amount').
Create a new import to upload your own data (CSV) into Websets. Imports can be used for enrichment, scoped searches, or excluding known results. Returns an uploadUrl where you can PUT your CSV file.
Create a new search to find and add items to a webset. The search will discover entities matching your query and criteria.
Output schemas completely undocumented. No visible response type definitions for any of the 23 tools. LLMs cannot predict what fields will be returned, forcing them to guess about downstream tool compatibility and data extraction.
Many read-only tools have minimal descriptions (30-40 chars). Tools like 'list_websets' ("List all websets"), 'get_webhook' ("Get webhook details"), 'update_webhook' ("Update a webhook") lack context about when to use them vs similar tools or what data they surface.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Create a webhook to receive real-time HTTP callbacks when events occur in your websets.
Create a new Webset collection. Websets are collections of web entities (companies, people, papers) that can be automatically searched, verified, and enriched with custom data.
Delete a webhook. The webhook stops receiving notifications immediately and cannot be recovered.
Delete a webset and all its items. This action is permanent and cannot be undone.
Get details about a specific enrichment, including its status and progress.
Get details about a specific import, including its status, upload URL, and processing progress.
Get a specific item from a webset
Get search details and status
Get webhook details
Get details about a specific webset
List system events
List all imports
List all webhooks
List items in a webset
List all websets
Preview how a search query will be interpreted
Update a webhook
Update webset metadata
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Per current MCP spec (2026-07-28), tools should declare these hints to help agents reason about safety and side effects. E.g., delete_webset and delete_webhook should be marked destructiveHint=true; list_* tools should be marked readOnlyHint=true.
Complex tools (create_webset, create_search, create_enrichment) have rich input schemas, but no documentation of pagination patterns for list_* tools. No visible return_pagination fields, limit/offset examples, or total count guidance. Agents cannot reason about batching or iterating large result sets.
No visible error handling guidance in tool descriptions. Neither the code excerpts nor parameter descriptions explain how tools respond to failure cases (e.g., webset not found, permission denied, rate limit exceeded) or what the LLM should do next. Agents cannot self-recover.