Windsor.ai

Windsor.ai MCP Server — Connect AI Agents to Marketing Data

A Model Context Protocol server that lets AI agents and coding assistants like Claude, ChatGPT, Cursor and Copilot query live marketing, analytics, CRM and warehouse data from 325+ sources at Windsor.ai — and act on it, by pausing or enabling campaigns, changing budgets and bids, and uploading offline conversions.

Quick connect

Add this to your MCP client config (Claude Desktop, Cursor, Manus, Windsurf, etc.):

{
  "mcpServers": {
    "windsor": {
      "url": "https://mcp.windsor.ai/"
    }
  }
}

The server uses OAuth 2.0 — your client will redirect you to Windsor.ai the first time you connect. No API key needed. If your client only supports API keys, pass your Windsor.ai key as Authorization: Bearer <key>.

Overview

Windsor.ai MCP Server is a remote MCP server that exposes Windsor.ai's 325+ data connectors to any MCP-compatible AI client. Use it to pull live marketing performance data, query your data warehouse, build dashboards, calculate ROAS, and combine multi-channel data — all from natural-language prompts in your AI assistant.

Compatible AI Clients

Windsor.ai MCP works with any MCP-compatible client. Per-client setup guides live at windsor.ai/documentation/windsor-mcp/.

Available Tools

Supported Data Sources

325+ marketing, advertising, analytics, e-commerce, CRM, and database sources. The full list is available at /datasources or by calling get_connectors(include_not_yet_connected=True). Highlights:

Advertising

Meta Ads (Facebook & Instagram) Google Ads Microsoft Ads (Bing) TikTok Ads LinkedIn Ads Snapchat Pinterest Reddit X/Twitter Amazon Ads Apple Search Ads Criteo Taboola Outbrain DV360 CM360 Search Ads 360 AdRoll StackAdapt The Trade Desk

Analytics & Search

Google Analytics 4 Adobe Analytics Mixpanel Amplitude Matomo Plausible PostHog Search Console Looker Metabase

Social Organic

Facebook Organic Instagram LinkedIn Organic TikTok Organic Pinterest Organic X Organic Threads YouTube Sprout Social

CRM & Marketing Automation

HubSpot Salesforce Pipedrive Dynamics 365 Zoho CRM Klaviyo Mailchimp ActiveCampaign Brevo Customer.io Iterable SendGrid Intercom Outreach Salesloft

E-commerce & Payments

Shopify Magento WooCommerce BigCommerce PrestaShop Stripe PayPal Klarna Recharge Recurly Chargebee Walmart TikTok Shop

Databases, Warehouses & Files

BigQuery Snowflake PostgreSQL MySQL Redshift MongoDB Firebolt SFTP Google Sheets Airtable Notion Amazon S3

Use Case Examples

Setup Instructions

Prerequisites

Server Endpoints

EndpointPurpose
POST /MCP Streamable HTTP endpoint
GET /sse/MCP SSE endpoint
GET /docsThis documentation page
GET /llms.txtShort summary for LLMs
GET /llms-full.txtFull reference for LLMs
GET /datasourcesLive JSON list of connector IDs
GET /healthHealth check
GET /.well-known/oauth-authorization-serverOAuth discovery metadata

Authentication

OAuth 2.0 (recommended)

The MCP server implements the full MCP OAuth flow. Clients that support MCP OAuth — including Claude, ChatGPT, Cursor and Manus — discover the endpoints automatically and walk the user through a one-time login at Windsor.ai. Dynamic Client Registration is supported.

API key

Pass a Windsor.ai API key as a Bearer token:

Authorization: Bearer <your_windsor_api_key>

Get an API key from your Windsor.ai account at onboard.windsor.ai.

Tool Reference

get_connectors

List Windsor.ai connectors and their connected accounts. By default returns only connectors with at least one connected account. Pass include_not_yet_connected=True to also include connectors the user can set up.

get_connector_authorization_url

Returns a URL the user can open in their browser to set up a connector. Always call get_connectors(include_not_yet_connected=True) first to get the correct connector ID. Works for both OAuth-based and manual-credential connectors.

get_options

For a connector and a set of accounts, return the available fields, the columns that can be used as date filters per table, and connector-specific options (e.g. attribution windows for Meta Ads).

get_fields

Get descriptions, types and tables for specific fields. Field types NUMERIC and PERCENT are metrics (aggregated); other types are dimensions.

get_data

Run a query against a connector. Supports date ranges (date_from/date_to or date_preset), account filtering, connector-specific options, and nested filter conditions.

Filter operators: eq, neq, gt, gte, lt, lte, contains, ncontains, null, notnull, in. Conditions can be nested with "and" and "or".

Warehouse connectors (mysql, postgresql, redshift, mongodb, snowflake, big_query) require date_filters when filtering by date.

Troubleshooting

Authentication failures (401)

"Requested data exceeds size limit"

Narrow the date range, reduce fields, filter by accounts, or add filter conditions to get_data.

"Connector requires specifying date filters"

Warehouse connectors need an explicit date_filters argument when filtering by date.