Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Jotform MCP server

Vendor MCP
Open markdown

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

Tools
7
What they doRead · write · destructive
4 · 2 · 14 read2 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 Jotform MCP connection

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

    Scalekit credentials are available for Jotform 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 = 'jotformmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Jotform 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: 'jotformmcp_fetch',
    toolInput: { id: 'YOUR_ID' },
    })
    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
  • jotformmcp_analyze_submissionsPerform AI-powered analysis on one or more forms' submissions using a natural-language query.Read-only

    Analyze Submissions

    Perform AI-powered analysis on one or more forms' submissions using a natural-language query.

    Inputs

    analysisQuerystringrequired
    A natural-language query describing the desired analysis. Examples: "What are the most common responses?", "Show submission trends by month", "Analyze sentiment in feedback", "Give me a statistical breakdown of all answers".
    formIDsarrayrequired
    Form IDs whose submissions will be analyzed. Provide a single form ID by default. Only supply more than one ID when the user explicitly requests cross-form comparison or combined analysis. Use the search_asset tool first if you need to find the form ID.
    limitnumberrequired
    Maximum number of submissions to include in the analysis. Higher values provide more comprehensive results but increase processing time.
  • jotformmcp_fetchFetch metadata and information for a Jotform form by its ID or URL.Read-only

    Fetch

    Fetch metadata and information for a Jotform form by its ID or URL.

    Inputs

    idstringrequired
    The form id or the submission id to fetch information and metadata from
  • jotformmcp_get_submissionsList submission IDs for a form with optional filters.Read-only

    Get Submissions

    List submission IDs for a form with optional filters.

    Inputs

    filterobjectrequired
    No description.
    form_idstringrequired
    The ID of the form to list submissions from
  • jotformmcp_assign_formAssign a form to a user by email address with an optional message.Write

    Assign Form

    Assign a form to a user by email address with an optional message.

    Inputs

    assignee_emailstringrequired
    The email address to assign the form to
    assignee_messagestringrequired
    The message to assign the form to. This will be used in the email that will be sent to the assignee.
    assignee_namestringrequired
    The name of the assignee. This will be used in the email that will be sent to the assignee.
    form_idstringrequired
    The ID of the form to assign
  • jotformmcp_create_formCreate a new Jotform form based on a natural-language description.Write

    Create Form

    Create a new Jotform form based on a natural-language description.

    Inputs

    descriptionstringrequired
    Description of the form to create
  • jotformmcp_edit_formEdit an existing form using a natural-language instruction.Destructive

    Edit Form

    Edit an existing form using a natural-language instruction.

    Inputs

    descriptionstringrequired
    High-level natural-language instruction describing what to change (e.g., add/move/rename questions). Avoid specifying internal types or identifiers; another agent will infer the appropriate field types.
    form_idstringrequired
    The ID of the form to edit