logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

cdata-veeva-mcp-gateway logo

CDataSoftware

MIT License

Quick Info

GitHub GitHub Stars 3
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

jdbccdatasoftwarecdatacdata jdbcveeva datacdatasoftware veeva

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

  1. 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

  2. Compile Artifact: Build the necessary executable JAR file: bash mvn clean install

    The resulting file will be named: CDataMCP-jar-with-dependencies.jar 3. 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=

Integrating with AI Clients (e.g., Claude Desktop)

  1. 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 the mcpServers object, 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

  2. 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

  1. 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

  1. 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).
  2. 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.
  3. Source Connection Problems: For connectivity failures to the primary data repository, direct consultation with the CData Support Team is recommended.
  4. 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:

AccessAct CRMAct-OnActive Directory
ActiveCampaignAcumaticaAdobe AnalyticsAdobe Commerce
ADPAirtableAlloyDBAmazon Athena
Amazon DynamoDBAmazon MarketplaceAmazon S3Asana
Authorize.NetAvalara AvaTaxAvroAzure Active Directory
Azure Analysis ServicesAzure Data CatalogAzure Data Lake StorageAzure DevOps
Azure SynapseAzure TableBasecampBigCommerce
BigQueryBing AdsBing SearchBitbucket
Blackbaud FE NXTBoxBullhorn CRMCassandra
CertiniaCloudantCockroachDBConfluence
Cosmos DBCouchbaseCouchDBCSV
CventDatabricksDB2DocuSign
DropboxDynamics 365Dynamics 365 Business CentralDynamics CRM
Dynamics GPDynamics NAVeBayeBay Analytics
ElasticsearchEmailEnterpriseDBEpicor Kinetic
Exact OnlineExcelExcel OnlineFacebook
Facebook AdsFHIRFreshdeskFTP
GitHubGmailGoogle Ad ManagerGoogle Ads
Google AnalyticsGoogle CalendarGoogle Campaign Manager 360Google Cloud Storage
Google ContactsGoogle Data CatalogGoogle DirectoryGoogle Drive
Google SearchGoogle SheetsGoogle SpannerGraphQL
GreenhouseGreenplumHarperDBHBase
HCL DominoHDFSHighriseHive
HubDBHubSpotIBM Cloud Data EngineIBM Cloud Object Storage
IBM InformixImpalaInstagramJDBC-ODBC Bridge
JiraJira AssetsJira Service ManagementJSON
KafkaKintoneLDAPLinkedIn
LinkedIn AdsMailChimpMariaDBMarketo
MarkLogicMicrosoft DataverseMicrosoft Entra IDMicrosoft Exchange
Microsoft OneDriveMicrosoft PlannerMicrosoft ProjectMicrosoft Teams
Monday.comMongoDBMYOB AccountRightMySQL
nCinoNeo4JNetSuiteOData
OdooOffice 365OktaOneNote
OracleOracle EloquaOracle Financials CloudOracle HCM Cloud
Oracle SalesOracle SCMOracle Service CloudOutreach.io
ParquetPaylocityPayPalPhoenix
PingOnePinterestPipedrivePostgreSQL
Power BI XMLAPrestoQuickbaseQuickBooks
QuickBooks OnlineQuickBooks TimeRaisers Edge NXTReckon
Reckon Accounts HostedRedisRedshiftREST
RSSSage 200Sage 300Sage 50 UK
Sage Cloud AccountingSage IntacctSalesforceSalesforce Data Cloud
Salesforce Financial Service CloudSalesforce MarketingSalesforce Marketing Cloud Account EngagementSalesforce Pardot
SalesloftSAPSAP Ariba ProcurementSAP Ariba Source
SAP Business OneSAP BusinessObjects BISAP ByDesignSAP Concur
SAP FieldglassSAP HANASAP HANA XS AdvancedSAP Hybris C4C
SAP Netweaver GatewaySAP SuccessFactorsSAS Data SetsSAS xpt
SendGridServiceNowSFTPSharePoint
SharePoint Excel ServicesShipStationShopifySingleStore
SlackSmartsheetSnapchat AdsSnowflake
SparkSplunkSQL Analysis ServicesSQL Server
SquareStripeSugar CRMSuiteCRM
SurveyMonkeySybaseSybase IQTableau CRM Analytics
TallyTaxJarTeradataTier1
TigerGraphTrelloTrinoTwilio
TwitterTwitter AdsVeeva CRMVeeva Vault
Wave FinancialWooCommerceWordPressWorkday
xBaseXeroXMLYouTube Analytics
ZendeskZoho BooksZoho CreatorZoho CRM
Zoho InventoryZoho ProjectsZuora... Many More

See Also

`