Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Front MCP server

Vendor MCP
Open markdown

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

Tools
25
What they doRead · write · destructive
16 · 8 · 116 read8 write1 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 Front MCP connection

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

    Scalekit credentials are available for Front, 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 = 'frontmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Front 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: 'frontmcp_get_my_identity',
    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
  • frontmcp_get_attachmentGet a specific attachment on a message or comment.Read-only

    Get Attachment

    Get a specific attachment on a message or comment. Returns attachment metadata (filename, contentType, size) plus a short-lived downloadUrl.

    Inputs

    attachmentIdstringrequired
    Public attachment link ID (fil_xxx), as returned by read_message.
  • frontmcp_get_my_identityGet the calling agent's own identity: public ID, name, alias, and whether the caller is human.Read-only

    Get My Identity

    Get the calling agent's own identity: public ID, name, alias, and whether the caller is human. Takes no arguments.

    Inputs

    This tool takes no inputs.

  • frontmcp_list_channelsList channels accessible to the authenticated user.Read-only

    List Channels

    List channels accessible to the authenticated user. Filter by name, address, type, or inbox. Use this tool to discover channels before calling tools that require a channel ID.

    Inputs

    account_statusesstring
    Optional filter by channel account status.
    inbox_idsstring
    Optional filter by inbox IDs. Prefer this instead of putting inbox names in name_query.
    limitstring
    Maximum number of results (default 25, max 50)
    name_querystring
    Optional channel display name or address keywords. Use this only for the channel identity itself.
    offsetstring
    Offset for pagination (default 0). Use with limit to paginate through results.
    typesstring
    Optional filter by channel type (for example email, chat, sms).
  • frontmcp_list_draftsList in-flight draft messages authored by the authenticated teammate.Read-only

    List Drafts

    List in-flight draft messages authored by the authenticated teammate.

    Inputs

    limitinteger
    Maximum number of drafts to return (default 50, max 200).
  • frontmcp_list_inboxesList inboxes accessible to the authenticated user.Read-only

    List Inboxes

    List inboxes accessible to the authenticated user.

    Inputs

    access_modestring
    Optional filter by inbox access mode.
    ai_enabledstring
    Optional filter by Front AI status.
    business_hours_enabledstring
    Optional filter by business hours status.
    circle_idsstring
    Optional filter by teammate group IDs who have access to the inbox.
    global_rules_enabledstring
    Optional filter by company rules status.
    limitstring
    Maximum number of results (default 25, max 50)
    name_querystring
    Optional inbox name keywords. Use this only for the inbox name itself.
    offsetstring
    Offset for pagination (default 0). Use with limit to paginate through results.
    teammate_idsstring
    Optional filter by teammate IDs who have access to the inbox.
    ticketing_enabledstring
    Optional filter by ticketing status.
  • frontmcp_list_statusesList the company's ticket statuses.Read-only

    List Statuses

    List the company's ticket statuses. Returns an empty list when ticketing is not enabled for the company.

    Inputs

    limitstring
    Maximum number of results (default 50, max 100)
    name_querystring
    Optional ticket status name keywords. Use this only for the status name itself.
    offsetstring
    Offset for pagination (default 0). Use with limit to paginate through results.
  • frontmcp_list_tagsList tags in the workspace.Read-only

    List Tags

    List tags in the workspace.

    Inputs

    all_inboxesstring
    Optional filter by whether the tag applies to all inboxes.
    inbox_idsstring
    Optional filter by inbox IDs this tag applies to.
    is_visible_in_conversation_listsstring
    Optional filter by visibility in conversation lists.
    limitstring
    Maximum number of results (default 50, max 100)
    name_querystring
    Optional tag name keywords. Use this only for the tag name itself.
    offsetstring
    Offset for pagination (default 0). Use with limit to paginate through results.
    parent_tag_idstring
    Optional filter by parent tag ID.
  • frontmcp_list_teammatesList teammates in the workspace.Read-only

    List Teammates

    List teammates in the workspace.

    Inputs

    limitstring
    Maximum number of results (default 10, max 25)
    name_querystring
    Name or email keywords to search for (for example "alex" or "alex@"). Use this only for teammate identity, not for workspace, status, or relationship intent.
    offsetstring
    Offset for pagination (default 0). Use with limit to paginate through results.
    statusesstring
    Filter by account status. Defaults to active statuses (active, pending, pending_email). Include "blocked" to see deactivated teammates.