activecampaign_get_tablesLABSCO SUMMARY
Marketing data as tables, and only readable ones.
Campaign platforms are where 'can you pull the numbers for last quarter' turns into an afternoon of exports. Putting the account behind SQL lets the assistant answer that directly, and restricting it to SELECT means a wrong query wastes a moment rather than changing a list. The driver licence and the Maven build are a real up-front cost; CData's paid products are where the write path lives, so plan this one as reporting.
What it is
A local, read-only MCP server that exposes ActiveCampaign as a relational SQL model. It wraps CData's JDBC driver for ActiveCampaign, so contacts, campaigns and the rest of the account's objects appear as tables an assistant can discover and query in response to plain-language questions.
What you get
- The tables available in ActiveCampaign, returned as CSV with a header row —
get_tables - The columns on a chosen table, so a query can be written against real column names —
get_columns - A SQL SELECT executed against live ActiveCampaign data —
run_query - Tool names prefixed with the server name from your properties file, so multiple CData servers coexist in one client
- 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
An ActiveCampaign account, plus CData's JDBC driver for ActiveCampaign downloaded and licensed separately — java -jar cdata.jdbc.activecampaign.jar --license takes your name, email and TRIAL or a license key. Java and Maven: mvn clean install builds the runnable JAR. Then a .prp file with the prefix, server name and version, the driver JAR path, the driver class cdata.jdbc.activecampaign.ActiveCampaignDriver, and the JDBC connection string from the driver's connection-string utility. The client entry runs java with the JAR and the .prp path. Communication is over stdio, so the client must run on the same machine. MIT licensed.
Setup effort
Build from source
USE CASES
Pulling campaign numbers without an export
Ask the question in plain language and let the assistant discover the tables and write the query.
Understanding the schema you actually have
List tables and inspect columns to see how the account's data is really structured.
Answering a question that spans two systems
Run this alongside another CData server in the same client, each with its own prefix.
3 tools
Listed in project docs. Your client may show a different list.
activecampaign_get_columnsactivecampaign_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Tool names take the form {servername}_get_tables, {servername}_get_columns and {servername}_run_query, prefixed by your config. It is read-only: {servername}_run_query runs SQL SELECT queries, 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
Clone the repository: git clone https://github.com/cdatasoftware/activecampaign-mcp-server-by-cdata.git then cd activecampaign-mcp-server-by-cdata
Build the server: mvn clean install — this creates the JAR file CDataMCP-jar-with-dependencies.jar that the config block points at
Download and install the CData JDBC Driver for ActiveCampaign from https://www.cdata.com/drivers/activecampaign/download/jdbc/
License the driver: from the driver install's lib folder run java -jar cdata.jdbc.activecampaign.jar --license and enter your name, email, and "TRIAL" (or your license key)
Build the connection string: run java -jar cdata.jdbc.activecampaign.jar to open the Connection String utility, click "Test Connection", and copy the working connection string (browser OAuth may be required here)
Create a .prp file (e.g. activecampaign.prp) containing Prefix / ServerName / ServerVersion / DriverPath / DriverClass / JdbcUrl / Tables — set JdbcUrl to the connection string you copied in the previous step
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 to claude_desktop_config.json pointing at your java binary, the built JAR, and the .prp file; copy the file to %APPDATA%\Claude\ (Windows) or ~/Library/Application Support/Claude/ (Mac)
Fully quit and re-open Claude Desktop for the MCP server to appear
MCP Clients
Claude Desktop — macOS, Linux
{
"mcpServers": {
"activecampaign": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_ACTIVECAMPAIGN>"
]
}
}
}