Windsor.ai Analytics
by @carlosarturoleon
Connect to Windsor.ai MCP for natural language access to 325+ data sources including Facebook Ads, GA4, HubSpot, Shopify, and more.
clawhub install windsor-aiπ About This Skill
name: windsor-ai description: Connect to Windsor.ai MCP for natural language access to 325+ data sources including Facebook Ads, GA4, HubSpot, Shopify, and more. metadata: {"clawdbot":{"emoji":"π","requires":{"bins":["mcporter","npx","node"],"env":["WINDSOR_API_KEY"]}},"openclaw":{"primaryEnv":"WINDSOR_API_KEY"}}
Windsor.ai Analytics
Use this skill to query, explore, and analyze your Windsor.ai connected and business data using natural language. Windsor.ai aggregates data from 325+ platforms: Facebook Ads, Google Analytics 4, HubSpot, Shopify, TikTok Ads, Salesforce, and hundreds more and exposes it through a single MCP interface.
When to Use This Skill
Invoke this skill automatically when the user asks questions about:
The user can also invoke this skill directly with /windsor-ai.
Setup
Before querying data, the Windsor.ai MCP connection must be configured. Follow these steps once:
Step 1: Get Your Windsor.ai API Key
1. Log in to your Windsor.ai account at https://windsor.ai 2. Navigate to your account dashboard or settings 3. Locate the API Key section and copy your key
Step 2: Store the API Key
Add your API key to the clawdbot environment file:
echo 'WINDSOR_API_KEY=your_api_key_here' >> ~/.clawdbot/.env
Replace your_api_key_here with the key you copied.
Then export it for your current session so mcporter can resolve it:
export WINDSOR_API_KEY=your_api_key_here
> Note: mcporter requires WINDSOR_API_KEY to be exported as a shell environment variable. Simply storing it in ~/.clawdbot/.env is not enough β it must be available in your active shell session.
>
> Security note: Avoid appending the key to ~/.zshrc or other shell rc files, as this stores your secret in plaintext and loads it into every shell session. Prefer your system keychain, a secrets manager, or a .env file with restricted permissions (chmod 600 ~/.clawdbot/.env). If you do add it to your shell rc file, remove it once no longer needed.
Step 3: Configure mcporter
Add Windsor.ai to your mcporter configuration. Open or create config/mcporter.json in your project and add the following inside the mcpServers object:
{
"mcpServers": {
"windsor-ai": {
"description": "Windsor.ai MCP β natural language access to 325+ data sources.",
"baseUrl": "https://mcp.windsor.ai/sse",
"headers": {
"Authorization": "Bearer ${WINDSOR_API_KEY}"
}
}
}
}
If mcpServers already has other entries, add the windsor-ai block alongside them.
Step 4: Verify Connection
npx mcporter list
You should see windsor-ai listed with its available tools. If you see an authentication error, confirm that WINDSOR_API_KEY is correctly set in ~/.clawdbot/.env.
Data Source Discovery
Before querying, explore which data sources are active in your Windsor.ai account:
Windsor MCP introspects your account's active connectors and returns only what is available. Only sources you have connected in your Windsor.ai dashboard will be queryable.
Usage
Query your data using plain English. Windsor MCP translates your questions into structured data queries against your connected sources.
How to Frame Queries
For best results, always include:
Query Patterns
Single source, single metric: "What was my total Facebook Ads spend last week?"
Cross-channel comparison: "Compare spend and ROAS across Facebook Ads, Google Ads, and TikTok Ads for the last 30 days."
Segmented breakdown: "Break down my Google Ads performance by campaign for March 2025, showing impressions, clicks, conversions, and cost per conversion."
Trend over time: "Show me the trend in CPC and CTR for my Facebook Ads campaigns over the past 90 days."
Top/bottom performers: "What were my top 5 best performing campaigns by ROAS last month? And the bottom 5?"
Anomaly detection: "Which of my campaigns had an unusual spike or drop in performance last week?"
Report Generation
Windsor MCP provides the underlying data; Claude assembles it into structured reports. Use these templates:
Weekly Performance Report
Ask: "Generate a weekly performance report for [date range] covering all connected channels."
Claude will structure the report as: 1. Executive Summary β total spend, total conversions, blended ROAS, week-over-week change 2. Channel Breakdown β spend and key metrics per connected ad platform 3. Top Campaigns β top 3 by spend and top 3 by ROAS 4. Anomalies & Alerts β campaigns that exceeded or undershot typical performance by more than 20% 5. Recommendations β budget reallocation suggestions based on channel ROAS
Monthly Performance Report
Ask: "Generate a monthly performance report for [month/year] across all connected sources."
Claude will structure the report as: 1. Month-over-Month Summary β key KPIs vs. prior month with percentage changes 2. Channel Performance Table β impressions, clicks, spend, conversions, CPA, ROAS per channel 3. Campaign Highlights β top 5 campaigns by revenue contribution 4. Audience & Creative Insights β top performing audiences or creatives (if social ad data is connected) 5. Budget Pacing β actual spend vs. planned budget per channel 6. 30-Day Outlook β projected performance if spend holds constant based on trailing trends
Client Ready Report
Ask: "Generate a client ready performance report for [account/brand] for [date range]. Include an executive summary, channel breakdown, top campaigns, and key recommendations. Format it as a professional document."
Example Queries
Campaign performance:
Spend analysis:
Audience and creative:
E-commerce (requires Shopify or similar connector):
CRM and pipeline (requires HubSpot, Salesforce, or similar):
Trend and forecasting:
Cross channel attribution:
Troubleshooting
Authentication failed / 401 error:
WINDSOR_API_KEY is set in ~/.clawdbot/.envFailed to resolve header 'Authorization' / WINDSOR_API_KEY must be set:
.envexport WINDSOR_API_KEY=your_api_key_here && npx mcporter list.env file: export $(grep -v '^#' ~/.clawdbot/.env | xargs) && npx mcporter listNo data sources found:
Data is not up to date:
Tool list is empty after npx mcporter list:
config/mcporter.json contains the windsor-ai entry exactly as shown in Setup Step 3WINDSOR_API_KEY is a non-empty string in your environmentπ‘ Examples
Query your data using plain English. Windsor MCP translates your questions into structured data queries against your connected sources.
How to Frame Queries
For best results, always include:
Query Patterns
Single source, single metric: "What was my total Facebook Ads spend last week?"
Cross-channel comparison: "Compare spend and ROAS across Facebook Ads, Google Ads, and TikTok Ads for the last 30 days."
Segmented breakdown: "Break down my Google Ads performance by campaign for March 2025, showing impressions, clicks, conversions, and cost per conversion."
Trend over time: "Show me the trend in CPC and CTR for my Facebook Ads campaigns over the past 90 days."
Top/bottom performers: "What were my top 5 best performing campaigns by ROAS last month? And the bottom 5?"
Anomaly detection: "Which of my campaigns had an unusual spike or drop in performance last week?"
βοΈ Configuration
Before querying data, the Windsor.ai MCP connection must be configured. Follow these steps once:
Step 1: Get Your Windsor.ai API Key
1. Log in to your Windsor.ai account at https://windsor.ai 2. Navigate to your account dashboard or settings 3. Locate the API Key section and copy your key
Step 2: Store the API Key
Add your API key to the clawdbot environment file:
echo 'WINDSOR_API_KEY=your_api_key_here' >> ~/.clawdbot/.env
Replace your_api_key_here with the key you copied.
Then export it for your current session so mcporter can resolve it:
export WINDSOR_API_KEY=your_api_key_here
> Note: mcporter requires WINDSOR_API_KEY to be exported as a shell environment variable. Simply storing it in ~/.clawdbot/.env is not enough β it must be available in your active shell session.
>
> Security note: Avoid appending the key to ~/.zshrc or other shell rc files, as this stores your secret in plaintext and loads it into every shell session. Prefer your system keychain, a secrets manager, or a .env file with restricted permissions (chmod 600 ~/.clawdbot/.env). If you do add it to your shell rc file, remove it once no longer needed.
Step 3: Configure mcporter
Add Windsor.ai to your mcporter configuration. Open or create config/mcporter.json in your project and add the following inside the mcpServers object:
{
"mcpServers": {
"windsor-ai": {
"description": "Windsor.ai MCP β natural language access to 325+ data sources.",
"baseUrl": "https://mcp.windsor.ai/sse",
"headers": {
"Authorization": "Bearer ${WINDSOR_API_KEY}"
}
}
}
}
If mcpServers already has other entries, add the windsor-ai block alongside them.
Step 4: Verify Connection
npx mcporter list
You should see windsor-ai listed with its available tools. If you see an authentication error, confirm that WINDSOR_API_KEY is correctly set in ~/.clawdbot/.env.
π Tips & Best Practices
Authentication failed / 401 error:
WINDSOR_API_KEY is set in ~/.clawdbot/.envFailed to resolve header 'Authorization' / WINDSOR_API_KEY must be set:
.envexport WINDSOR_API_KEY=your_api_key_here && npx mcporter list.env file: export $(grep -v '^#' ~/.clawdbot/.env | xargs) && npx mcporter listNo data sources found:
Data is not up to date:
Tool list is empty after npx mcporter list:
config/mcporter.json contains the windsor-ai entry exactly as shown in Setup Step 3WINDSOR_API_KEY is a non-empty string in your environment