MCP server that bridges Claude to X1 Discovery's search and document management platform, providing tools for searching, retrieving metadata, managing tags, executing actions, and accessing cost savings analytics
X1 Search MCP provides 17 tools with basic descriptions and parameter schemas visible in test code. However, critical gaps limit production readiness: (1) Descriptions are minimal (10-80 chars), well below the 50-200 char LLM-optimized baseline. (2) Parameter descriptions lack detail on constraints, formats, and valid ranges, e.g., 'filters' accepts 'array|object' but no guidance on structure. (3) No output schemas documented; LLMs cannot predict response structure for chaining. (4) Error handling absent, no recovery guidance, retryability classification, or actionable error messages. (5) Tool composition issues: x1_execute_action is overly generic (parameters as free-form object); x1_add_tags, x1_remove_tags, x1_clear_tags could be unified. (6) No tool annotations (readOnlyHint, destructiveHint) despite clear read/write distinction in risk field. Schemas are present but sparse; descriptions are functional but not LLM-optimized.
Add tags to a document
Clear all tags from a document
Retrieve cost savings analytics and metrics
Execute an action on a document
Export a document as HTML
Extract and return a file from a document
Generate a preview of a document
Descriptions are 10-80 characters, well below LLM-optimized 50-200 char baseline. Examples: 'List all available data sources' (32 chars), 'Retrieve cost savings analytics and metrics' (43 chars). Too brief to guide LLM tool selection or explain when to use vs. similar tools.
Parameter descriptions lack constraint details. 'filters' accepts 'array|object' with no guidance on structure, valid keys, or format. 'sort' and 'displayFields' similarly underdocumented. LLMs cannot infer valid input shapes without explicit format/constraint descriptions.
No output schemas documented. Tools return results but LLMs have no visibility into response structure (fields, types, nesting). Prevents chaining, e.g., x1_search returns results but response format unknown, blocking downstream x1_get_metadata calls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Retrieve the full content of a document
Retrieve metadata for a specific document or item
Get available schema fields for a data source
List available actions for a data source
List all available data sources (scanners and accounts)
Remove tags from a document
Reset statistics and metrics
Search across X1 Discovery data sources using query terms and optional filters
Enable or disable query logging
Get version information for the X1 MCP Bridge and related components
No error handling guidance. Tools lack recovery hints, retryability classification, or actionable error messages. If x1_search fails, LLM has no guidance on whether to retry, adjust query, or call x1_list_sources first.
x1_execute_action uses free-form 'parameters' object (type: object, no schema). LLMs cannot validate inputs or know what keys/values are valid. Should either enumerate action types with per-action parameter schemas, or document parameter structure explicitly.