🚀 CData的Salesforce Marketing只读MCP服务器
本项目构建了一个只读的Model Context Protocol (MCP)服务器,可让大语言模型(如Claude Desktop)通过自然语言查询Salesforce Marketing的实时数据,无需使用SQL。
🚀 快速开始
目的
我们创建这个只读的MCP服务器,是为了让大语言模型(如Claude Desktop)能够查询由CData JDBC Driver for Salesforce Marketing支持的Salesforce Marketing实时数据。CData JDBC驱动程序通过将Salesforce Marketing数据公开为关系型SQL模型来与之连接。该服务器封装了该驱动程序,并通过简单的MCP接口提供Salesforce Marketing数据,因此大语言模型可以通过自然语言问题检索实时信息,无需使用SQL。
⚠️ 重要提示
本项目构建的是只读MCP服务器。如需完整的读、写、更新、删除和操作功能,以及更简化的设置,请查看我们免费的CData MCP Server for Salesforce Marketing (beta)。
安装指南
- 克隆仓库:git clone https://github.com/cdatasoftware/salesforce-marketing-mcp-server-by-cdata.git
cd salesforce-marketing-mcp-server-by-cdata
 
- 构建服务器:mvn clean install
 这将创建JAR文件:CDataMCP-jar-with-dependencies.jar。
- 下载并安装CData JDBC驱动程序:https://www.cdata.com/drivers/salesforcemarketing/download/jdbc
- 为CData JDBC驱动程序授权:
- 导航到安装目录中的lib文件夹,通常为:
- (Windows)C:\Program Files\CData\CData JDBC Driver for Salesforce Marketing\
- (Mac/Linux)/Applications/CData JDBC Driver for Salesforce Marketing/
 
- 运行命令java -jar cdata.jdbc.sfmarketingcloud.jar --license
- 输入您的姓名、电子邮件和“TRIAL”(或您的许可证密钥)。
 
- 配置与数据源的连接(以Salesforce为例):
- 运行命令java -jar cdata.jdbc.sfmarketingcloud.jar以打开连接字符串实用程序。
- 配置连接字符串并点击“测试连接”。
注意:如果数据源使用OAuth,您需要在浏览器中进行身份验证。 
 
- 成功后,复制连接字符串以备后用。
 
- 使用以下属性和格式为您的JDBC连接创建一个.prp文件(例如salesforce-marketing.prp):
- Prefix - 用于公开工具的前缀
- ServerName - 服务器的名称
- ServerVersion - 服务器的版本
- DriverPath - JDBC驱动程序JAR文件的完整路径
- DriverClass - JDBC驱动程序类的名称(例如cdata.jdbc.sfmarketingcloud.SFMarketingCloudDriver)
- JdbcUrl - 用于与CData JDBC驱动程序连接到数据的JDBC连接字符串(从上面复制)
- Tables - 留空以访问所有数据,否则您可以明确声明要创建访问权限的表
 Prefix=sfmarketingcloud
ServerName=CDataSFMarketingCloud
ServerVersion=1.0
DriverPath=PATH\TO\cdata.jdbc.sfmarketingcloud.jar
DriverClass=cdata.jdbc.sfmarketingcloud.SFMarketingCloudDriver
JdbcUrl=jdbc:sfmarketingcloud: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\\salesforce-marketing.prp"
            ]
        }
    }
}
 Linux/Mac{
    "mcpServers": {
        "{classname_dash}": {
            "command": "/PATH/TO/java",
            "args": [
                "-jar",
                "/PATH/TO/CDataMCP-jar-with-dependencies.jar",
                "/PATH/TO/salesforce-marketing.prp"
            ]
        }
    }
}
 如果需要,将配置文件复制到适当的目录(以Claude Desktop为例)。
Windowscp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json
 Linux/Maccp /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请求示例
如果您要编写发送到MCP服务器的请求脚本,而不是使用AI客户端(例如Claude),则在调用可用工具时,可以参考以下JSON有效负载示例(遵循JSON-RPC 2.0规范)。
salesforce_marketing_get_tables
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "salesforce_marketing_get_tables",
        "arguments": {}
    }
}
salesforce_marketing_get_columns
{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
        "name": "salesforce_marketing_get_columns",
        "arguments": {
            "table":  "Account"
        }
    }
}
salesforce_marketing_run_query
{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
        "name": "salesforce_marketing_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 | ... 更多 |