Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Crustdata MCP server

Vendor MCP
Open markdown

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

Tools
72
What they doRead · write · destructive
61 · 9 · 261 read9 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 Crustdata MCP connection

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

    Scalekit credentials are available for Crustdata 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 = 'crustdatamcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Crustdata 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: 'crustdatamcp_crustdata_credit_costs',
    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
  • crustdatamcp_crustdata_account_endpoints_v2ACCOUNT ENDPOINT PERMISSIONS — NEW API (v2025-11-01).Read-only

    Account Endpoints V2

    ACCOUNT ENDPOINT PERMISSIONS — NEW API (v2025-11-01). Lists every Crustdata API endpoint with this account's access status (enabled/disabled), effective rate limit in requests/minute, and — with include_fields=true — the response fields enabled and disabled for the account. FREE, no credits. THE tool for diagnosing a 403 from any v2 tool ('is this endpoint on my plan?') and for answering 'what am I allowed to call / what is my rate limit?'. Narrow with path (exact match), category, or status — filters combine with AND, and unknown path/category values return an empty list rather than an error. RESPONSE: {api_version, token_limit_rpm, endpoints: [{path, category, status, effective_rate_limit_rpm, fields?}]}.

    Inputs

    paramsobjectrequired
    Input for GET /account/endpoints (v2025-11-01).
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
  • crustdatamcp_crustdata_autocomplete_companyGet autocomplete suggestions for CompanyDB field values.Read-only

    AutocompleteCompany

    Get autocomplete suggestions for CompanyDB field values. FREE — 0 credits consumed. Use to discover valid values before constructing a filter on crustdata_company_search_db (e.g. `field='hq_city', query='san francisco'` returns the actual stored values like 'San Francisco', 'San Francisco Bay Area'). Empty `query` is allowed — returns the most common values for the field. Also serves the technographics vocabulary for crustdata_company_search_by_technology: `field='technology'` (tech names, e.g. query='snow' → 'Snowflake', 'Snowplow') and `field='technology_category'` (e.g. 'programming_language', 'cloud_service', 'ai_model'). V2 ALTERNATIVE: crustdata_autocomplete_company_v2 (new /company/search/autocomplete API) resolves values for crustdata_company_search_db_v2, which needs v2 field paths.

    Inputs

    paramsobjectrequired
    Accepted and ignored: this tool was retired with the v1 API and returns an error naming its replacement.
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
  • crustdatamcp_crustdata_autocomplete_company_v2COMPANY FIELD AUTOCOMPLETE on the v2 API (version 2025-11-01).Read-only

    Autocomplete Company V2

    COMPANY FIELD AUTOCOMPLETE on the v2 API (version 2025-11-01). crustdata_autocomplete_company covers this capability on the default API and serves ordinary requests for it. This is its v2 edition. This edition is for requests that name the new API specifically — 'the new API', 'v2', 'the 2025-11-01 API', or '/company/search/autocomplete'. FREE. Also use it — without a separate v2 ask — whenever you are building filters for crustdata_company_search_db_v2, since that needs v2 field paths and exact indexed values the v1 autocomplete cannot resolve. Differences from v1: nested v2 field paths (locations.country, not hq_country) and v2-shaped scope filters. Feed a returned value back into a search filter verbatim.

    Inputs

    paramsobjectrequired
    Input for POST /company/search/autocomplete (v2025-11-01).
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
  • crustdatamcp_crustdata_autocomplete_filterGet autocomplete suggestions for search filter values.Read-only

    Autocomplete Filter

    Get autocomplete suggestions for search filter values. Useful for building valid filters for people and company searches. Best coverage on 'region' and 'title'. 'school' returns matches for well-known institutions but may return empty for niche international schools. 'industry' is currently low-coverage upstream — prefer crustdata_autocomplete_company with field='linkedin_industries' for industry values when filtering company DB.

    Inputs

    paramsobjectrequired
    Accepted and ignored: this tool was retired with the v1 API and returns an error naming its replacement.
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
  • crustdatamcp_crustdata_autocomplete_jobJOB FIELD AUTOCOMPLETE (v2025-11-01).Read-only

    Autocomplete Job

    JOB FIELD AUTOCOMPLETE (v2025-11-01). FREE — no credits. Returns the exact indexed values a crustdata_job_search filter will accept, so use it BEFORE filtering on a free-text job field (title, category, company name, location) — a near-miss value like 'SWE' for 'Software Engineer' matches zero jobs silently. Not version-gated: crustdata_job_search already runs on the 2025-11-01 /job/search endpoint, so this is simply its value-discovery helper. Empty `query` returns the most common values for the field.

    Inputs

    paramsobjectrequired
    Input for POST /job/search/autocomplete (v2025-11-01).
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
  • crustdatamcp_crustdata_autocomplete_personGet autocomplete suggestions for people database fields.Read-only

    Autocomplete Person

    Get autocomplete suggestions for people database fields. Useful for building filters or discovering valid field values. CONTEXTUAL AUTOCOMPLETE: pass `filters` (same shape as PersonDB search filters) to narrow suggestions to a subset — e.g. field='current_employers.title' + filters={'filter_type': 'current_employers.name', 'type': 'in', 'value': ['Databricks']} returns titles only for people currently at Databricks. When the filter path and the autocomplete field share a nested prefix (both on current_employers.*), the API automatically scopes both to the same array element. Empty `query` is allowed — returns the most common values for the field (optionally constrained by filters). Free of charge — no credits consumed. V2 ALTERNATIVE: crustdata_autocomplete_person_v2 (new /person/search/autocomplete API) resolves values for crustdata_people_search_db_v2 and crustdata_people_search_semantic, which need v2 field paths.

    Inputs

    paramsobjectrequired
    Accepted and ignored: this tool was retired with the v1 API and returns an error naming its replacement.
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
  • crustdatamcp_crustdata_autocomplete_person_v2PERSON FIELD AUTOCOMPLETE on the v2 API (version 2025-11-01).Read-only

    Autocomplete Person V2

    PERSON FIELD AUTOCOMPLETE on the v2 API (version 2025-11-01). crustdata_autocomplete_person covers this capability on the default API and serves ordinary requests for it. This is its v2 edition. This edition is for requests that name the new API specifically — 'the new API', 'v2', 'the 2025-11-01 API', or '/person/search/autocomplete'. FREE. Also use it — without a separate v2 ask — whenever you are building filters for crustdata_people_search_db_v2 or crustdata_people_search_semantic, since those need v2 field paths and exact indexed values that the v1 autocomplete cannot resolve. Differences from v1: nested v2 field paths (experience.employment_details.current.title, not current_employers.title) and v2-shaped scope filters ({field, type, value} leaves, NOT 'filter_type'). Feed a returned value back into a search filter verbatim.

    Inputs

    paramsobjectrequired
    Input for POST /person/search/autocomplete (v2025-11-01).
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
  • crustdatamcp_crustdata_batch_company_enrichBATCH COMPANY ENRICHMENT — NEW API (v2025-11-01).Read-only

    Batch Company Enrich

    BATCH COMPANY ENRICHMENT — NEW API (v2025-11-01). Enriches up to 10,000 companies in ONE async job instead of one request per company. Submits to /batch/company/enrich, polls until done, then returns the records. Use this for lists of ~50+ companies; for a handful use crustdata_company_enrich (v1 default) or crustdata_company_enrich_v2 — those are synchronous and answer in seconds. Provide exactly ONE identifier list (domains / names / crustdata_company_ids / professional_network_profile_urls). COST: same per-company rate as crustdata_company_enrich_v2 (including the 'technographics' add-on); unresolved identifiers are dropped, not billed. LIMITS: at most 5 active batch jobs per account (a 6th returns 429). RESPONSE: {batch_id, status, entities_requested, entities_fulfilled, result_count, results: [{original_identifier, ...company fields}]}; on timeout, {batch_id, status_url} to re-poll.

    Inputs

    paramsobjectrequired
    Input for POST /batch/company/enrich (v2025-11-01).
    _rationalestring
    Describe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.