🚀 CData's MCP Server for Azure Data Lake Storage
CData's Model Context Protocol (MCP) Server for Azure Data Lake Storage allows LLMs to query live data from Azure Data Lake Storage.
:heavy_exclamation_mark: This project builds a read - only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Azure Data Lake Storage (beta).
🚀 Quick Start
We created this read - only MCP Server to enable LLMs (such as Claude Desktop) to query live data from Azure Data Lake Storage, which is supported by the CData JDBC Driver for Azure Data Lake Storage. The CData JDBC Driver connects to Azure Data Lake Storage by presenting them as relational SQL models. This server wraps the driver and makes the data accessible via a simple MCP interface, enabling LLMs to retrieve real - time information through natural language queries, eliminating the need for SQL.
✨ Features
- Allows LLMs to query live data from Azure Data Lake Storage.
- Wraps the CData JDBC Driver and provides a simple MCP interface.
- Enables natural - language queries without the need for SQL.
📦 Installation
Clone the repository
git clone https://github.com/cdatasoftware/azure-data-lake-storage-mcp-server-by-cdata.git
cd azure-data-lake-storage-mcp-server-by-cdata
Build the server
mvn clean install
This will generate the JAR file: CDataMCP-jar-with-dependencies.jar
.
Download and install the CData JDBC Driver
Download and install the CData JDBC Driver for Azure Data Lake Storage from https://www.cdata.com/drivers/azuredatalake/download/jdbc.
License the CData JDBC Driver
- Navigate to the
lib
folder in the installation directory:
- Windows:
C:\Program Files\CData\CData JDBC Driver for Azure Data Lake Storage\
- Mac/Linux:
/Applications/CData JDBC Driver for Azure Data Lake Storage/
- Run the command
java -jar cdata.jdbc.adls.jar --license
.
- Enter your name, email, and "TRIAL" (or your license key).
Configure the connection to the data source
- Run the command
java -jar cdata.jdbc.adls.jar
to open the Connection String utility.
- Configure the connection string and click "Test Connection".
⚠️ Important Note
If the data source uses OAuth, you need to authenticate in your browser.
- Once the connection test is successful, copy the connection string for later use.
Create a .prp
file
Create a .prp
file (e.g., azure-data-lake-storage.prp
) using the following properties and format:
Prefix=adls
ServerName=CDataADLS
ServerVersion=1.0
DriverPath=PATH\TO\cdata.jdbc.adls.jar
DriverClass=cdata.jdbc.adls.ADLSDriver
JdbcUrl=jdbc:adls:InitiateOAuth=GETANDREFRESH;
Tables=
💻 Usage Examples
Using the Server with Claude Desktop
Create the config file
Create the config file claude_desktop_config.json
for Claude Desktop to add the new MCP server. If the file already exists, add the entry to the mcpServers
section in the config file.
Windows
{
"mcpServers": {
"{classname_dash}": {
"command": "PATH\\TO\\java.exe",
"args": [
"-jar",
"PATH\\TO\\CDataMCP-jar-with-dependencies.jar",
"PATH\\TO\\azure-data-lake-storage.prp"
]
}
}
}
Linux/Mac
{
"mcpServers": {
"{classname_dash}": {
"command": "/PATH/TO/java",
"args": [
"-jar",
"/PATH/TO/CDataMCP-jar-with-dependencies.jar",
"/PATH/TO/azure-data-lake-storage.prp"
]
}
}
}
Copy the config file
If necessary, copy the config file to the appropriate directory.
Windows
cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json
Linux/Mac
cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json
Run or refresh the client
Run or refresh your Claude Desktop client.
⚠️ Important Note
You may need to fully exit and re - open your Claude Desktop client for the MCP Servers to appear.
Running the Server
Run the following command to start the MCP Server:
java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prp
⚠️ Important Note
The server uses stdio
, so it can only be used with clients running on the same machine as the server.
Usage Details
Once the MCP Server is configured, the AI client can use the built - in tools to read, write, update, and delete the underlying data. Generally, you don't need to call the tools explicitly. Just ask the client questions about the underlying data system, for example:
- "What is the correlation between my closed won opportunities and the account industry?"
- "How many open tickets do I have in the SUPPORT project?"
- "Can you tell me what calendar events I have today?"
Tools & Descriptions
In the following definitions, {servername}
refers to the name of the MCP Server in the config file (e.g., {classname_dash}
above).
{servername}_get_tables
: Retrieves a list of tables available in the data source. Use the {servername}_get_columns
tool to list available columns on a table. The output will be in CSV format, with the first line containing column headers.
{servername}_get_columns
: Retrieves a list of columns for a table. Use the {servername}_get_tables
tool to get a list of available tables. The output will be in CSV format, with the first line containing column headers.
{servername}_run_query
: Execute a SQL SELECT query.
JSON - RPC Request Examples
If you're scripting requests to the MCP Server instead of using an AI client (e.g., Claude), you can refer to the following JSON payload examples (following the JSON - RPC 2.0 specification) when calling the available tools.
azure_data_lake_storage_get_tables
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "azure_data_lake_storage_get_tables",
"arguments": {}
}
}
azure_data_lake_storage_get_columns
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "azure_data_lake_storage_get_columns",
"arguments": {
"table": "Account"
}
}
}
azure_data_lake_storage_run_query
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "azure_data_lake_storage_run_query",
"arguments": {
"sql": "SELECT * FROM [Account] WHERE [IsDeleted] = true"
}
}
}
📚 Documentation
Troubleshooting
- If you can't see your CData MCP Server in Claude Desktop, make sure you've fully quit Claude Desktop (use the Task Manager on Windows or the Activity Monitor on Mac).
- If Claude Desktop can't retrieve data, ensure that you've configured the connection correctly. Use the Connection String builder to create the connection string and copy it into the property (.prp) file.
- If you have trouble connecting to your data source, contact the CData Support Team.
- If you have trouble using the MCP server or have other feedback, join the CData Community.
📄 License
This MCP server is licensed under the MIT License. You're free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
All Supported Sources
Source |
Source |
Source |
Source |
Access |
Act CRM |
Act - On |
Active Directory |
ActiveCampaign |
Acumatica |
Adobe Analytics |
Adobe Commerce |
ADP |
Airtable |
AlloyDB |
Amazon Athena |
Amazon DynamoDB |
Amazon Marketplace |
Amazon S3 |
Asana |
Authorize.Net |
Avalara AvaTax |
Avro |
Azure Active Directory |
Azure Analysis Services |
Azure Data Catalog |
Azure Data Lake Storage |
Azure DevOps |
Azure Synapse |
Azure Table |
Basecamp |
BigCommerce |
BigQuery |
Bing Ads |
Bing Search |
Bitbucket |
Blackbaud FE NXT |
Box |
Bullhorn CRM |
Cassandra |
Certinia |
Cloudant |
CockroachDB |
Confluence |
Cosmos DB |
Couchbase |
CouchDB |
CSV |
Cvent |
Databricks |
DB2 |
DocuSign |
Dropbox |
Dynamics 365 |
Dynamics 365 Business Central |
Dynamics CRM |
Dynamics GP |
Dynamics NAV |
eBay |
eBay Analytics |
Elasticsearch |
Email |
EnterpriseDB |
Epicor Kinetic |
Exact Online |
Excel |
Excel Online |
Facebook |
Facebook Ads |
FHIR |
Freshdesk |
FTP |
GitHub |
Gmail |
Google Ad Manager |
Google Ads |
Google Analytics |
Google Calendar |
Google Campaign Manager 360 |
Google Cloud Storage |
Google Contacts |
Google Data Catalog |
Google Directory |
Google Drive |
Google Search |
Google Sheets |
Google Spanner |
GraphQL |
Greenhouse |
Greenplum |
HarperDB |
HBase |
HCL Domino |
HDFS |
Highrise |
Hive |
HubDB |
HubSpot |
IBM Cloud Data Engine |
IBM Cloud Object Storage |
IBM Informix |
Impala |
Instagram |
JDBC - ODBC Bridge |
Jira |
Jira Assets |
Jira Service Management |
JSON |
Kafka |
Kintone |
LDAP |
LinkedIn |
LinkedIn Ads |
MailChimp |
MariaDB |
Marketo |
MarkLogic |
Microsoft Dataverse |
Microsoft Entra ID |
Microsoft Exchange |
Microsoft OneDrive |
Microsoft Planner |
Microsoft Project |
Microsoft Teams |
Monday.com |
MongoDB |
MYOB AccountRight |
MySQL |
nCino |
Neo4J |
NetSuite |
OData |
Odoo |
Office 365 |
Okta |
OneNote |
Oracle |
Oracle Eloqua |
Oracle Financials Cloud |
Oracle HCM Cloud |
Oracle Sales |
Oracle SCM |
Oracle Service Cloud |
Outreach.io |
Parquet |
Paylocity |
PayPal |
Phoenix |
PingOne |
Pinterest |
Pipedrive |
PostgreSQL |
Power BI XMLA |
Presto |
Quickbase |
QuickBooks |
QuickBooks Online |
QuickBooks Time |
Raisers Edge NXT |
Reckon |
Reckon Accounts Hosted |
Redis |
Redshift |
REST |
RSS |
Sage 200 |
Sage 300 |
Sage 50 UK |
Sage Cloud Accounting |
Sage Intacct |
Salesforce |
Salesforce Data Cloud |
Salesforce Financial Service Cloud |
Salesforce Marketing |
Salesforce Marketing Cloud Account Engagement |
Salesforce Pardot |
Salesloft |
SAP |
SAP Ariba Procurement |
SAP Ariba Source |
SAP Business One |
SAP BusinessObjects BI |
SAP ByDesign |
SAP Concur |
SAP Fieldglass |
SAP HANA |
SAP HANA XS Advanced |
SAP Hybris C4C |
SAP Netweaver Gateway |
SAP SuccessFactors |
SAS Data Sets |
SAS xpt |
SendGrid |
ServiceNow |
SFTP |
SharePoint |
SharePoint Excel Services |
ShipStation |
Shopify |
SingleStore |
Slack |
Smartsheet |
Snapchat Ads |
Snowflake |
Spark |
Splunk |
SQL Analysis Services |
SQL Server |
Square |
Stripe |
Sugar CRM |
SuiteCRM |
SurveyMonkey |
Sybase |
Sybase IQ |
Tableau CRM Analytics |
Tally |
TaxJar |
Teradata |
Tier1 |
TigerGraph |
Trello |
Trino |
Twilio |
Twitter |
Twitter Ads |
Veeva CRM |
Veeva Vault |
Wave Financial |
WooCommerce |
WordPress |
Workday |
xBase |
Xero |
XML |
YouTube Analytics |
Zendesk |
Zoho Books |
Zoho Creator |
Zoho CRM |
Zoho Inventory |
Zoho Projects |
Zuora |
... Dozens More |