linkedinads_get_tablesLABSCO SUMMARY
Campaign numbers a model can actually check.
Ad reporting is exactly the kind of question where a confident guess is worthless, and the read-only SELECT path here means every figure comes back from the platform rather than from the model's priors. The three-tool surface keeps it simple; the CData driver licence is the prerequisite that decides whether this is practical for you.
What it is
A local MCP server built on the CData JDBC Driver for LinkedIn Ads, which presents the ad platform as relational SQL tables. The model is given the table list, the column list, and a read-only query tool, so campaign questions are answered from live data. It runs over stdio and therefore only works with a client on the same machine.
What you get
- The LinkedIn Ads tables the driver exposes, as CSV with a header row —
linkedinads_get_tables - The columns of a chosen table, so the model builds queries against real field names —
linkedinads_get_columns - A SQL
SELECTrun against live LinkedIn Ads data —linkedinads_run_query - A
Tablessetting that only picks which tables also get a ready-made description (blank means none); it does not limit what the tools can list or query, so limit the connection or the account it signs in with
Requirements
A LinkedIn Ads account and a licensed CData JDBC Driver for LinkedIn Ads — trial licences are accepted via java -jar cdata.jdbc.linkedinads.jar --license. Java runs the server; Maven builds it with mvn clean install, producing CDataMCP-jar-with-dependencies.jar. A .prp connection file carries DriverClass as cdata.jdbc.linkedinads.LinkedInAdsDriver, the driver jar path, a tool Prefix such as linkedinads, and the JDBC connection string from the driver's Connection String utility — OAuth sources authenticate in the browser at that step. MIT licensed.
Setup effort
Build from source — git clone https://github.com/cdatasoftware/linkedin-ads-mcp-server-by-cdata.git
USE CASES
Answering a campaign performance question
Ask in plain language and let the model find the right table, read its columns, and pull the numbers with one SELECT.
Discovering what reporting fields exist
List tables and columns to see what the driver actually exposes before designing a recurring report.
3 tools
Listed in project docs. Your client may show a different list.
linkedinads_get_columnslinkedinads_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Tool names start with the Prefix in the .prp file, so the README's Prefix=linkedinads gives linkedinads_get_tables, linkedinads_get_columns and linkedinads_run_query. All three only read: run_query executes SQL SELECT, despite a sentence in the documentation promising write, update and delete.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/cdatasoftware/linkedin-ads-mcp-server-by-cdata.git
cd linkedin-ads-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for LinkedIn Ads from https://www.cdata.com/drivers/linkedinads/download/jdbc
License the driver: from the driver install's lib folder run java -jar cdata.jdbc.linkedinads.jar --license, then enter your name, email, and "TRIAL" (or your license key)
Build the connection string: run java -jar cdata.jdbc.linkedinads.jar to open the Connection String utility, click "Test Connection" (browser OAuth if the source needs it), and copy the connection string
Create linkedin-ads.prp with:
Prefix=linkedinads
ServerName=CDataLinkedInAds
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.linkedinads.LinkedInAdsDriver
JdbcUrl=<YOUR_JDBC_URL>
Tables=Tables only picks which tables also get a ready-made description for your assistant, and empty means none; the server can still list and query every table your connection string reaches, so to keep data out of reach, limit that connection or the account it signs in with.
Add the mcpServers entry (block below) to claude_desktop_config.json, then fully quit and re-open the client
MCP Clients
Claude Desktop — Linux, macOS
{
"mcpServers": {
"linkedin-ads": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_LINKEDIN_ADS>"
]
}
}
}