Anakin MCP

Live

API KEY

WEB AUTOMATION

Automation

Anakin MCP gives agents API key access to web automation: search the web, scrape pages to markdown, and run Wire actions across hundreds of sites.

  • Per-user credentials: each call uses the actual user's 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.
Anakin MCP
agent · Acme Q3
Run
What do standing desks cost on Walmart right now?
S
anakinmcp_wire_read_action
98ms
Anakin agent
Found 24 listings. Top result: FlexiSpot EN1 at $189.99, 4.6 stars, 2,300 reviews. Median price $246, range $139 to $612.
Sources: 24 listings, walmart catalog
anakinmcp
24 listings
18:29
Message Claude...

Tools your web agent reaches for on Anakin, scoped per user.

CALL ANY TOOL
Web automation end to end: search and scrape any page, crawl entire sites, and run pre-built Wire actions on catalog sites.
anakinmcp_search
Search the web
Run an AI web search that returns result URLs, titles, snippets, and dates synchronously, so the agent can discover relevant pages before scraping.
Parameters
Name
Type
Required
Description
prompt
string
Required
The search query in natural language.
limit
integer
Optional
Maximum number of results to return.
anakinmcp_scrape
Scrape a page
anakinmcp_crawl
Crawl a site
anakinmcp_map
Map site URLs
anakinmcp_agentic_search
Run deep research
anakinmcp_wire_discover
Discover Wire actions
anakinmcp_wire_catalog
Browse Wire catalog
anakinmcp_wire_read_action
Run a read action
Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

// Anakin tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["anakinmcp"], toolNames: [
    "anakinmcp_search",
    "anakinmcp_scrape",
    "anakinmcp_wire_read_action"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "What do standing desks cost on Walmart?" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["anakinmcp"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Scrape this pricing page and return it as markdown." }],
  tools,
});

// Execute the tool call with the user's vaulted Anakin credential
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["anakinmcp"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Find Wire actions for tracking Amazon price changes." }],
  tools,
});

// Tool call runs with the user's vaulted Anakin credential
await sk.tools.executeTool(msg.content, "user_123");
import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["anakinmcp"] }, pageSize: 100,
});

const agent = new Agent({
  name: "anakin_web_agent",
  model: "gemini-2.5-pro",
  instruction: "Automate web research for the signed-in user.",
  tools,
});

await agent.run("Map competitor.com and list every URL under /blog.");
Try these prompts
Copy any prompt into your agent. Each maps directly to an Anakin tool. Click to copy, paste into your agent, done.
Deep research
Copy the prompt
Copied
Run a comparative analysis of the top 5 CRM vendors' pricing pages.
Copy the prompt
Copied
Research data residency rules across the EU, UK, and Switzerland.
Copy the prompt
Copied
Build a market overview of AI transcription startups with sources.
Scrape and crawl
Copy the prompt
Copied
Scrape this pricing page and return it as markdown.
Copy the prompt
Copied
Crawl the docs site and pull every page under /guides.
Copy the prompt
Copied
Map competitor.com and list every URL under /blog.
Wire actions
Copy the prompt
Copied
Find Wire actions for tracking Amazon price changes.
Copy the prompt
Copied
Pull the top 20 Walmart listings for standing desks.
Copy the prompt
Copied
Which sites in the Wire catalog support LinkedIn profile reads?
SEE HOW AUTH WORKS
Your users connect once. Their Anakin credentials stay vaulted, every call is scope-checked, and every action is logged.
1
Authorize
Your user connects
Anakin 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
Anakin 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
Anakin 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
Anakin 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
See the same per-user auth pattern across other automation connectors.
ENGINEERING
DevOps assistant agent
Triage GitHub incidents, open Linear tickets, and notify the on-call channel in Slack with context already attached.
ENGINEERING
Slack workflow agent (LangGraph)
LangGraph agent that drives multi-step Slack workflows: triggers, approvals, and follow-up actions per user identity.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
Other connector libraries treat auth as a demo afterthought. Scalekit starts with identity, scope enforcement, and audit. Connectors follow.
01.
Shared tokens break per-user analytics
A shared Anakin key looks fine in a demo. In production every scrape, crawl, and Wire action bills and logs as one account, and you cannot tell who ran the research or burned the credits. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Anakin today. Ten connectors 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 Anakin as the user or through a shared key?
As the user. Scalekit resolves the credential of the person who triggered the agent at request time, so every search, scrape, and Wire action in your audit trail is attributed to a real user, not a shared service account.
Where is the Anakin API key stored?
In an AES-256 encrypted vault with per-tenant namespacing. Keys are resolved at request time, never enter LLM context, and can be rotated or revoked from one dashboard.
Can I limit what the agent does in Anakin?
Yes. Filter by tool name in listScopedTools to expose only what you want, for example search and scrape without Wire write actions. Scalekit also enforces scope checks before every API call.
What happens when a user revokes access?
The credential is invalidated at the next tool call. The call fails closed, other users' connections are unaffected, and the revocation is logged in the audit chain.
Some Wire actions need a site login. How are those credentials handled?
Wire identities hold named site accounts inside Anakin, and the agent passes only a credential_id when it runs an auth-required action. Scalekit vaults the Anakin key itself, so neither raw site passwords nor the API key ever appear in LLM context.
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"": {
""anakinmcp"": {
""url"": ""https://mcp.scalekit.com/anakinmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.anakinmcp]
url = ""https://mcp.scalekit.com/anakinmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""anakinmcp"": {
""url"": ""https://mcp.scalekit.com/anakinmcp"",
""type"": ""http""
}
}
}