Revealed AI MCP

Live

API KEY

SALES INTELLIGENCE

CRM & Sales

Account-level buying signals, website visitor identification, and intent data your agent needs to prioritize outreach live in Revealed AI. Revealed AI MCP gives your sales agent per-user API access, credentials vaulted, scoped, never in the prompt.

  • Acts as the user: Each rep's Revealed AI key is scoped to their territory and account assignments.
  • Credentials stay vaulted: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: User permissions enforced. 90-day audit trail on every signal query.
Revealed AI MCP
agent · Acme Q3
Run
Which accounts in my territory showed high buying intent this week that are not in an active sequence?
S
revealed_account_signals_get
143ms
Sales agent
7 high-intent accounts not in active sequences. Top: Acme Corp (pricing page ×4, docs ×12), Techflow Inc (integration page ×7, 3 days straight), DataCo (competitor page ×3).
Sources: Revealed AI signals, CRM sequence status
revealedaimcp
7
18:29
Message Claude...

Tools your sales agent reaches for on Revealed AI, scoped per rep.

CALL ANY TOOL
API key scoped per rep. Every signal query attributed to the authorizing sales team member.
revealed_account_signals_get
Get account signals
Retrieve real-time buying signals for target accounts including page visits, intent spikes, and product research activity.
Parameters
Name
Type
Required
Description
domain
string
Optional
Company domain to get signals for
account_id
string
Optional
Revealed AI account ID
days
integer
Optional
Lookback window in days (default 7)
revealed_visitors_identify
Identify visitors
revealed_accounts_search
Search accounts
revealed_contacts_get
Get contacts
revealed_intent_trends_get
Get intent trends
Build your Agent
Drop the toolkit in, point it at the authorized sales rep, and your agent can access Revealed AI buyer intent and account intelligence from the first run.
import { ScalekitClient } from "@scalekit-sdk/node";
import { DynamicStructuredTool } from "@langchain/core/tools";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
import { z } from "zod";

const sk = new ScalekitClient(envUrl, clientId, clientSecret);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["apollomcp"], toolNames: ["apollo_contacts_search", "apollo_people_enrich", "apollo_sequences_add"] },
pageSize: 100,
});

const lcTools = tools.map((t) => new DynamicStructuredTool({
name: t.tool.definition.name,
description: t.tool.definition.description,
schema: z.object({}).passthrough(),
func: async (args) => {
const { data } = await sk.tools.executeTool({
toolName: t.tool.definition.name,
identifier: "user_123",
params: args,
});
return JSON.stringify(data);
},
}));

const agent = createReactAgent({ llm, tools: lcTools });
import { ScalekitClient } from "@scalekit-sdk/node";
import OpenAI from "openai";

const sk = new ScalekitClient(envUrl, clientId, clientSecret);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["apollomcp"], toolNames: ["apollo_contacts_search", "apollo_people_enrich", "apollo_sequences_add"] },
pageSize: 100,
});

const llmTools = tools.map((t) => ({
type: "function",
function: {
name: t.tool.definition.name,
description: t.tool.definition.description,
parameters: t.tool.definition.input_schema,
},
}));

const resp = await openai.responses.create({
model: "gpt-4o", input: prompt, tools: llmTools,
});
import { ScalekitClient } from "@scalekit-sdk/node";
import Anthropic from "@anthropic-ai/sdk";

const sk = new ScalekitClient(envUrl, clientId, clientSecret);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["apollomcp"], toolNames: ["apollo_contacts_search", "apollo_people_enrich", "apollo_sequences_add"] },
pageSize: 100,
});

const llmTools = tools.map((t) => ({
name: t.tool.definition.name,
description: t.tool.definition.description,
input_schema: t.tool.definition.input_schema,
}));

const msg = await anthropic.messages.create({
model: "claude-sonnet-4-6", max_tokens: 1024,
tools: llmTools,
messages: [{ role: "user", content: prompt }],
});
import { Agent } from "@google/adk/agents";
import {
MCPToolset, StreamableHTTPConnectionParams,
} from "@google/adk/tools/mcp";

const toolset = new MCPToolset({
connectionParams: new StreamableHTTPConnectionParams({
url: "https://mcp.scalekit.com/apollomcp",
headers: { Authorization: `Bearer ${userScopedToken}` },
}),
});

const agent = new Agent({
name: "agent", model: "gemini-2.0-flash",
tools: await toolset.getTools(),
});
Try these prompts
Paste any prompt into your sales intelligence agent to start pulling buyer intent data from Revealed AI.
Search & recall
Copy the prompt
Copied
Show accounts showing high intent for [product category] in the last 7 days.
Copy the prompt
Copied
Find accounts in my territory with intent spikes on [competitor name] this week.
Copy the prompt
Copied
Get the full intent signal history for [account name] over the past 30 days.
Prioritize & act
Copy the prompt
Copied
Rank my top 20 open opportunities by current intent score and suggest outreach order.
Copy the prompt
Copied
List all accounts showing intent but not yet in any active sequence.
Copy the prompt
Copied
Which formerly active accounts have re-emerged with new intent signals this month?
SEE HOW AUTH WORKS
Sales reps authorize Revealed AI once. Their API key stays vaulted, every intent query is scoped to their account permissions, and every access is logged.
1
Authorize
Your user connects
Revealed AI 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
Revealed AI 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
Revealed AI 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
Revealed AI 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
Same per-user auth pattern across other sales intelligence and intent data connectors.
No items found.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
One vault for every sales signal connector. Revealed AI today, Gong and Apollo tomorrow.
01.
Shared tokens break per-user analytics
A shared token looks fine in a demo. In production every call looks like a service account. Scalekit resolves the real user credential so attribution, audit, and scope stay accurate.
// shared token
 audit → bot_service_account
 user_filter → broken

 // scalekit
 audit → user_abc
 scope → enforced ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Revealed AI MCP 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 use a shared Revealed AI key or per-user keys?
Per-user keys. Each sales rep provisions their Revealed AI API key and Scalekit vaults it under their identity. Signal queries are attributed to that rep, not a shared team credential.
Where is the Revealed AI API key stored?
In Scalekit's AES-256 vault, namespaced per tenant. Keys resolve at request time and never appear in prompts, logs, or LLM completions.
Can I limit which accounts a rep's agent can query signals for?
Yes. Use listScopedTools to restrict signal queries to a rep's assigned territory or account list, preventing cross-territory data access between reps.
What happens when a rep's Revealed AI key is revoked?
The next tool call fails closed for that rep. Other users in the tenant remain unaffected. Revocation is logged with a timestamp.
Can the agent combine Revealed AI signals with CRM data in one workflow?
Yes. A single agent can call Revealed AI for intent signals and Salesforce or HubSpot for CRM status in the same workflow. Each connector resolves under the same user identity with its own vaulted credential.
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"": {
""revealedaimcp"": {
""url"": ""https://mcp.scalekit.com/revealedaimcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.revealedaimcp]
url = ""https://mcp.scalekit.com/revealedaimcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""revealedaimcp"": {
""url"": ""https://mcp.scalekit.com/revealedaimcp"",
""type"": ""http""
}
}
}