Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Anakin MCP server

Vendor MCP
Open markdown

The Anakin MCP connector routes your AI agent's tool calls to Anakin's own MCP server through Scalekit. Each user signs in to Anakin once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 22 tools.

Tools
22
What they doRead · write · destructive
8 · 12 · 28 read12 write2 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Anakin MCP connection

    In AgentKit > Connections, create an Anakin MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Anakin MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'anakinmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Anakin MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'anakinmcp_ai_visibility_sources',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • anakinmcp_ai_visibility_sourcesList the AI answer engines available to ai_visibility_search — each with its slug (what you pass as `sources`) and display label.Read-only

    AIVisibilitySources

    List the AI answer engines available to ai_visibility_search — each with its slug (what you pass as `sources`) and display label. Call this when you need to query a subset of engines or check what is currently enabled.

    Inputs

    This tool takes no inputs.

  • anakinmcp_mapDiscover all reachable URLs under a given site.Read-only

    Map

    Discover all reachable URLs under a given site. Useful for understanding a domain's structure before crawling, or finding the sub-pages an agent should scrape. Returns lists of internal links, external links, and counts. Honors depth and limit parameters.

    Inputs

    urlstringrequired
    The starting URL for discovery (typically a homepage or section root).
    depthinteger
    How many link-hops from the starting URL to follow.default 2
    includeExternalLinksboolean
    Also collect (but do not follow) external links.default false
    includeSubdomainsboolean
    Include URLs on subdomains of the starting host.default false
    limitinteger
    Maximum number of URLs to return overall.default 100
    limitPerLevelinteger
    Maximum URLs collected per depth level (controls breadth).default 100
    searchstring
    Optional keyword filter — only return URLs whose path/title matches.
    useBrowserboolean
    Render with a headless browser (for SPAs).default false
  • anakinmcp_monitor_changesGet the detected changes for a monitor — each entry records when the watched content differed from the previous check, with a diff/summary (and the AI change summary when aiMode is on).Read-only

    MonitorChanges

    Get the detected changes for a monitor — each entry records when the watched content differed from the previous check, with a diff/summary (and the AI change summary when aiMode is on). Use monitor_list first to find the monitor id.

    Inputs

    idstringrequired
    The monitor ID (from monitor_list or monitor_create).
  • anakinmcp_monitor_listList your website monitors, or pass `id` to fetch one monitor's full configuration and status (next/last check time, active state, per-check credit cost, alert settings).Read-only

    MonitorList

    List your website monitors, or pass `id` to fetch one monitor's full configuration and status (next/last check time, active state, per-check credit cost, alert settings). Use this to find a monitor's id before monitor_changes or monitor_control.

    Inputs

    idstring
    Monitor ID — fetch just this monitor instead of the full list.
  • anakinmcp_scrapeFetch a single URL and return clean markdown by default.Read-only

    Scrape

    Fetch a single URL and return clean markdown by default. Set generateJson=true to also extract structured data with AI. Set useBrowser=true for SPAs and JS-heavy sites (slower and more expensive — only when needed). Returns markdown unless generateJson is true, in which case it returns the structured JSON.

    Inputs

    urlstringrequired
    The URL to scrape.
    countrystring
    Two-letter country code for the proxy egress location (e.g. "us", "de", "in"). Defaults to "us".default us
    forceFreshboolean
    Skip the cache and refetch. Defaults to false; cached results are typically good for 24h.default false
    generateJsonboolean
    Have AI extract structured JSON from the page in addition to / instead of markdown. Use for product pages, listings, articles, anywhere the caller wants typed fields.default false
    sessionIdstring
    Optional saved-browser-session ID for login-protected pages. Pair with useBrowser=true.
    sessionNamestring
    Optional saved-browser-session name (alternative to sessionId).
    useBrowserboolean
    Render the page with a stealth headless browser. Required for SPAs and dynamic content; otherwise prefer the default (fetch-based) for speed and lower cost.default false
  • anakinmcp_session_listList your saved browser sessions — encrypted login states captured via the Anakin dashboard or Browser API.Read-only

    SessionList

    List your saved browser sessions — encrypted login states captured via the Anakin dashboard or Browser API. Each session's id is what you pass as sessionId to scrape/crawl, monitor_create, or browser_task to work with login-protected pages. Optionally filter by the website domain the session belongs to. If no session exists for a site, the user must create one interactively in the dashboard (log in once; 2FA/captchas included) — that flow cannot run from here.

    Inputs

    domainstring
    Filter to sessions for one website domain, e.g. "amazon.com".