MCP server for searching and querying the Ergs data storage service. Provides tools to search across datasources, retrieve blocks, list datasources, and check server health.
The server has well-structured tool definitions with consistent naming patterns and comprehensive descriptions. All 7 tools follow verb-noun naming (get_, list_, search_) and include detailed, LLM-optimized descriptions with examples and warnings. However, there are significant gaps in schema completeness, parameter validation guidance, and output documentation. Most tools accept optional parameters for pagination and filtering, but the schemas lack explicit type constraints (enums, min/max bounds, format specifications). Error handling is minimal, tools return raw API responses without recovery guidance. The search tools have particularly good descriptions with FTS5 syntax guidance, but lack output schema documentation. Overall, this is a solid mid-range implementation with room for formalization.
Get blocks from a specific datasource with optional search and pagination. **IMPORTANT: Use the `get_search_help` tool to learn proper FTS5 query syntax!** Quick Examples: - Exact phrase: `"Robert De Niro"` (use quotes!) - Multiple terms: `"climate change" AND "renewable energy"` - Boolean: `"Trump" NOT "tariff"` Common mistakes: - DON'T: `Robert De Niro` (matches words separately) - DO: `"Robert De Niro"` (exact phrase match) For complete syntax guide, use `get_search_help` tool.
Get comprehensive documentation on FTS5 search query syntax. **Read this BEFORE searching** to understand how to write effective queries. Most important: USE QUOTES for exact phrases like `"Robert De Niro"` not `Robert De Niro`.
Get storage statistics for all datasources
Check if the Ergs service is running and healthy
List all configured datasources with their statistics
Search across all configured datasources simultaneously. WARNING: Can return very large responses (>10k tokens). For token-efficient searches with context snippets, consider using 'search_limited' instead. **IMPORTANT: Use the `get_search_help` tool to learn proper FTS5 query syntax!** Quick Examples: - Exact phrase: `"Robert De Niro"` (use quotes!) - Multiple terms: `"climate change" AND "renewable energy"` - Boolean: `"Trump" NOT "tariff"` Common mistakes: - DON'T: `Robert De Niro` (matches words separately) - DO: `"Robert De Niro"` (exact phrase match) For complete syntax guide, use `get_search_help` tool.
Output schemas completely undocumented. Tools return raw JSON strings but LLMs have no guidance on response structure, field names, or types. Forces agents to parse unstructured text and increases hallucination risk.
Numeric parameters (limit, page, max_words) lack explicit bounds. Descriptions mention defaults and max values (e.g., 'limit default: 20, max: 1000') but no formal min/max schema constraints. LLMs could pass invalid values requiring runtime validation errors.
Date format parameters (start_date, end_date) lack formal format constraints. Descriptions state 'YYYY-MM-DD' but no JSON Schema format: 'date' or regex pattern enforcement. Agents may pass invalid dates.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 8 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Search across all datasources with limited output and context snippets around matches. Designed to minimize token usage while providing relevant context. Returns text surrounding matching results with configurable word limits. **IMPORTANT: Use the `get_search_help` tool to learn proper FTS5 query syntax!** Quick Examples: - Exact phrase: `"Robert De Niro"` (use quotes!) - Multiple terms: `"climate change" AND "renewable energy"` - Boolean: `"Trump" NOT "tariff"` Common mistakes: - DON'T: `Robert De Niro` (matches words separately) - DO: `"Robert De Niro"` (exact phrase match) For complete syntax guide, use `get_search_help` tool.
Error handling minimal. Tools return 'NewToolResultError(err.Error())' with raw HTTP/API error messages (e.g., 'request failed with status 500'). No recovery guidance, categorization, or actionable next steps for LLMs.
'format' parameter in list_datasources, get_stats, and health_check is declared as required but is vestigial, handlers ignore it. Tools always return JSON regardless of the parameter value. This is dead code that adds cognitive load.
search_all_datasources and search_limited accept 'datasource' parameter (array of names) but no description on how filtering works when parameter is empty vs. omitted vs. empty array. Undocumented edge case behavior.
get_search_help tool returns raw help text (no schema visible). Unclear if it returns HTML, plaintext, markdown, or structured docs. Output format undocumented.