Databar MCP Server
OfficialClick on "Deploy 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., "@Databar MCP Server Get me David Abaev's LinkedIn profile"
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.
Databar MCP Server
A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Databar.ai's data enrichment API. Discover, configure, and run data enrichments across hundreds of data providers using natural language.
Features
Smart Enrichment Discovery — Search and filter enrichments by keyword or category
Natural Language Interface — Ask "get David's LinkedIn profile" and the right enrichment runs automatically
Bulk Operations — Enrich many records in a single call with bulk enrichment and bulk waterfall support
Table Management — Create tables, manage columns, insert/update/upsert rows
Waterfall Support — Try multiple data providers sequentially until one succeeds
Async Handling — Automatic polling for results with no manual intervention
Intelligent Caching — 24-hour result cache reduces API calls and costs
Error Handling — Retries with exponential backoff and clear error messages
Related MCP server: Prospeo MCP Server
Quick Start
Prerequisites
Node.js 18+
A Databar.ai API key (get one here)
Install & Build
git clone https://github.com/databar-ai/databar-mcp-server.git
cd databar-mcp-server
npm install
npm run buildConfigure Claude Desktop
Edit your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"databar": {
"command": "node",
"args": ["/absolute/path/to/databar-mcp-server/dist/index.js"],
"env": {
"DATABAR_API_KEY": "your-api-key-here"
}
}
}
}Restart Claude Desktop. Verify by asking: "What Databar tools do you have access to?"
Usage Examples
Find someone's LinkedIn profile
"Get me David Abaev's LinkedIn profile"
Claude searches for LinkedIn enrichments, picks the right one, runs it, and returns the profile data.
Verify an email address
"Verify the email david@databar.ai"
Find an email using waterfall
"Find the email for John Smith at Google"
Runs a waterfall that tries multiple providers until one returns a result.
Bulk enrich a list
"Enrich these 10 emails with company data: [list]"
Uses bulk enrichment to process all records in a single API call.
Manage table data
"List my tables"
"Create 5 rows in table abc-123 with columns name and email"
"Get the columns for table abc-123"
Available Tools
Enrichments
Tool | Description |
| Search enrichments by keyword or category |
| Get parameters, pricing, and response fields for an enrichment |
| Run a single enrichment (with auto-polling and caching) |
| Run an enrichment on multiple inputs at once |
Waterfalls
Tool | Description |
| Search available waterfall enrichments |
| Run a waterfall (tries providers sequentially) |
| Run a waterfall on multiple inputs at once |
Tables
Tool | Description |
| Create a new empty table |
| List all tables in your workspace |
| Get column schema for a table |
| Get rows with pagination |
| List enrichments configured on a table |
| Add an enrichment to a table with column mapping |
| Trigger an enrichment on all rows in a table |
Row Operations
Tool | Description |
| Insert up to 50 rows with deduplication options |
| Update fields on existing rows by ID |
| Insert or update rows based on a matching key |
Account
Tool | Description |
| Get credit balance and account info |
Configuration
All settings are configurable via environment variables:
Variable | Default | Description |
| (required) | Your Databar API key |
|
| API base URL |
|
| Result cache TTL in hours |
|
| Max polling attempts for async tasks |
|
| Polling interval in ms |
How It Works
Async Task Handling
Server sends a run request to the Databar API
API returns a
task_idServer automatically polls
/v1/tasks/{task_id}every 2 secondsWhen status is
completed, results are returnedIf data has expired (1-hour retention),
gonestatus is handled gracefully
Caching
Results are cached for 24 hours by default
Cache key: enrichment ID + serialized params
Cached results don't consume credits
Use
skip_cache: trueto force fresh data
Smart Categorization
Enrichments are automatically categorized (People, Company, Email, Phone, Social, Financial, Verification) to help the AI assistant pick the right tool.
Development
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm start # Run compiled outputProject Structure
databar-mcp-server/
├── src/
│ ├── index.ts # MCP server entry point & tool handlers
│ ├── databar-client.ts # Databar API client with polling
│ ├── cache.ts # In-memory cache with TTL
│ ├── types.ts # TypeScript type definitions
│ └── utils.ts # Helpers & categorization
├── dist/ # Compiled output (generated)
├── package.json
├── tsconfig.json
└── .gitignoreTroubleshooting
Problem | Solution |
Server not connecting | Verify API key, rebuild ( |
"No enrichments found" | Try a broader search query; list cache refreshes every 5 minutes |
"Task timed out" | Some enrichments take longer; increase |
"Task data has expired" | Data is stored for 1 hour only; re-run the enrichment |
"Invalid API key" | Check |
Resources
License
MIT
Available Tools
37 toolsadd_table_enrichmentA
Add an enrichment to a table with a parameter-to-column mapping.
IMPORTANT — mapping format: Each key is an enrichment parameter name. Each value is one of: • { "type": "mapping", "value": "" } — read value from a table column per row. Use the human-readable column name (e.g. "email"). The server accepts column names directly. • { "type": "simple", "value": "" } — pass the same hardcoded value for every row. IMPORTANT: simple values can embed column references using {column_internal_name} syntax (e.g. "Find the industry of {column1}"). The internal_name for each column is shown by get_table_columns. At runtime, these placeholders are replaced with actual column values per row. You can also use human-readable column names (e.g. {Company Website}) — the server will auto-resolve them to internal names. Use {?column_name} to mark a column reference as optional (row won't fail if the column is empty).
WORKFLOW:
Call get_enrichment_details to see the parameter names.
Call get_table_columns to see available column names and their internal_names.
Build the mapping using column names (not UUIDs). For text/textarea parameters that should incorporate column data, use "simple" type with {column_internal_name} placeholders in the value.
The returned enrichment_id from this call is the TABLE-ENRICHMENT id — use it with run_table_enrichment (NOT the original enrichment_id).
Inputs: table_uuid (required), enrichment_id (required), mapping (required), launch_strategy.
add_table_exporterA
Add an exporter (CRM/destination) to a table with a parameter-to-column mapping.
IMPORTANT — mapping format: Each key is an exporter parameter name. Each value is one of: • { "type": "mapping", "value": "" } — read value from a table column per row. Use the human-readable column name (e.g. "email"). The server accepts column names directly. • { "type": "simple", "value": "" } — pass the same hardcoded value for every row.
WORKFLOW:
Call get_exporter_details to see the parameter names.
Call get_table_columns to see available column names.
Build the mapping using column names (not UUIDs).
The returned exporter_id from this call is the TABLE-EXPORTER id — use it with run_table_exporter (NOT the original exporter_id).
Inputs: table_uuid (required), exporter_id (required), mapping (required), launch_strategy, +2 more.
add_table_waterfallA
Add a waterfall to a table. A waterfall tries multiple data providers in sequence until one returns a result.
WORKFLOW:
Call search_waterfalls to find the right waterfall (e.g. "email_getter", "person_getter").
Note the waterfall identifier, available_enrichments (provider IDs), and input_params.
Call get_table_columns to see available column names.
Build the mapping: keys are waterfall param names, values are column names.
The returned id is the TABLE-WATERFALL id — use it with run_table_enrichment to trigger a run.
Inputs: table_uuid (required), waterfall_identifier (required), enrichments (required), mapping (required), +1 more.
create_columnB
Add a new column to an existing table.
Inputs: table_uuid (required), name (required), type.
create_folderB
Create a new folder to organize tables in your workspace.
Inputs: name (required).
create_rowsA
Insert new rows into a table (max 100 per request). To add new columns to an existing table, set options.allow_new_columns to true — any column name in fields that does not exist yet will be auto-created as a text column.
Inputs: table_uuid (required), rows (required), options.
create_tableB
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.
Inputs: name, columns, rows.
delete_columnC
Delete a column from a table.
Inputs: table_uuid (required), column_id (required).
delete_folderA
Delete a folder. Tables inside the folder are NOT deleted.
Inputs: folder_id (required).
delete_rowsB
Delete specific rows from a table by their row IDs.
Inputs: table_uuid (required), row_ids (required).
delete_tableA
Permanently delete a table and all its data.
Inputs: table_uuid (required).
get_enrichment_detailsA
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.
Inputs: enrichment_id (required).
get_exporter_detailsB
Get detailed information about a specific exporter, including its required parameters and output fields. Use this to understand what parameters are needed before adding the exporter to a table.
Inputs: exporter_id (required).
get_param_choicesA
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.
Inputs: enrichment_id (required), param_name (required), q, page, +1 more.
get_table_columnsA
Get all columns defined on a table. Returns column names, types, and identifiers.
Inputs: table_uuid (required).
get_table_enrichmentsB
List all enrichments configured on a table.
Inputs: table_uuid (required).
get_table_exportersA
List all exporters configured on a table. Returns exporter IDs that can be used with run_table_exporter.
Inputs: table_uuid (required).
get_table_rowsA
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 with 5 operators: equals, contains, not_equals, is_empty, is_not_empty. Multiple filters use AND logic.
Inputs: table_uuid (required), page, per_page, filter.
get_table_waterfallsA
List all waterfalls installed on a table. Returns waterfall IDs that can be used with run_table_enrichment.
Inputs: table_uuid (required).
get_user_balanceA
Get the current user's credit balance and account information.
Inputs: no named parameters.
list_foldersA
List all folders in your workspace.
Inputs: no named parameters.
list_tablesA
List all tables in your Databar workspace. Returns table UUIDs, names, and timestamps.
Inputs: no named parameters.
move_table_to_folderA
Move a table into a folder, or remove it from its current folder by passing folder_id as null.
Inputs: table_uuid (required), folder_id.
patch_rowsA
Update specific fields on existing rows by row ID (max 100 per request).
Inputs: table_uuid (required), rows (required), overwrite.
rename_columnB
Rename an existing column on a table.
Inputs: table_uuid (required), column_id (required), name (required).
rename_folderB
Rename an existing folder.
Inputs: folder_id (required), name (required).
rename_tableB
Rename an existing table.
Inputs: table_uuid (required), name (required).
run_bulk_enrichmentA
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).
Inputs: enrichment_id (required), params_list (required), pages.
run_bulk_waterfallC
Execute a waterfall enrichment on multiple inputs at once. Subject to spending limits.
Inputs: waterfall_identifier (required), params_list (required), provider_ids, email_verifier.
run_enrichmentA
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).
Inputs: enrichment_id (required), params (required), skip_cache, pages.
run_table_enrichmentA
Trigger an enrichment or waterfall to run on a table. By default runs on all rows. Optionally specify row_ids to run on specific rows, and run_strategy to control row selection. Works for both enrichments (from add_table_enrichment) and waterfalls (from add_table_waterfall). Subject to spending limits.
Inputs: table_uuid (required), enrichment_id (required), row_ids, run_strategy.
run_table_exporterB
Trigger an exporter to run on a table. By default runs on all rows. Use run_strategy to control row selection. Subject to spending limits.
Inputs: table_uuid (required), exporter_id (required), run_strategy.
run_waterfallB
Execute a waterfall enrichment that tries multiple providers until one succeeds. Subject to spending limits.
Inputs: waterfall_identifier (required), params (required), provider_ids, email_verifier.
search_enrichmentsA
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.
Inputs: query (required), category, limit.
search_exportersA
Search and discover available data exporters (CRM/destination integrations). Use this to find the right exporter for pushing data to external services (e.g., "Google Sheets", "HubSpot", "Salesforce"). Returns a list of matching exporters with their IDs and descriptions.
Inputs: query (required), limit.
search_waterfallsA
Search available waterfall enrichments. Waterfalls try multiple data providers in sequence until one succeeds, maximizing data retrieval success rate.
Inputs: query (required).
upsert_rowsA
Insert or update rows by matching key (max 100 per request).
Inputs: table_uuid (required), rows (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 37 tools
Each tool has a clearly distinct purpose, covering separate operations like CRUD for tables/columns/rows, discovery and execution of enrichments/exporters/waterfalls, and configuration management. Overlaps like run_enrichment vs run_bulk_enrichment are well-differentiated by scope.
Tool names follow a consistent verb_noun pattern (e.g., create_table, search_enrichments, run_waterfall). Even less common names like patch_rows and upsert_rows fit the pattern. No mixing of conventions or vague verbs.
With 37 tools, the server covers a broad domain (table management, enrichment workflows, export, waterfalls). While slightly above the typical well-scoped range, each tool addresses a specific need and the count is justified by the feature set.
Core CRUD for tables, columns, rows, folders is present, and enrichment/export/waterfall workflow is covered. However, missing removal operations for table-level configurations (no delete_table_enrichment or remove_table_exporter) leave a notable gap.
Maintenance
Related MCP Connectors
Find and call verified APIs from any AI assistant, with free trial calls and previewed writes.
Query your Logspot analytics, companies, and revenue from any AI assistant, and run your actions.
Real-time Meta, Google, LinkedIn and TikTok ad library access for AI assistants. No API keys.
Query your Leapio analytics, companies, and revenue from any AI assistant, and run your actions.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to enrich and retrieve company data by connecting to the DataMerge Company API. It supports operations such as starting enrichment jobs, fetching company records, and inspecting corporate hierarchies.9 npmMIT

Prospeo MCP Serverofficial
AlicenseAqualityCmaintenanceEnables AI tools to search and enrich B2B leads, including finding professional emails, company profiles, and filtering people and companies by various criteria.5468 npmMIT
Enrow MCP Serverofficial
AlicenseAqualityCmaintenanceEnables AI assistants to find and verify professional emails and phone numbers via the Enrow API.131MIT- AlicenseAqualityDmaintenanceEnables AI assistants to connect to and interact with PostgreSQL, MySQL, SQLite, and MongoDB databases through natural language, supporting schema exploration, query execution, data export, and more.13MIT