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 26 tools.
- Tools
- 26
- What they doRead · write · destructive
- 9 · 17 · 09 read17 write0 destructive
- Users sign in with
- OAuth
- 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
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>Create the Tally MCP connection
In AgentKit > Connections, create a Tally MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Tally MCP server, so you don't need to register an OAuth app.
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.actionsconst connector = 'tallymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'tallymcp_inspect_custom_css',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "tallymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Tally MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="tallymcp_inspect_custom_css",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooltallymcp_extract_brandExtract brand colors, fonts, and images from a website URL to apply to the form.Read-onlyExtract Brand
Extract brand colors, fonts, and images from a website URL to apply to the form.
Inputs
urlstringrequired- No description.
tallymcp_fetch_insightsFetch analytics metrics for a form such as views, completions, and conversion rate.Read-onlyFetch Insights
Fetch analytics metrics for a form such as views, completions, and conversion rate.
Inputs
formIdstringrequired- No description.
periodstringrequired- No description.one of
todayyesterday24h7d30d3m6m12mall includearray- No description.
tallymcp_fetch_submissionsRetrieve paginated form submissions with question labels and response values.Read-onlyFetch Submissions
Retrieve paginated form submissions with question labels and response values.
Inputs
formIdstringrequired- No description.
filterobject- No description.
limitnumber- No description.default
50 pagenumber- No description.default
1
tallymcp_inspect_custom_cssReturn the current custom CSS and available CSS selectors for the form.Read-onlyInspect Custom Css
Return the current custom CSS and available CSS selectors for the form.
Inputs
This tool takes no inputs.
tallymcp_list_blocksRetrieve the current form structure as a block ledger showing all blocks with their UUIDs and types.Read-onlyList Blocks
Retrieve the current form structure as a block ledger showing all blocks with their UUIDs and types.
Inputs
This tool takes no inputs.
tallymcp_list_formsList forms the user has access to, with optional filtering and pagination.Read-onlyList Forms
List forms the user has access to, with optional filtering and pagination.
Inputs
filterobject- No description.
limitnumber- No description.default
50 pagenumber- No description.default
1
tallymcp_list_workspacesList all workspaces the user can access.Read-onlyList 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-onlyLoad Form
Load an existing form by ID to prepare it for editing.
Inputs
formIdstringrequired- No description.
tallymcp_search_documentationAnswer-only search of the Tally Help Center for explicit documentation or product-knowledge questions: how Tally works, whether a capability exists, supported features, limits, or docs links.Read-onlySearch Documentation
Answer-only search of the Tally Help Center for explicit documentation or product-knowledge questions: how Tally works, whether a capability exists, supported features, limits, or docs links. Never use as a preflight for form edits. Never use for commands that change the current form, including adding or creating blocks, configuring fields, setting defaults, updating settings, adding calculated fields, styling, moving, removing, formatting, or applying logic.
Inputs
querystringrequired- No description.
topKnumber- No description.
tallymcp_apply_logicCreate or update conditional logic rules on form blocks using DSL syntax.WriteApply Logic
Create or update conditional logic rules on form blocks using DSL syntax.
Inputs
operationsarrayrequired- No description.
tallymcp_configure_blocksUpdate block properties such as visibility, required state, and other settings.WriteConfigure Blocks
Update block properties such as visibility, required state, and other settings.
Inputs
updatesarrayrequired- No description.
tallymcp_create_blocksAdd new question blocks or content blocks to the current form.WriteCreate Blocks
Add new question blocks or content blocks to the current form.
Inputs
groupsarrayrequired- No description.
tallymcp_create_new_formCreate a new blank form with the specified title and optional branding.WriteCreate New Form
Create a new blank form with the specified title and optional branding.
Inputs
titlestringrequired- No description.
coverImageUrlstring- No description.
logoUrlstring- No description.
submitButtonTextstring- No description.
workspaceIdstring- No description.
tallymcp_move_blocksMove one or more blocks to a new position in the form.WriteMove Blocks
Move one or more blocks to a new position in the form.
Inputs
blockUuidsarrayrequired- No description.
insertAfterBlockUuidstringrequired- No description.
tallymcp_remove_blocksRemove specific blocks from the form by their UUIDs.WriteRemove Blocks
Remove specific blocks from the form by their UUIDs.
Inputs
blockUuidsarrayrequired- No description.
tallymcp_remove_pagesRemove entire pages from the form by page number.WriteRemove Pages
Remove entire pages from the form by page number.
Inputs
pageNumbersarrayrequired- No description.
tallymcp_remove_questionsRemove entire questions from the form by their UUIDs.WriteRemove Questions
Remove entire questions from the form by their UUIDs.
Inputs
questionUuidsarrayrequired- No description.
tallymcp_reposition_pagesMove, swap, or reorder pages using a command (move, swap, reorder).WriteReposition Pages
Move, swap, or reorder pages using a command (move, swap, reorder).
Inputs
commandstringrequired- No description.one of
moveswapreorder currentPageNumbernumber- No description.
newPageNumbernumber- No description.
orderarray- No description.
pageNumberAnumber- No description.
pageNumberBnumber- No description.
tallymcp_reposition_questionsMove or swap questions using a command (move, swap).WriteReposition Questions
Move or swap questions using a command (move, swap).
Inputs
commandstringrequired- No description.one of
moveswap afterBlockUuidstring- No description.
questionUuidAstring- No description.
questionUuidBstring- No description.
questionUuidsarray- No description.
tallymcp_save_formSave the current form changes and optionally publish or unpublish the form.WriteSave Form
Save the current form changes and optionally publish or unpublish the form.
Inputs
formIdstring- No description.
statusstring- No description.one of
DRAFTPUBLISHEDdefaultPUBLISHED
tallymcp_set_column_layoutOrganize blocks into a side-by-side column layout.WriteSet Column Layout
Organize blocks into a side-by-side column layout.
Inputs
layoutstringrequired- No description.
tallymcp_set_form_titleSet or update the form title that appears at the top of the form.WriteSet Form Title
Set or update the form title that appears at the top of the form.
Inputs
titlestringrequired- No description.
tallymcp_update_custom_cssApply custom CSS to the form as a last-resort override for styling not supported by update_styling.WriteUpdate Custom Css
Apply custom CSS to the form as a last-resort override for styling not supported by update_styling.
Inputs
cssstringrequired- No description.
reasonstringrequired- No description.
tallymcp_update_settingsUpdate form settings including submission limits, notifications, redirects, and metadata.WriteUpdate Settings
Update form settings including submission limits, notifications, redirects, and metadata.
Inputs
closeAtstring- No description.
closeMessagestring- No description.
directionstring- No description.one of
ltrrtl hasPartialSubmissionsboolean- No description.
hasProgressBarboolean- No description.
isClosedboolean- No description.
languagestring- No description.one of
afarsqbnbgcazh-CNzh-TWhrcsdanleneteufofafilfifrkadeklelhehihuisidgaitjakolvltnomsmkplptpt-BRrorusrsisksleses-MXsvtathtrukuzviyo metaDescriptionstring- No description.
metaImageUrlstring- No description.
metaSiteFaviconUrlstring- No description.
metaSiteNamestring- No description.
metaTitlestring- No description.
pageAutoJumpboolean- No description.
passwordstring- No description.
redirectOnCompletionUrlstring- No description.
respondentEmailstring- No description.
saveForLaterboolean- No description.
selfEmailstring- No description.
submissionsDataRetentionstring- No description.
submissionsLimitstring- No description.
uniqueSubmissionKeystring- No description.
verifyEmailstring- No description.
tallymcp_update_stylingUpdate form appearance and advanced styling in a single call.WriteUpdate Styling
Update form appearance and advanced styling in a single call.
Inputs
advancedobject- No description.
appearanceobject- No description.
tallymcp_update_textUpdate the HTML text content of blocks in the form.WriteUpdate Text
Update the HTML text content of blocks in the form.
Inputs
updatesarrayrequired- No description.
No tools match.