cdata-veeva-mcp-gateway
Establishes a direct interface for leveraging natural language processing against live Veeva data, accessible via a streamlined Model Context Protocol (MCP) endpoint. This facilitates immediate data retrieval without necessitating proficiency in Structured Query Language (SQL), utilizing the CData JDBC Driver for Veeva data model integration.
Author

CDataSoftware
Quick Info
Actions
Tags
CData Veeva Model Context Protocol (MCP) Server Implementation
This repository details the construction of a read-only MCP server component designed specifically for interacting with Veeva systems.
:warning: Important Notice: This utility is strictly limited to data retrieval operations (read-only). For a comprehensive solution supporting full data manipulation capabilities (read, write, update, delete, and executing actions), as well as simplified initial configuration, please explore our beta offering: CData MCP Server for Veeva (beta).
Core Functionality
This read-only MCP Server was engineered to empower Large Language Models (LLMs), such as Claude Desktop, to execute queries against real-time data residing within Veeva. Its operation is underpinned by the CData JDBC Driver for Veeva.
The CData JDBC Driver functions by abstracting Veeva data structures into a conventional relational SQL paradigm. Our server then envelops this driver, exposing the Veeva information via a simplified MCP structure. Consequently, LLMs can interrogate the live dataset using conversational language, eliminating the prerequisite for writing explicit SQL commands.
Deployment Procedure
-
Acquire Source Code: Initiate by cloning this repository: bash git clone https://github.com/cdatasoftware/veeva-mcp-server-by-cdata.git cd veeva-mcp-server-by-cdata
-
Compile Artifact: Build the necessary executable JAR file: bash mvn clean install
The resulting file will be named:
CDataMCP-jar-with-dependencies.jar3. Driver Installation: Procure and install the CData JDBC Driver tailored for your data source: https://www.cdata.com/drivers/veeva/download/jdbc 4. Driver Licensing: Activate the JDBC Driver: * Navigate to the driver's installation directory, typically located here: * (Windows)C:\Program Files\CData\CData JDBC Driver for Veeva\* (Mac/Linux)/Applications/CData JDBC Driver for Veeva/* Execute the licensing utility:java -jar cdata.jdbc.veevavault.jar --license* Input your identification details (name, email) and the license key (use "TRIAL" if applicable). 5. Connection String Definition: Configure the pathway to your data repository (e.g., Salesforce): * Execute the driver executable to launch the connection utility:java -jar cdata.jdbc.veevavault.jar- Define the connection parameters within the utility, execute "Test Connection", and validate success.
OAuth Note: If the target system mandates OAuth, authentication will proceed via a web browser prompt.
- Secure and retain the generated connection string for the next phase.
- Configuration File Creation (
.prp): Construct a property file (e.g.,veeva.prp) defining the server settings based on the following mandatory parameters: - Prefix: Identifier prefix for exposed tools.
- ServerName: Assigned name for this specific MCP server instance.
- ServerVersion: Version designation for the server.
- DriverPath: Absolute path pointing to the installed JDBC driver JAR file.
- DriverClass: The fully qualified name of the JDBC Driver Class (e.g.,
cdata.jdbc.veevavault.VeevaVaultDriver). - JdbcUrl: The connection string obtained in the previous step.
- Tables: Specify individual table names separated by commas, or leave empty to enable access to all available data structures. env Prefix=veevault ServerName=VeevaDataGateway ServerVersion=1.0.1 DriverPath=ABSOLUTE/PATH/TO/cdata.jdbc.veevavault.jar DriverClass=cdata.jdbc.veevavault.VeevaVaultDriver JdbcUrl=jdbc:veevavault:InitiateOAuth=GETANDREFRESH;...other_params... Tables=
- Define the connection parameters within the utility, execute "Test Connection", and validate success.
Integrating with AI Clients (e.g., Claude Desktop)
-
Client Configuration Update: Create or modify the client's configuration file (e.g.,
claude_desktop_config.json) to register this new MCP endpoint. Add an entry within themcpServersobject, utilizing the format below:Windows Environment
{ "mcpServers": { "veevault_gateway": { "command": "C:\PATH\TO\java.exe", "args": [ "-jar", "C:\PATH\TO\CDataMCP-jar-with-dependencies.jar", "C:\PATH\TO\veeva.prp" ] }, ... } }
Linux/macOS Environment
{ "mcpServers": { "veevault_gateway": { "command": "/usr/bin/java", "args": [ "-jar", "/opt/mcp/CDataMCP-jar-with-dependencies.jar", "/etc/configs/veeva.prp" ] }, ... } }
If the configuration file resides in a default location, copy it over: Windows bash cp C:\LOCAL\PATH\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json
Linux/Mac bash cp /LOCAL/PATH/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json
-
Client Restart: Ensure the client application (e.g., Claude Desktop) is completely restarted or refreshed for the newly defined MCP services to appear in the available toolset.
Direct Server Execution
- To initiate the MCP server independently (useful for direct JSON-RPC testing):
bash
java -jar /ABSOLUTE/PATH/TO/CDataMCP-jar-with-dependencies.jar /ABSOLUTE/PATH/TO/veeva.prp
Constraint: The server communicates exclusively via standard input/output (
stdio), mandating that any consuming client must execute on the same host machine as the server process.
Operational Usage Model
Once the MCP server is successfully linked via the client's configuration, the AI assistant gains access to integrated functionality for manipulating the underlying database objects. Typically, explicit tool invocation is unnecessary; simply pose data-centric inquiries in natural language. Examples of effective prompts include: * "Analyze the correlation coefficient between opportunities marked as 'Closed Won' and the assigned Account Industry classification." * "Quantify the total number of active support incidents recorded within the 'SUPPORT' operational project." * "List my scheduled calendar entries for the current day."
Exposed Tool Interface Reference
Tool names will incorporate the prefix defined in your configuration (e.g., veevault becomes {servername} in the examples below).
* {servername}_get_tables: Fetches a comprehensive manifest of accessible data tables. For field introspection, chain this with the {servername}_get_columns tool. Output is delivered in CSV format, with the initial row detailing column headers.
* {servername}_get_columns: Returns the schema definition (column list) for a specified table. Always reference {servername}_get_tables first to identify valid table names. Output adheres to CSV formatting, starting with header definitions.
* {servername}_run_query: Permits the direct execution of arbitrary SQL SELECT statements against the data source.
JSON-RPC Invocation Schemas
For programmatic interaction bypassing an integrated AI client, utilize JSON-RPC 2.0 compliant payloads to invoke the available methods:
Invoking veevault_get_tables
{ "jsonrpc": "2.0", "id": 101, "method": "tools/call", "params": { "name": "veevault_get_tables", "arguments": {} } }
Invoking veevault_get_columns
{ "jsonrpc": "2.0", "id": 102, "method": "tools/call", "params": { "name": "veevault_get_columns", "arguments": { "table": "Account_Object__c" } } }
Invoking veevault_run_query
{ "jsonrpc": "2.0", "id": 103, "method": "tools/call", "params": { "name": "veevault_run_query", "arguments": { "sql": "SELECT Name, CreatedDate FROM [Account_Object__c] WHERE IsDeleted = true LIMIT 10" } } }
Common Issues and Resolutions
- Server Visibility Failure: If the CData MCP Server does not appear in the client interface, confirm that the client application has been completely terminated (use Task Manager/Activity Monitor to verify no background processes remain).
- Data Retrieval Errors: If the client cannot fetch data, meticulously re-verify the connection settings. Use the integrated Connection String builder to confirm validity, then ensure the resulting string is accurately transferred to the configuration (
.prp) file. - Source Connection Problems: For connectivity failures to the primary data repository, direct consultation with the CData Support Team is recommended.
- MCP Server Operation Feedback: Should you encounter issues specifically with the MCP server's functionality or wish to provide general commentary, engage with the CData Community.
Licensing
This MCP server component is distributed under the permissive MIT License. This grants users the freedom to employ, modify, and disseminate the software, provided compliance is maintained with the stipulations outlined in the MIT License text, accessible via the LICENSE file within this repository.
Supported Data Connectors Overview
A vast array of data systems are compatible via the CData JDBC infrastructure. While the focus here is Veeva, this table illustrates the breadth of supported sources:
| 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 | EnterpriseDB | Epicor Kinetic | |
| Exact Online | Excel | Excel Online | |
| 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 | JDBC-ODBC Bridge | |
| Jira | Jira Assets | Jira Service Management | JSON |
| Kafka | Kintone | LDAP | |
| 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 | 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 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 | ... Many More |
