MCP server for Databar.ai — enables AI assistants to run data enrichments, manage tables, and more
Good overall quality with well-defined schemas and descriptions across 20 tools. Most tools follow verb_noun naming conventions and include comprehensive parameter documentation. However, there are notable gaps in error handling guidance, output schema documentation, and some parameter validation descriptions. The server demonstrates solid understanding of tool composition (separate search/get/run patterns) and includes important security considerations (API key management, cost controls). Main weaknesses: no explicit error recovery guidance in descriptions, missing output schema definitions for most tools, and no destructive operation confirmations.
Add a new column to a table.
Add new rows to a table. Supports deduplication, type casting, and automatic column creation. Up to 100 rows per request (auto-batched into chunks of 50 by the API).
Create a new table in your Databar workspace. Optionally specify a name, column names, and number of empty rows. By default creates columns column1/column2/column3 and 0 rows.
Delete rows from a table by row ID. Up to 100 rows per request.
Get detailed information about a specific enrichment, including all required and optional parameters, response fields, pricing, and data source. Use this before running an enrichment to understand what parameters are needed.
Get detailed information about a specific exporter, including parameters, response fields, and required authorization connections.
Output schemas not documented: No tools explicitly document their response structure. Tools like run_enrichment, run_waterfall, create_rows, patch_rows, upsert_rows lack documented return types. LLMs cannot predict what fields are available in responses, forcing them to reason about response structure at runtime.
Missing error recovery guidance: Descriptions like run_enrichment mention 'spending limits' and 'caching' but do not explain what the LLM should do if a spending limit is exceeded or if a request fails. No descriptions include recovery hints (e.g., 'If limit exceeded, reduce pages or skip_cache').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Get available choices for a select/mselect enrichment parameter. Supports search and pagination. Use this when get_enrichment_details shows a parameter with choices.mode = "remote". For inline choices, the values are already included in get_enrichment_details.
Get all columns defined on a table. Returns column names, types, and identifiers.
Get rows from a table with pagination and optional filtering. Returns up to 100 rows per page by default (max 500). Supports Airtable-style structured filters.
Get your Databar user account information including email, current credit balance, and plan type.
List all tables in your Databar workspace. Returns table UUIDs, names, and timestamps.
Update existing rows in a table by row ID. Up to 100 rows per request (auto-batched into chunks of 50).
Execute an enrichment on multiple inputs at once. Provide an array of parameter objects. Subject to spending limits. For paginated enrichments, use the pages parameter to fetch multiple pages per record (each page per record is billed separately).
Execute a waterfall enrichment on multiple inputs at once. Subject to spending limits.
Execute a data enrichment with the provided parameters. Automatically handles async execution and polling, returning final results. Results are cached for 24 hours to reduce costs. Subject to spending limits (DATABAR_MAX_COST_PER_REQUEST, DATABAR_MIN_BALANCE). For paginated enrichments, use the pages parameter to fetch multiple pages (each page is billed separately).
Execute a waterfall enrichment that tries multiple providers until one succeeds. Subject to spending limits.
Search and discover available data enrichments. Use this to find the right enrichment for a specific task (e.g., "linkedin profile", "email finder", "company data"). Returns a list of matching enrichments with their IDs, descriptions, required parameters, and pricing. Results are sorted by recommendation rank (best options first). BYOK providers that the user has not connected are automatically excluded.
Search available exporters (integrations that send data to external platforms like Slack, Email, Webhooks, etc.). Returns exporter details with required parameters and available authorization connections.
Search available waterfall enrichments. Waterfalls try multiple data providers in sequence until one succeeds, maximizing data retrieval success rate.
Insert or update rows in a table. Match on one or more key fields; if a match is found, update; otherwise create. Up to 100 rows per request (auto-batched into chunks of 50).
Destructive operations lack confirmation pattern: delete_rows is marked DESTRUCTIVE but has no description guidance on confirmation, dry-run, or recovery. Agents could permanently delete rows without warning.
Generic descriptions on read-only tools: list_tables (70 chars), get_table_columns (65 chars), get_user_info (65 chars) provide minimal guidance. 'Returns table UUIDs, names, and timestamps' tells the LLM what fields exist but not WHEN to call it or how it fits into multi-tool workflows.
Insufficient parameter guidance on bulk operations: run_bulk_enrichment and run_bulk_waterfall accept params_list but don't specify: max array length, expected error handling on partial failures, or batch limits. Agents may attempt to pass unbounded arrays.
Missing patch_rows description clarity: 'Update existing rows by row ID' does not explain the expected {id, fields} structure or what happens if an id is not found. Agents may struggle to format parameters correctly.
Tool composition gaps: create_table returns table UUIDs but schema does not document what fields are in the response (table_uuid, table_name, etc.). This breaks the tool chain with get_table_rows, forcing an extra lookup.