Adzviser MCP

Live

OAUTH 2.1

MARKETING ANALYTICS

Marketing

Query marketing analytics across 46+ ad platforms with OAuth 2.1, scoped to the signed-in user.

  • Per-user credentials. each call uses the actual user's Adzviser token, never a shared bot.
  • Encrypted per-tenant vault. AES-256, resolved at request time, never in LLM context.
  • Scoped before every call. pre-call scope check, 90-day SIEM-exportable audit chain.
Adzviser MCP
agent · Acme Q3
Run
What did we spend on Google Ads vs Facebook Ads last month?
S
adzvisermcp_retrieve_reporting_data
92ms
Adzviser agent
Google Ads: $18,420 spend, 241K clicks. Facebook Ads: $11,870 spend, 96K clicks. Combined ROAS 3.4.
Sources: Google Ads, Facebook Ads, Sep 1 to Sep 30
adzvisermcp
2 reports
18:29
Message Claude...

Tools your marketing agent reaches for on Adzviser, scoped per user.

CALL ANY TOOL
Discover workspaces and metrics, then pull marketing analytics from Google Ads, Facebook Ads, GA4, and 40+ other platforms.
adzvisermcp_list_workspace
List workspaces
Retrieve the user's Adzviser workspaces and the ad platform accounts connected to each.
Parameters
Name
Type
Required
Description
—
No parameters required
adzvisermcp_retrieve_reporting_data
Retrieve reporting data
adzvisermcp_list_metrics_and_breakdowns_google_ads
Google Ads metrics
adzvisermcp_list_metrics_and_breakdowns_fb_ads
Facebook Ads metrics
adzvisermcp_list_metrics_and_breakdowns_ga4
GA4 metrics
adzvisermcp_list_metrics_and_breakdowns_linkedin_ads
LinkedIn Ads metrics
adzvisermcp_list_metrics_and_breakdowns_tiktok_ads
TikTok Ads metrics
Build your Agent
Same OAuth 2.1 DCR connection and scoped tool list across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { DynamicStructuredTool } from "@langchain/core/tools";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["adzvisermcp"], toolNames: [
"adzvisermcp_list_workspace",
"adzvisermcp_retrieve_reporting_data",
"adzvisermcp_list_metrics_and_breakdowns_google_ads",
]}, pageSize: 100,
});
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["adzvisermcp"], toolNames: [
"adzvisermcp_list_workspace",
"adzvisermcp_retrieve_reporting_data",
"adzvisermcp_list_metrics_and_breakdowns_google_ads",
]}, pageSize: 100,
});
const openai = new OpenAI();
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["adzvisermcp"], toolNames: [
"adzvisermcp_list_workspace",
"adzvisermcp_retrieve_reporting_data",
"adzvisermcp_list_metrics_and_breakdowns_google_ads",
]}, pageSize: 100,
});
const anthropic = new Anthropic();
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["adzvisermcp"], toolNames: [
"adzvisermcp_list_workspace",
"adzvisermcp_retrieve_reporting_data",
"adzvisermcp_list_metrics_and_breakdowns_google_ads",
]}, pageSize: 100,
});
Try these prompts
Copy a prompt into your agent. Each one maps to an Adzviser MCP tool for marketing analytics.
Spend and performance
Copy the prompt
Copied
What did we spend on Google Ads vs Facebook Ads last month?
Copy the prompt
Copied
Show clicks, impressions, and cost by campaign for Google Ads this week.
Copy the prompt
Copied
Which TikTok Ads campaigns had the highest CPM in the last 14 days?
Workspace and field discovery
Copy the prompt
Copied
List my Adzviser workspaces and the ad accounts connected to each.
Copy the prompt
Copied
What Google Ads metrics and breakdowns can I query?
Copy the prompt
Copied
Which Facebook Ads custom conversions exist in workspace Acme?
Cross-channel reporting
Copy the prompt
Copied
Compare LinkedIn Ads spend and reach to Google Ads for Q3.
Copy the prompt
Copied
Pull GA4 sessions and new users alongside Google Ads clicks for last month.
Copy the prompt
Copied
Summarize paid social spend across Facebook, LinkedIn, and TikTok this quarter.
SEE HOW AUTH WORKS
Your users connect once. Their Adzviser credentials stay vaulted, every call is checked, and every action is logged.
1
Authorize
Your user connects
Adzviser MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Adzviser MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Adzviser MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Adzviser MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
Reuse the same per-user OAuth 2.1 vault and audit chain on other marketing and CRM connectors.
GTM and RevOps Teams
Outbound prospecting agent
Searches Apollo for prospects matching your ICP, scores and ranks them, drafts personalized outreach in Gmail, and logs every send to Google Sheets. Mail goes out as the rep, not from a shared inbox.
GTM and RevOps Teams
CRM AI agent
Reads the Granola transcript after every call, extracts next steps and updates the HubSpot record, drafts the follow-up in Gmail, and confirms in Slack, all on the rep's own delegated OAuth.
GTM and RevOps Teams
Deal intelligence agent
Pulls recent Gong calls, scores deal risk with an LLM, cross-references the record in Attio, and DMs each owner their at-risk deals in Slack. Every read is scoped to that rep's own access.
GTM and RevOps Teams
Competitive intelligence briefing agent
Scans Gong calls for competitor mentions, matches each one to its Notion battlecard, and DMs every affected rep a single Slack digest per cycle. Every call runs as the PMM who owns the briefing, never a shared bot.
Test other agents
Reuse the same per-user OAuth 2.1 vault and audit chain on other marketing and CRM connectors.
SALES
Outbound prospecting agent
Search Apollo for ICP matches, rank them, draft personalised Gmail outreach, and log every send to Google Sheets.
GTM
CRM AI agent
Turn each Granola call transcript into a HubSpot record update, a drafted Gmail follow-up, and a Slack recap.
SALES
Deal intelligence agent
Score Gong call risk with an LLM, cross-reference the Attio record, and DM each owner their at-risk deals in Slack.
GTM
Competitive intelligence briefing agent
Scan Gong calls for competitor mentions, match each one to its Notion battlecard, and DM every affected rep a single Slack digest.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Adzviser key makes every report look like a service account. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_acct

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Adzviser today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Adzviser as the user or a shared key?
Per-user resolution. Each tool call uses the signed-in user's Adzviser token, so spend reports and workspace lists attribute to that user in the audit log.
Where is the Adzviser token stored?
In Scalekit's AES-256 vault, namespaced per tenant. Tokens refresh automatically. You revoke access from one dashboard without rotating a shared secret.
Can I limit what the agent does in Adzviser?
Yes. Filter tool names in listScopedTools (for example retrieve_reporting_data only) and Scalekit checks that scope before the API call.
What happens when a user revokes access?
The next Adzviser tool call fails closed for that user. Other users and other connectors are unaffected. The revoke is logged.
Does the agent see every connected ad account?
Only the workspaces and platforms the authorized Adzviser user already connected. Scalekit does not broaden that access; it vaults and scopes the existing token.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""adzvisermcp"": {
""url"": ""https://mcp.scalekit.com/adzvisermcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.adzvisermcp]
url = ""https://mcp.scalekit.com/adzvisermcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""adzvisermcp"": {
""url"": ""https://mcp.scalekit.com/adzvisermcp"",
""type"": ""http""
}
}
}