Windsor.ai
Pull and connect your marketing data.
MCP server URL
https://windsor-ai.gumstack.com/mcp
Works with
Tools 16
Get Current User
Windsor.ai: Get the authenticated user's username, email and plan. `plan_id`, `plan_name` and `is_paid` come from the live Windsor.ai profile; they are null when the profile lookup fails, which means the plan is unknown — not that the user is on a free plan.
Get Connectors
Windsor.ai: List connectors, their accounts, write actions, and options. By default returns only connectors that have connected accounts; pass include_not_yet_connected=True for every available connector. Accounts carry an id and, when available, a name. Connectors that support write actions carry an `actions` list of action ids for execute_action. Connectors that expose read options carry an `options` list of option ids that change what a get_data read returns (call get_options for their meaning and values). Covers 350+ sources: advertising (Meta Ads, Google Ads, TikTok Ads, LinkedIn Ads), analytics (Google Analytics 4), CRM and e-commerce (HubSpot, Shopify), payments (Stripe), warehouses (BigQuery, Snowflake), and more. Supported connector slugs (355 total): activecampaign, adalyser, adform, adjust, adobe, adobe2, adroll, adtraction, aha, aimwel, aircall, airtable, all, alpha_vantage, amazon_ads, amazon_dsp, amazon_s3, amazon_sp, amazon_sqs, amazon_vendor, amplitude, apify_dataset, appfollow, apple_search_ads, applovin, appnexus, appsflyer, apsis_one, ashby, attentive, auth0, awin, aws_cloudtrail, azure_table, babelforce, bamboo_hr, basis_dsp, big_query, bigcommerce, bing, bing_webmaster, bling, boxcast, braintree, branch, braze, breezometer, callrail, captain_data, cart, chargebee, chargify, chartmogul, cj, clickmagick, clickup_api, clockify, close_com, cm360, coda, coin_api, coinmarketcap, commercetools, commissionfactory, configcat, confluence, contractors_cloud, convertkit, convex, copper, courier, criteo, currency_conversion, customer_io, daisycon, datadog, datamediq, datascope, delighted, digistorm, dixa, dockerhub, dragonmetrics, dremio, drift, dv360, dynamics365, emailoctopus, everflow, everhour, exchange_rates, exoclick, facebook, facebook_leads, facebook_organic, faker, fastbill, fauna, file, firebolt, firstpromoter, flashtalking, flexport, freshcaller, freshdesk, freshsales, freshservice, fullstory, gainsight_px, gemius, genesys, getlago, github, gitlab, glassfrog, gmailcsv, gnews, gocardless, gohighlevel, gong, google_ad_manager, google_ads, google_merchant, google_my_business, google_pagespeed, google_search_ads, google_webfonts, google_workspace_admin_reports, googleanalytics, googleanalytics4, googlesheets, gravity_forms, greenhouse, gridly, harness, harvest, hawk_dsp, hellobaton, hubplanner, hubspot, idealo, impact, incomeaccess, insightly, instagram, instagram_public, instatus, intercom, intruder, ip2whois, iterable, jira, k6cloud, klarna, klaus_api, klaviyo, kustomer_singer, kyriba, kyve, launchdarkly, leadinfo, lemlist, lever_hiring, line, line_ads, linkedin, linkedin_organic, linnworks, lokalise, looker, magento, mailchimp, mailerlite, mailersend, mailgun, mailjet_mail, mailjet_sms, matomo, mediago, merge, metabase, metricool, microsoft_clarity, microsoft_dataverse, microsoft_teams, mixpanel, mntn, monday, mongodb, my_hours, mysql, n8n, nasa, netsuite, news_api, nextdoor, notion, nytimes, okta, omnisend, onesignal, openai_ads, openweather, opsgenie, orb, orbit, oura, outbrain, outreach, pagerduty, pardot, partnerize, partnerstack, paypal_transaction, paystack, pendo, persistiq, pexels_api, pinterest, pinterest_organic, pipedrive, pivotal_tracker, plaid, plausible, pocket, pokeapi, polygon_stock_api, postgresql, posthog, prestashop, primetric, productive, profitwell, punk_api, pypi, qonto, qualaroo, quickbooks, quora, railz, rakuten_advertising, rd_station_marketing, readpeak, recharge, recreation, recruitee, recurly, reddit, redshift, reply_io, retently, rki_covid, rocket_chat, rss, rtbhouse, salesforce, salesforce_marketing, salesloft, sap_fieldglass, search_metrics, searchconsole, secoda, semrush, sendgrid, sendinblue, senseforce, sentry, serpstat, sftp, sftp_bulk, shareasale, shiphero, shopify, shortio, similarweb, simplifi, slack, smaily, smartengage, smartsheets, snapchat, snowflake, sonar_cloud, spotify, sproutsocial, square, stackadapt, statuspage, strava, stripe, supabase, survey_sparrow, surveycto, surveymonkey, taboola, teads, tempo, the_guardian_api, threads, ticimax, tiktok, tiktok_organic, tiktok_shop, timely, tmdb, todoist, toggl, tradedesk, tradedoubler, trafficjunky, trello, triplewhale, trustpilot, tvmaze_schedule, twilio, twilio_taskrouter, twinred, twitter, typeform, unleash, us_census, vantage, vibe, visma_economic, vitally, waiteraid, walmart, weatherstack, webflow, wikipedia_pageviews, woocommerce, wordpress, workable, workramp, wrike, x_organic, xero, yahoo_finance_price, yahoo_japan, yandex_metrica, yotpo, yougov_brandindex, younium, youtube, zapier_supported_storage, zendesk_chat, zendesk_sell, zendesk_sunshine, zendesk_support, zendesk_talk, zenefits, zenloop, zoho, zoom, zuora.
Get Options
Windsor.ai: Get fields, date-filter columns, and options for a connector. Returns available field IDs, per-table date-filter columns, and connector-specific options for the given connector and accounts.
Get Fields
Windsor.ai: Discover valid field IDs for a connector. Returns field IDs with descriptions, types, and tables. Omit "fields" to list all. Required before get_data: field IDs passed to get_data must come from this tool — do not guess field names.
Get Data
Windsor.ai: Retrieve data from a connector. Call get_fields first — field IDs must come from it.
List Actions
Windsor.ai: List a connector's write actions with their param JSON schemas. Meta Ads ("facebook"): create/pause/enable campaigns, ad sets, and ads; set campaign and ad set budgets; boost an organic post. Google Ads ("google_ads"): create campaigns, ad groups, and responsive search ads; pause/enable campaigns, ad groups, and ads; set campaign budget, bidding strategy, target CPA, max CPC, and CPC bid ceiling; push negative keywords. TikTok Ads ("tiktok"): pause/enable campaigns, ad groups, and ads; set campaign and ad group budgets. LinkedIn Ads ("linkedin"): pause/enable campaign groups, campaigns, and creatives; set campaign group and campaign budgets. Microsoft Ads / Bing ("bing"): pause/enable campaigns and ad groups; set campaign budget. Instagram ("instagram"): create an image post. Other connectors return an empty list. The actual set is whatever this tool returns — do not assume an action exists. Inspect an action's schema before execute_action.
Execute Action
Windsor.ai: Execute a write action on a connector account. Runs an action id from list_actions against an account id from get_connectors, with params matching the action's JSON schema. This modifies external platform state — confirm intent with the user before invoking.
Get Connector Authorization Url
Get the URL to connect or authorize a Windsor.ai connector. Always call get_connectors(include_not_yet_connected=True) first to obtain the correct connector ID. Returns a URL the user can open in their browser to set up the connector. For OAuth connectors the link jumps straight into the provider consent flow; for manual connectors it opens the connector's credentials form. Use this for any request to connect, grant access to, authorize, add, replace, or reconnect a connector account, including adding another account to an already-connected connector. The returned URL includes an auto-login token so the user is logged in automatically when they open it. For richer guidance — the auth type and, for manual connectors, the exact credential fields required — use get_connector_connect_info instead. Do not substitute prose dashboard navigation steps for this link.
Get Connector Connect Info
Describe how the user can grant access to a connector, to guide it in chat. Always call get_connectors(include_not_yet_connected=True) first to obtain the correct connector ID. Returns: - auth_type: "oauth" if the connector needs provider consent in the browser, or "manual" if it is connected with credentials (e.g. an API key); - connect_url: an auto-login link the user opens to grant access. For OAuth it jumps straight into the provider consent screen; for manual connectors it opens the credentials form prefilled for that connector; - fields: for manual connectors, the credential fields the user must provide (name, type, whether required, and whether the value is sensitive). Empty for OAuth connectors. Use this to answer "how do I connect/grant access to X": for OAuth, hand the user the connect_url and tell them to authorize; for manual connectors, tell them which fields are needed and give them the connect_url to enter them. Sensitive fields (API keys, tokens, passwords) must be entered by the user in that form — never ask them to paste secrets into the chat. Afterwards, confirm the connection by calling get_connectors and reporting the new account. Use this for any request to connect, grant access to, authorize, add, replace, or reconnect a connector account, including adding another account to an already-connected connector. Do not substitute prose dashboard navigation steps for the connect_url.
Get Destinations
Windsor.ai: List destinations that can receive scheduled data exports. A destination is where Windsor.ai repeatedly writes a connector's data on a schedule — BigQuery, Google Sheets, Snowflake, a database, or cloud storage. Each entry reports its type, whether a task can be created here (create_in_chat), and any reusable credentials the user already has (an OAuth connection or a stored service account). Call this first when the user wants to export, send, sync, or schedule connector data, then get_destination_setup_info for the chosen destination.
Get Destination Setup Info
Windsor.ai: Describe how to set up a scheduled export to a destination. Always call get_destinations first to get the correct destination id. Returns the auth type, the target fields describing where data is written, the allowed schedules, reusable credentials (OAuth or service account), and a setup_url auto-login link to the dashboard form. Sensitive fields (service accounts, passwords, keys) are entered by the user in the setup_url form — never ask them to paste secrets into chat. When create_in_chat is true, collect the non-sensitive target fields and call create_destination_task; otherwise hand the user the setup_url.
Get Destination Tasks
Windsor.ai: List the scheduled export tasks the user has created. A destination task is a recurring export of a connector's data to a destination. Each entry reports its id, destination type and name, alias, source connector, schedule, and status (active, paused, or deactivated), plus a manage_url to open it in the dashboard. Use this when the user asks what exports, syncs, or destination tasks they already have, or before creating one to avoid duplicates.