🚀 azure-data-lake-storage-mcp-server-by-cdata
CData 为 Azure 数据湖存储打造的模型上下文协议(MCP)服务器。该项目构建了一个只读的 MCP 服务器,允许大语言模型(LLMs)通过自然语言查询 Azure 数据湖存储中的实时数据。
🚀 快速开始
用途
我们创建这个只读 MCP 服务器,是为了让大语言模型(如 Claude Desktop)能够查询由 CData JDBC 驱动程序 for Azure 数据湖存储 支持的 Azure 数据湖存储中的实时数据。
CData JDBC 驱动程序通过将 Azure 数据湖存储暴露为关系型 SQL 模型来与之建立连接。此服务器对该驱动程序进行封装,通过简单的 MCP 接口使 Azure 数据湖存储的数据变得可用,这样大语言模型就可以通过自然语言问题来检索实时信息,无需使用 SQL。
安装指南
- 克隆仓库:
git clone https://github.com/cdatasoftware/azure-data-lake-storage-mcp-server-by-cdata.git
cd azure-data-lake-storage-mcp-server-by-cdata
- 构建服务器:
mvn clean install
此操作会创建 JAR 文件:CDataMCP-jar-with-dependencies.jar。
3. 下载并安装 CData JDBC 驱动程序:https://www.cdata.com/drivers/azuredatalake/download/jdbc
4. 为 CData JDBC 驱动程序授权:
- 导航到安装目录下的 lib 文件夹,通常位置如下:
- (Windows)C:\Program Files\CData\CData JDBC Driver for Azure Data Lake Storage\
- (Mac/Linux)/Applications/CData JDBC Driver for Azure Data Lake Storage/
- 运行命令 java -jar cdata.jdbc.adls.jar --license
- 输入您的姓名、电子邮件和 “TRIAL”(或您的许可证密钥)。
5. 配置与数据源的连接(以 Salesforce 为例):
- 运行命令 java -jar cdata.jdbc.adls.jar 打开连接字符串实用程序。
- 配置连接字符串并点击 “测试连接”。
> ⚠️ 重要提示:
>
> 如果数据源使用 OAuth,您需要在浏览器中进行身份验证。
- 连接成功后,复制连接字符串以备后续使用。
6. 创建 JDBC 连接的 .prp 文件(例如 azure-data-lake-storage.prp),使用以下属性和格式:
- Prefix - 用于公开工具的前缀
- ServerName - 服务器的名称
- ServerVersion - 服务器的版本
- DriverPath - JDBC 驱动程序 JAR 文件的完整路径
- DriverClass - JDBC 驱动程序类的名称(例如 cdata.jdbc.adls.ADLSDriver)
- JdbcUrl - 用于与 CData JDBC 驱动程序连接到数据的 JDBC 连接字符串(从上面复制)
- Tables - 留空以访问所有数据,否则可以明确声明要创建访问权限的表
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=
使用服务器与 Claude Desktop
- 创建 Claude Desktop 的配置文件(claude_desktop_config.json),以添加新的 MCP 服务器,使用以下格式。如果文件已存在,将条目添加到配置文件的 mcpServers中。
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"
            ]
        },
        ...
    }
}
如有需要,将配置文件复制到相应目录(以 Claude Desktop 为例)。
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
- 运行或刷新您的客户端(Claude Desktop)。
⚠️ 重要提示:
您可能需要完全退出或关闭 Claude Desktop 客户端,然后重新打开,MCP 服务器才会显示。
运行服务器
运行以下命令以独立运行 MCP 服务器:
java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prp
⚠️ 重要提示:
服务器使用 stdio,因此只能与和服务器运行在同一台机器上的客户端一起使用。
使用详情
MCP 服务器配置完成后,AI 客户端将能够使用内置工具来读取、写入、更新和删除底层数据。一般来说,您无需显式调用这些工具。只需让客户端回答有关底层数据系统的问题即可。例如:
- “我已成交的机会与客户行业之间的相关性是什么?”
- “我在 SUPPORT 项目中有多少未解决的工单?”
- “你能告诉我今天有哪些日历事件吗?”
可用工具及其描述如下:
工具与描述
在以下定义中,{servername} 指的是配置文件中 MCP 服务器的名称(例如上面的 {classname_dash})。
- {servername}_get_tables- 检索数据源中可用表的列表。使用- {servername}_get_columns工具列出表上可用的列。该工具的输出将以 CSV 格式返回,第一行包含列标题。
- {servername}_get_columns- 检索表的列列表。使用- {servername}_get_tables工具获取可用表的列表。该工具的输出将以 CSV 格式返回,第一行包含列标题。
- {servername}_run_query- 执行 SQL SELECT 查询
JSON-RPC 请求示例
如果您不使用 AI 客户端(如 Claude),而是通过脚本向 MCP 服务器发送请求,那么在调用可用工具时,可以参考以下遵循 JSON-RPC 2.0 规范的 JSON 有效负载示例。
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"
        }
    }
}
故障排除
- 如果在 Claude Desktop 中看不到您的 CData MCP 服务器,请确保您已完全退出 Claude Desktop(Windows:使用任务管理器,Mac:使用活动监视器)。
- 如果 Claude Desktop 无法检索数据,请确保您已正确配置连接。使用连接字符串构建器创建连接字符串(见上文),并将连接字符串复制到属性(.prp)文件中。
- 如果在连接数据源时遇到问题,请联系 CData 支持团队。
- 如果在使用 MCP 服务器时遇到问题,或有任何其他反馈,请加入 CData 社区。
许可证
此 MCP 服务器根据 MIT 许可证授权。这意味着您可以自由使用、修改和分发该软件,但需遵守 MIT 许可证的条款和条件。有关更多详细信息,请参阅项目仓库中的 LICENSE 文件。
所有支持的数据源
| 数据源 | 数据源 | 数据源 | 数据源 | 
| 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 | 更多... |