Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Tally MCP server

Vendor MCP
Open markdown

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

Tools
28
What they doRead · write · destructive
9 · 19 · 09 read19 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • Build forms: create new forms and add, move, or remove questions, blocks, and pages
  • Add conditional logic: create or update conditional logic rules on questions and blocks, and set which fields are required
  • Style forms: apply brand colors, fonts, and images from a website, or update layout and custom CSS
  • Configure and publish: update submission limits, notifications, and redirects, then save and publish the form
  • Read submissions and insights: fetch form responses and track views, completions, and conversion rate

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

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

    Scalekit credentials are available for Tally 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 = 'tallymcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Tally 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: 'tallymcp_list_forms',
    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
  • tallymcp_extract_brandExtract brand colors, fonts, and images from a website URL to apply to the form.Read-only

    Extract Brand

    Extract brand colors, fonts, and images from a website URL to apply to the form.

    Inputs

    urlstringrequired
    The website URL to extract branding from
  • tallymcp_fetch_insightsFetch analytics metrics for a form such as views, completions, and conversion rate.Read-only

    Fetch Insights

    Fetch analytics metrics for a form such as views, completions, and conversion rate.

    Inputs

    formIdstringrequired
    Form ID to fetch insights for
    periodstringrequired
    Time period for the analytics dataone of todayyesterday24h7d30d3m6m12mall
    includearray
    Sections to include in the response. Defaults to all when omitted.
  • tallymcp_fetch_submissionsRetrieve paginated form submissions with question labels and response values.Read-only

    Fetch Submissions

    Retrieve paginated form submissions with question labels and response values.

    Inputs

    formIdstringrequired
    Form ID to fetch submissions for
    filterobject
    Filter options for submissions
    limitinteger
    Number of submissions per pagedefault 50
    pageinteger
    Page number for paginationdefault 1
  • tallymcp_inspect_custom_cssReturn the current custom CSS and available CSS selectors for the form.Read-only

    Inspect Custom Css

    Return the current custom CSS and available CSS selectors for the form.

    Inputs

    formIdstringrequired
    The form to act on: its id, or a share, edit or embed link to it. Use the formId from create_new_form or load_form.
  • tallymcp_list_blocksRetrieve the current form structure as a block ledger showing all blocks with their UUIDs and types.Read-only

    List Blocks

    Retrieve the current form structure as a block ledger showing all blocks with their UUIDs and types.

    Inputs

    formIdstringrequired
    The form to act on: its id, or a share, edit or embed link to it. Use the formId from create_new_form or load_form.
  • tallymcp_list_formsList forms the user has access to, with optional filtering and pagination.Read-only

    List Forms

    List forms the user has access to, with optional filtering and pagination.

    Inputs

    filterobject
    Filter options for forms
    limitinteger
    Number of forms per pagedefault 50
    pageinteger
    Page number for paginationdefault 1
  • tallymcp_list_workspacesList all workspaces the user can access.Read-only

    List Workspaces

    List all workspaces the user can access.

    Inputs

    This tool takes no inputs.

  • tallymcp_load_formLoad an existing form by ID to prepare it for editing.Read-only

    Load Form

    Load an existing form by ID to prepare it for editing.

    Inputs

    formIdstringrequired
    No description.