MarTech MCP Server
Exposes marketing catalogs (offers, assets, campaigns, and computed metrics) to MCP clients, enabling natural language queries and AI-driven marketing analysis.
README
MarTech MCP Server
An industry-agnostic Model Context Protocol server that exposes marketing catalogs — offers, assets, campaigns, and computed offer metrics — to any MCP client (Claude Desktop, other AI assistants, or an orchestration platform).
It reads catalogs from CSV today and is designed so the data source can be swapped for a database or object storage (R2/S3) later without changing the tools. A customer integrates by exporting CSVs from whatever backend they use, placing them in a configured location, and pointing the server at it — the server and any connected AI tool never store the data and never touch the source systems.
This is a reference implementation with a defined catalog contract, not a universal connector for every martech vendor. Extend the CSV contract and the
CatalogSourceto fit your systems.
Tools
Reference lookups:
search_offers— find offers by free-text query, category, and/or segmentget_offer— full offer record by ID or nameget_assets_for_offer— creative assets linked to an offersearch_campaigns— find campaigns by query and/or segmentget_campaign— full campaign record by ID or name
Computed metrics (from an event fact table; individual profiles are only ever counted, never exposed):
get_offer_performance— impressions, clicks, CTR, unique reach for an offer; optional breakdown by segment or placementget_top_offers— offers ranked by CTR, optionally filtered by segment/placementget_campaign_performance— aggregate performance for a campaign
Catalog contract (CSV)
Multi-value fields use a semicolon (;) delimiter.
- offers.csv: Offer ID, Offer Name, Offer Category, Offer Tone, Offer Segments, Offer Title, Offer Description, Offer Subtitle, Offer Eyebrow Text, Offer Image Asset URL, Offer CTA Text, Offer CTA URL, Offer CTA 2 Text, Offer CTA 2 URL
- assets.csv: Asset ID, Asset Name, Asset URL, Asset Tags
- campaigns.csv: Campaign ID, Campaign Name, Campaign Brief, Campaign Segments, Campaign Offers, Campaign Attribution IDs, Targeted Placements
- offer_metrics.csv: Offer ID, Placement, Segment, Profile ID, Action (View/Click), Campaign ID
Run locally
npm install
npm run build
npm start # runs the compiled server on stdio
# or, during development:
npm run dev # runs from source with tsx
npm run inspect # opens the MCP Inspector against the server
Set MARTECH_DATA_DIR to use a different catalog directory (defaults to ./data).
Connect to Claude Desktop
Add this to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"martech": {
"command": "node",
"args": ["/absolute/path/to/martech-mcp-server/dist/index.js"]
}
}
}
Restart Claude Desktop, then ask things like "What offers do we have for lapsed customers?" or "What's the click-through rate for campaign TMO-CMP-001?" — Claude will call the tools and read your catalogs live.
Roadmap
- Swap
CsvCatalogSourcefor an R2/S3-backed source (read CSVs from a bucket) and a database source. - Per-customer configuration (point at a customer's bucket/prefix).
- Remote transport (HTTP/SSE) for hosted, multi-client access.
Run as a remote server (for Claude custom connectors)
The server also runs over HTTP (Streamable HTTP transport) so it can be added as a remote custom connector in Claude (claude.ai, Claude Desktop, Cowork).
npm install
npm run build
npm start # HTTP server on :3000 (or $PORT), MCP endpoint at POST /mcp
Health check: GET / · MCP endpoint: POST /mcp
Deploy free on Render
- Push this repo to GitHub.
- On render.com: New → Web Service → connect this repo.
- Render reads
render.yamlautomatically (buildnpm install && npm run build, startnpm start, free plan). - After deploy you get a URL like
https://martech-mcp-server.onrender.com. - In Claude → Add custom connector → Remote MCP server URL =
https://martech-mcp-server.onrender.com/mcp(leave OAuth blank).
Note: Render's free tier sleeps after inactivity; the first request after idle may take ~30–60s to wake.
Run locally for Claude Desktop (stdio)
npm run build
npm run start:stdio
Then point claude_desktop_config.json at dist/index.js (see earlier example).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.