Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the ProhostAI MCP server

Vendor MCP
Open markdown

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

Tools
268
What they doRead · write · destructive
98 · 58 · 11298 read58 write112 destructive
Users sign in with
OAuth app
Your own ProhostAI MCP server app

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 ProhostAI MCP connection

    In AgentKit > Connections, create a ProhostAI MCP connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    ProhostAI MCP server connections use your own OAuth app. Register one with ProhostAI MCP server and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the ProhostAI MCP connection.

  5. 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 = 'prohostaimcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize ProhostAI 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: 'prohostaimcp_community_list_lounges',
    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
  • prohostaimcp_check_missing_custom_fieldsFor a set of field keys, return which listings (under a tag or an explicit ID list) don't have a value for them in the merged hierarchy.Read-only

    Check Missing Custom Fields

    For a set of field keys, return which listings (under a tag or an explicit ID list) don't have a value for them in the merged hierarchy. Useful for validating tag-scoped guidebook references before saving.

    Inputs

    field_keysarrayrequired
    The custom-field keys to check for missing values.
    listing_idsstring
    Restrict the check to this explicit list of listing IDs.
    tag_idstring
    Restrict the check to listings assigned to this tag.
  • prohostaimcp_classify_bank_transactionAI-suggest the best expense category for a Plaid bank transaction.Read-only

    Classify Bank Transaction

    AI-suggest the best expense category for a Plaid bank transaction. Combines fuzzy text matching over the account's expense categories with an LLM pick. Read-only — suggests a category id + a ranked candidate shortlist; makes no changes and needs no confirmation. Use the suggested category_id with create_expense_from_transaction.

    Inputs

    transaction_idstringrequired
    The unique identifier of the Plaid bank transaction to classify.
  • prohostaimcp_classify_ramp_transactionAI-suggest the best expense category for a Ramp corporate-card transaction.Read-only

    Classify Ramp Transaction

    AI-suggest the best expense category for a Ramp corporate-card transaction. Combines fuzzy text matching over the account's expense categories with an LLM pick. Read-only — suggests a category id + a ranked candidate shortlist; makes no changes and needs no confirmation. Use the suggested category_id with create_expense_from_ramp_transaction.

    Inputs

    transaction_idstringrequired
    The unique identifier of the Ramp corporate-card transaction to classify.
  • prohostaimcp_community_list_loungesList every community lounge with the acting user's standing in each: slug, name, kind, emoji, member count, whether the user has joined, and whether their credentials make them eligible.Read-only

    Community List Lounges

    List every community lounge with the acting user's standing in each: slug, name, kind, emoji, member count, whether the user has joined, and whether their credentials make them eligible. Also returns the user's pseudonymous community handle — every join and post is attributed to that handle, never their real name. Call this before community_create_post to pick a valid lounge slug. Requires the `community:read` scope.

    Inputs

    This tool takes no inputs.

  • prohostaimcp_crm_get_opportunityFetch a single CRM opportunity by id.Read-only

    Crm Get Opportunity

    Fetch a single CRM opportunity by id.

    Inputs

    opportunity_idstringrequired
    The unique identifier of the CRM opportunity to fetch.
  • prohostaimcp_crm_list_companiesList or search CRM companies (organizations) for the account.Read-only

    Crm List Companies

    List or search CRM companies (organizations) for the account.

    Inputs

    limitinteger
    Maximum number of companies to return.default 25
    querystring
    Search text to match against company names.
  • prohostaimcp_crm_list_contactsList or search CRM contacts (people) for the account.Read-only

    Crm List Contacts

    List or search CRM contacts (people) for the account.

    Inputs

    company_idstring
    Filter results to contacts belonging to this company.
    limitinteger
    Maximum number of contacts to return.default 25
    querystring
    Search text to match against contact names, emails, or phone numbers.
  • prohostaimcp_crm_list_field_definitionsList the account's CRM custom-field definitions, optionally filtered by object type.Read-only

    Crm List Field Definitions

    List the account's CRM custom-field definitions, optionally filtered by object type. Use this to check whether a field already exists before creating it.

    Inputs

    object_typestring
    Filter field definitions to only this CRM object type. Omit to list definitions for all object types.