Hyros MCP
The Hyros MCP server connects Hyros advertising attribution data to AI assistants, providing 53 tools to query, analyze, and manage your business.
Analytics & Reporting: Generate daily summaries, attribution reports (ROAS, ROI, CPA), ad account reports, compare time periods, view full funnel from clicks to revenue, and monitor subscription health (MRR, churn).
Lead Management: Search leads by email/ID/date, view customer journeys with ad attribution and sales, create/update/delete leads, and perform GDPR/CCPA-compliant deletion of PII.
Sales & Orders: Retrieve sales, create orders, process full/partial refunds, update status, and delete records.
Call Tracking: Record and filter calls by qualification/state, update call details, and delete.
Subscriptions: Create and update subscriptions, query by status (trial, active, past due, cancelled), and track MRR/ARR/churn.
Ad & Source Management: List ad sources, campaigns, ads, keywords, and connected accounts; manage custom costs (offline spend); create/update/delete ad sources.
Cart Tracking: Create, update, and list carts, including abandoned carts.
Webhooks: Create, list, and delete webhook subscriptions for Hyros events.
Account & Configuration: Access account info, tags, funnel stages, verified domains, tracking scripts; manage products (create, update, delete); manually record click events for attribution.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hyros MCPWhat was my total revenue last week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hyros MCP Server
Connect Hyros advertising attribution to AI assistants (Claude, Cursor, etc.) through the Model Context Protocol. Ask questions about your leads, sales, calls, subscriptions, and ad performance — and let the AI pull the data and run the reports for you.
61 tools covering leads, sales, calls, subscriptions, products, custom costs, carts, webhooks, conversion definitions, attribution reports (including ROAS and marginal CAC curve), ad management, async request tracking, and smart analytics. Targets Hyros REST API v1.40 and Webhooks v1.1. Agencies can run every tool against a connected client account via the optional accessible_account_id argument.
Built by Carlos Aragon.
🚀 Install in 60 seconds (recommended — no downloads, no setup)
You only need the Claude app (desktop or web). Nothing to install. No terminal. No Node.js. No config files.
Open Claude → Settings → Connectors.
Click Add custom connector.
Paste this address and click Add:
https://hyrosmcp.callwithcarlos.com/mcpA small page opens in your browser asking for your Hyros API key. Get it from Hyros → Settings → Integrations → API, paste it, and click Connect.
Done ✅ — Hyros now shows up in Claude's tools. Try asking "What was my revenue today?"
That's the whole thing. Your key is checked the moment you paste it (so you know right away if it's wrong) and is stored encrypted on the server — it never lives on your computer, and you never edit any files.
Controlling what the AI can do (permissions)
Inside Claude, every tool can be set to:
Always allow — runs without asking (great for read-only reports and lookups)
Ask every time — Claude asks for your approval before each use
Blocked — never runs
You'll find these in the connector's settings in Claude. The tools that change data (create a lead, refund an order, etc.) are flagged so Claude asks first by default.
If a tool answers "Unauthorized"
Hyros API keys carry roles, and several endpoints need a role that is not on
a key by default. When a key lacks the role the API replies 401 Unauthorized
with no explanation of which role is missing, so the tool looks broken when the
key is simply too narrow.
Verified against Hyros API v1.39 on 2026-08-04, these tools need extra roles:
Tools | Needs a role for |
| Products |
| Custom costs |
| Carts |
| Webhooks |
| Sources (write) |
| Leads (delete) |
Fix it in the Hyros app under Settings → API Keys by enabling the roles on
your key, or issue a key with full roles. A wrong key reads differently: it
returns a JSON body containing Api key not valid, while a missing role returns
the bare text Unauthorized.
Agency-level keys are a separate limit. They authenticate on
hyros_get_user_info but return 401 on every data endpoint, and the API has no
way to scope a request to a client account. Use a key from the client account
itself.
How it works (the short version)
You (Claude app) ──▶ hyrosmcp.callwithcarlos.com ──▶ Hyros API
(a secure hosted server)There's a small server running in the cloud (on Cloudflare) that speaks to Hyros on your behalf. When you connect, it asks for your API key once, verifies it, and keeps it encrypted. From then on, when you ask Claude a question, Claude talks to that server, which fetches your real Hyros data and hands it back. You don't host or maintain anything.
For developers / self-hosters: the server lives in
worker/and runs on Cloudflare Workers. See DEPLOY.md to deploy your own copy.
Related MCP server: Google Analytics MCP Server
Alternative — Run it locally (advanced / developers)
Prefer to run the server on your own machine instead of using the hosted one? This uses the npm package and Claude Desktop's local config. You'll need Node.js 18+.
Step 1 — Install the package
Open a terminal and run:
npm install -g hyros-mcpThis works on Windows, macOS, and Linux.
Step 2 — Add to Claude Desktop
Open your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add this (replace your_api_key_here with your key from Hyros → Settings → Integrations → API):
{
"mcpServers": {
"hyros": {
"command": "hyros-mcp",
"args": [],
"env": {
"HYROS_API_KEY": "your_api_key_here"
}
}
}
}Step 3 — Restart Claude Desktop
Close and reopen Claude Desktop. That's it — you're ready to use it.
Claude Code (CLI)
npm install -g hyros-mcp
claude mcp add hyros -e HYROS_API_KEY=your_api_key_here -- hyros-mcpCursor / Windsurf
Same config as Claude Desktop above — add it to your MCP settings file.
Troubleshooting
Remote connector (the 60-second install)
"That key didn't work" when you paste it — The key is wrong, expired, or lacks permissions. Copy it again, exactly, from Hyros → Settings → Integrations → API. The page tells you immediately if it's valid.
Hyros tools don't appear in Claude — Make sure you finished the browser step (pasting the key and clicking Connect). Re-open Settings → Connectors and confirm Hyros is listed and connected.
Need to change your API key later — Just disconnect and re-add the connector (or reconnect) and paste the new key. Nothing else to update.
Local install
"401 Unauthorized" — Your API key is wrong, missing, or lacks the role the endpoint needs. Make sure:
HYROS_API_KEYis inside theenvblockThe key is copied exactly from Hyros → Settings → Integrations → API
You restarted Claude Desktop after saving the config
The key has the role that tool needs, if only some tools fail — see If a tool answers "Unauthorized"
MCP tools not showing up — Restart Claude Desktop. The config is only read at startup.
"command not found: hyros-mcp" — The global install didn't complete. Run npm install -g hyros-mcp again and make sure npm's global bin folder is in your PATH.
Configuration
Variable | Required | Description |
| Yes | Your Hyros API key (Settings > Integrations > API) |
| No | API base URL (default: |
Tools
Read Operations (26)
Tool | Description |
| Account information |
| Search and retrieve leads |
| Full customer journey with attribution |
| Query sales records |
| Query call records |
| Query subscriptions |
| Get click history for a lead |
| List all tags (deprecated, use |
| List tags with lead counts, paginated |
| List funnel stages |
| List verified domains |
| Get ad sources and campaigns |
| Get ads by platform |
| Get keywords by ad group |
| Get tracking script HTML |
| Attribution metrics (ROAS, ROI, CPA, etc.) |
| Account-level attribution metrics |
| List connected ad accounts and their ids |
| List catalog products with price and cost of goods |
| List custom costs active in a date window |
| List carts, filterable to abandoned ones |
| List configured webhook subscriptions |
| ROAS of one ad, ad set, campaign, or account (cash-based, break-even 1.0) |
| Cost of the next customer at each spend level, with saturation point |
| List conversion definitions by id or creation date |
| Status of an async write (PENDING / PROCESSED / FAILED) |
Write Operations (30)
Tool | Description |
| Create a new lead |
| Update lead data and tags |
| Register a sale/order |
| Process a refund |
| Update sale status |
| Delete a sale |
| Register a call event |
| Update call qualification |
| Delete a call |
| Create subscription |
| Update subscription |
| Create ad source |
| Add custom ad cost |
| Create product |
| Track a shopping cart |
| Update pending cart |
| Manually record a click |
| Erase a lead and its PII (GDPR / CCPA) |
| Update price, SKU, cost of goods, category |
| Delete a product |
| Replace a custom cost |
| Delete a custom cost |
| Rename or reclassify an ad source |
| Delete an ad source |
| Subscribe an endpoint to Hyros events |
| Delete a webhook subscription |
| Define a custom conversion schema ($tag + captured fields) |
| Replace a definition's captured fields |
| Delete a conversion definition |
| Record a custom conversion for a lead (shows in journey and reports) |
Agency access
Every tool accepts an optional accessible_account_id argument. Agencies pass the accountId listed under accessibleAccounts in hyros_get_user_info to run the call against that client account; the API rejects any target that is not an approved connected account.
Smart Analytics (5)
Tool | Description |
| Today's performance: revenue, leads, calls, subscriptions |
| Top ads/campaigns ranked by any metric |
| Compare metrics between two date ranges |
| Full funnel from leads to revenue |
| MRR, ARR, churn, and subscription breakdown |
Resources
URI | Description |
| Account information |
| Available tags |
| Funnel stages |
Prompts
Name | Description |
| Daily performance summary |
| Campaign performance analysis |
| Investigate a specific lead |
Example Questions
Once connected, you can ask things like:
"What was my revenue today?"
"Show me my best performing Facebook ads this month"
"Compare last week vs this week"
"Look up the customer journey for john@example.com"
"What's my current MRR?"
"Which campaigns have the highest ROAS?"
"Create a lead with email test@example.com and tag them as VIP"
"Which leads were updated since yesterday?"
"Show me carts abandoned in the last week"
"Remove the trial tag from john@example.com"
"Which custom costs are still running with no end date?"
Security
HTTPS-only connections (API key never sent over plaintext)
Domain-restricted to
*.hyros.com(prevents SSRF)Runtime input validation on all tool parameters
Request timeouts (30s) with retry logic
Client-side rate limiting (25 req/sec)
Path traversal prevention on URL parameters
Development
git clone https://github.com/CachoMX/Hyros-MCP.git
cd Hyros-MCP
npm install
cp .env.example .env # Add your API key
npm run build # Compile TypeScript (local/stdio version)
npm run dev # Run in development mode
npm test # Run testsRemote server (Cloudflare Worker)
The hosted connector lives in worker/ and reuses all the tool logic
in src/. It adds a Streamable HTTP transport plus an OAuth layer that
collects each user's Hyros API key on a single-field page.
npm run worker:check # Validate the bundle (wrangler dry-run, no deploy)
npm run worker:dev # Local dev server (wrangler dev)
npm run worker:deploy # Deploy to CloudflareFull operator instructions — Cloudflare token scopes, KV setup, custom domain — are in DEPLOY.md.
License
MIT - Carlos Aragon
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn implementation of Model Context Protocol (MCP) that allows users to interact with TripleWhale's e-commerce analytics platform using natural language queries through Claude Desktop.1067MIT
- AlicenseAqualityBmaintenanceConnects Google Analytics 4 data to Claude, Cursor and other MCP clients, enabling natural language queries of website traffic, user behavior, and analytics data with access to 200+ GA4 dimensions and metrics.10235MIT
- AlicenseBqualityFmaintenanceConnects AI assistants like Claude to Sealmetrics analytics data, enabling natural language queries for traffic analysis, conversions, marketing performance, ROAS tracking, and funnel analysis.8MIT
- AlicenseNot gradedqualityCmaintenanceConnect AI assistants to live Meta Ads, GA4, and Google Search Console data. 100% local, credentials machine-locked and encrypted. Supports Claude Desktop, Cursor, Windsurf, Cline, and more.1MIT
Related MCP Connectors
AI marketing agent for Google Ads, Meta, GA4, TikTok, LinkedIn, Shopify, HubSpot and more.
Ask AI about your ads — query Meta, TikTok, and Google Ads performance in natural language.
Talk to your live-events CRM (campaigns, analytics, paid ads, segments) in Claude and ChatGPT.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HyrosOG/Hyros-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server