The Model Context Protocol (MCP) lets you build Tally forms and retrieve forms or submissions
using natural language through AI assistants like Claude.
The easiest way to connect is through OAuth. Many AI assistants support OAuth authentication for MCP servers, allowing you to connect with just a few clicks without manually managing API keys.When your AI assistant prompts for OAuth authentication:
Click the connect button or authorization link
Log in to your Tally account (if not already logged in)
Authorize the connection
The AI assistant will automatically configure the connection
This method works for Claude Desktop and claude.ai, and applies across all Claude apps that support connectors, including Claude Chat, Claude Code, and Claude Cowork.
Open Claude Desktop (or claude.ai in your browser) and navigate to Customize > Connectors > Add custom connector from the sidebar on the left.
Give the connector a name and the Tally MCP server URL.
https://api.tally.so/mcp
Click “Add” to save the connector.
Restart Claude Desktop
The first time you use the Tally MCP server, Claude will open an OAuth flow to authenticate with your Tally account.
To connect Claude Code to the Tally MCP server, run the following command in your terminal:
claude mcp add tally --transport http https://api.tally.so/mcp
Claude Code will handle the OAuth flow automatically when you first use the Tally MCP server. You can verify the connection by running the /mcp command inside Claude Code.
The AI assistant will automatically create a contact form with commonly expected fields based on its understanding of what a typical contact form should include. New forms stay private drafts until you ask the assistant to publish them.
Update this form https://tally.so/r/a1B2c3- Remove the phone number field- Also add a captcha- Make company field optional
The AI assistant will use the MCP tools to load your form and make the requested changes. On a live form, changes to questions and content (including the logo, cover image and submit button text) stay unpublished until you ask the assistant to publish them, while settings and other styling apply at once.
Configuring the Tally MCP server using OAuth with Claude
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tally Developer Docs","colors":{"primary":"#000","light":"#559BFA","dark":"#0170D7"},"logo":{"light":"https://mintcdn.com/tally/Lx32mG3X3piCKx5e/images/logo/light.svg?fit=max\u0026auto=format\u0026n=Lx32mG3X3piCKx5e\u0026q=85\u0026s=cd40b335ca868409ff942f2762879cae","dark":"https://mintcdn.com/tally/Lx32mG3X3piCKx5e/images/logo/dark.svg?fit=max\u0026auto=format\u0026n=Lx32mG3X3piCKx5e\u0026q=85\u0026s=2d26351e2ae668d00f3350d2f8154080"},"favicon":"https://mintcdn.com/tally/ZsljAhSrsTiaKklr/images/favicon.ico?fit=max\u0026auto=format\u0026n=ZsljAhSrsTiaKklr\u0026q=85\u0026s=0248d1609351a722b90aee3c7fbe8b3f","navbar":{"links":[{"href":"https://tally.so/support","label":"Support"},{"href":"https://tally.so/help","label":"Help Center"}],"primary":{"type":"button","label":"Create API key","href":"https://tally.so/settings/api-keys"}},"footer":{"socials":{"github":"https://github.com/tallyforms","x":"https://twitter.com/tallyforms","reddit":"https://www.reddit.com/r/tallyforms","linkedin":"https://linkedin.com/company/tallyforms","instagram":"https://instagram.com/tallyforms","bluesky":"https://bsky.app/profile/tally.so","threads":"https://threads.net/@tallyforms"}},"integrations":{"plausible":{"domain":"developers.tally.so"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tally","hasAudioNarration":false,"actualSubdomain":"tally","customDomains":["developers.tally.so"],"gitSource":{"type":"github","owner":"tallyforms","repo":"tally","deployBranch":"develop","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0c008b64cd9c8a5d40ea3","collectionId":"e999c449-0359-4bc4-8bf2-7e03c0e6278b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0c008b64cd9c8a5d40ea3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae1c4b4b8d58072c0209de6","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API Reference","count":40},{"language":"default","tag":"Block Schema Reference","count":39},{"language":"default","tag":"Blocks","count":39},{"language":"default","tag":"Forms","count":14},{"language":"default","tag":"Workspaces","count":9},{"language":"default","tag":"Documentation","count":9},{"language":"default","tag":"Widgets","count":8},{"language":"default","tag":"Getting started","count":6},{"language":"default","tag":"Webhooks","count":6},{"language":"default","tag":"Analytics","count":5}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/mcp","slug":"/api-reference/mcp","pageMetadata":{"title":"MCP server","description":"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol","icon":"plug","href":"/api-reference/mcp"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedFrame,OptimizedImage,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:`The Tally MCP server is currently in beta and subject to change.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-mcp`,children:`What is MCP?`}),`\n`,_jsx(_components.p,{children:`The Model Context Protocol (MCP) lets you build Tally forms and retrieve forms or submissions\nusing natural language through AI assistants like Claude.`}),`\n`,_jsx(Heading,{level:`2`,id:`server-url`,children:`Server URL`}),`\n`,_jsx(_components.p,{children:`The Tally MCP server is available at:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`https://api.tally.so/mcp`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(_components.p,{children:`The Tally MCP server supports two authentication methods:`}),`\n`,_jsx(Heading,{level:`3`,id:`option-1-oauth-recommended`,children:`Option 1: OAuth (Recommended)`}),`\n`,_jsx(_components.p,{children:`The easiest way to connect is through OAuth. Many AI assistants support OAuth authentication for MCP servers, allowing you to connect with just a few clicks without manually managing API keys.`}),`\n`,_jsx(_components.p,{children:`When your AI assistant prompts for OAuth authentication:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Click the connect button or authorization link`}),`\n`,_jsx(_components.li,{children:`Log in to your Tally account (if not already logged in)`}),`\n`,_jsx(_components.li,{children:`Authorize the connection`}),`\n`,_jsx(_components.li,{children:`The AI assistant will automatically configure the connection`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`option-2-api-key`,children:`Option 2: API Key`}),`\n`,_jsx(_components.p,{children:`You can also authenticate using an API key in the Authorization header:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`Authorization:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tly-xxxx`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Learn more about `,_jsx(_components.a,{href:`/api-reference/api-keys`,children:`how to get your API key`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`configuration`,children:`Configuration`}),`\n`,_jsx(Heading,{level:`3`,id:`claude-desktop`,children:`Claude Desktop`}),`\n`,_jsxs(_components.p,{children:[`This method works for Claude Desktop and `,_jsx(_components.a,{href:`https://claude.ai`,children:`claude.ai`}),`, and applies across all Claude apps that support connectors, including Claude Chat, Claude Code, and Claude Cowork.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open Claude Desktop (or `,_jsx(_components.a,{href:`https://claude.ai`,children:`claude.ai`}),` in your browser) and navigate to `,_jsx(_components.strong,{children:`Customize > Connectors > Add custom connector`}),` from the sidebar on the left.`,`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-connectors.png?fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=de3a446bbf1288406aad8e8abec326b5`,alt:`Claude connectors`,width:`1440`,height:`900`,\"data-og-width\":`2860`,\"data-og-height\":`1776`,\"data-path\":`images/mcp/claude-connectors.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-connectors.png?w=280\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=047ed5b89e66b7cf62545a8f38407e7f 280w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-connectors.png?w=560\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=6253068d2a8de6944c3a7d19d4e6ed99 560w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-connectors.png?w=840\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=dc4c3420ea1e2247a0c37e2395349181 840w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-connectors.png?w=1100\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=c8b63807e74478c0237d4bc76e1f711f 1100w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-connectors.png?w=1650\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=420a8cb4f278dda86aad0c0bf388bc86 1650w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-connectors.png?w=2500\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=bc05f401232e12ebacfdff0591201ef8 2500w`})}),`\n`]}),`\n`,_jsx(_components.li,{children:`Give the connector a name and the Tally MCP server URL.`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`https://api.tally.so/mcp`})}),`\n`]})})}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`Click “Add” to save the connector.`,`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-custom-connector.png?fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=7425764bb78f4ffa4865650841bf0951`,alt:`Add Tally MCP connector`,width:`1440`,height:`900`,\"data-og-width\":`2852`,\"data-og-height\":`1772`,\"data-path\":`images/mcp/claude-custom-connector.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-custom-connector.png?w=280\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=68c200ca42b3f76b13514d6a26f46a0f 280w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-custom-connector.png?w=560\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=02f2f45c0a5db3402d84035602a0bafc 560w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-custom-connector.png?w=840\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=46b1bcda8f1faf1817ef87621ba28b02 840w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-custom-connector.png?w=1100\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=75895c2c5c5796ed398134ad8a195e47 1100w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-custom-connector.png?w=1650\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=1969ba33311d67c30ea12d634ac8809b 1650w, https://mintcdn.com/tally/twpEwKvhkbAnGYam/images/mcp/claude-custom-connector.png?w=2500\u0026fit=max\u0026auto=format\u0026n=twpEwKvhkbAnGYam\u0026q=85\u0026s=d6cd75053eba032818858373b250ac96 2500w`})}),`\n`]}),`\n`,_jsx(_components.li,{children:`Restart Claude Desktop`}),`\n`,_jsx(_components.li,{children:`The first time you use the Tally MCP server, Claude will open an OAuth flow to authenticate with your Tally account.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`claude-code-cli`,children:`Claude Code CLI`}),`\n`,_jsx(_components.p,{children:`To connect Claude Code to the Tally MCP server, run the following command in your terminal:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tally`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.tally.so/mcp`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Claude Code will handle the OAuth flow automatically when you first use the Tally MCP server. You can verify the connection by running the `,_jsx(_components.code,{children:`/mcp`}),` command inside Claude Code.`]}),`\n`,_jsx(Heading,{level:`3`,id:`cursor`,children:`Cursor`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`Cursor Settings > Tools \u0026 MCP`})]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`New MCP Server`})]}),`\n`,_jsx(_components.li,{children:`Paste the following JSON to configure the Tally MCP server:`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tally\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.tally.so/mcp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"headers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer YOUR_API_KEY_HERE\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`example-usage`,children:`Example Usage`}),`\n`,_jsx(_components.p,{children:`Once configured, you can ask your AI assistant to create forms using natural language. Here are some examples:`}),`\n`,_jsx(Heading,{level:`3`,id:`creating-a-simple-contact-form`,children:`Creating a Simple Contact Form`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Create a simple contact form`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The AI assistant will automatically create a contact form with commonly expected fields based on its understanding of what a typical contact form should include. New forms stay private drafts until you ask the assistant to publish them.`}),`\n`,_jsx(Heading,{level:`3`,id:`updating-the-contact-form`,children:`Updating the Contact Form`}),`\n`,_jsx(_components.p,{children:`If the generated form isn’t exactly what you wanted, you can easily modify it by following up:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`We don't need the Company field, remove the consent checkbox and maybe add a captcha`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The AI assistant should correctly modify the form. Every change is saved right away.`}),`\n`,_jsx(Heading,{level:`3`,id:`creating-a-form-with-specific-fields`,children:`Creating a form with specific fields`}),`\n`,_jsx(_components.p,{children:`Alternatively, you can be explicit about exactly what fields you want:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`7`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Create a contact form with these specific fields:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Name (required)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Email (required)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Phone (optional)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Message (required)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Captcha (required)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The AI assistant should create a draft form with the specified fields. Ask it to publish the form when you want to share it.`}),`\n`,_jsx(Heading,{level:`3`,id:`updating-an-existing-form`,children:`Updating an existing form`}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Update this form https://tally.so/r/a1B2c3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Remove the phone number field`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Also add a captcha`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Make company field optional`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The AI assistant will use the MCP tools to load your form and make the requested changes. On a live form, changes to questions and content (including the logo, cover image and submit button text) stay unpublished until you ask the assistant to publish them, while settings and other styling apply at once.`}),`\n`,_jsx(Heading,{level:`3`,id:`fetching-form-submissions`,children:`Fetching form submissions`}),`\n`,_jsx(_components.p,{children:`You can fetch submissions for any form, with optional filters for status and date range:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me all completed submissions for https://tally.so/r/a1B2c3 from January 2025`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The AI assistant will fetch and display the matching submissions for your form, including question labels and response data.`}),`\n`,_jsx(Heading,{level:`3`,id:`listing-forms`,children:`Listing forms`}),`\n`,_jsx(_components.p,{children:`You can list forms across your accessible workspaces and ask for filtering by name, status, or recency:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show my 10 most recently updated published forms`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The AI assistant will call the MCP list forms tool and return matching forms with key details such as form name, URL, status, and last updated date.`}),`\n`,_jsx(Heading,{level:`2`,id:`example-usage-with-claude`,children:`Example usage with Claude`}),`\n`,_jsx(OptimizedFrame,{className:`mint-w-full mint-aspect-[1440/900] mint-rounded-xl`,title:`Tally MCP Usage Example`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:true,src:`https://www.youtube.com/embed/1Ozr6JOaySU`}),`\n`,_jsx(Heading,{level:`2`,id:`configuring-the-tally-mcp-server-using-oauth-with-claude`,children:`Configuring the Tally MCP server using OAuth with Claude`}),`\n`,_jsx(OptimizedFrame,{className:`mint-w-full mint-aspect-[1440/900] mint-rounded-xl`,title:`Tally MCP OAuth Configuration`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:true,src:`https://www.youtube.com/embed/HJQobAl_Mno`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"MCP server","description":"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol","icon":"plug","href":"/api-reference/mcp"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is MCP?","slug":"what-is-mcp","depth":2,"children":[]},{"title":"Server URL","slug":"server-url","depth":2,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[{"title":"Option 1: OAuth (Recommended)","slug":"option-1-oauth-recommended","depth":3,"children":[]},{"title":"Option 2: API Key","slug":"option-2-api-key","depth":3,"children":[]}]},{"title":"Configuration","slug":"configuration","depth":2,"children":[{"title":"Claude Desktop","slug":"claude-desktop","depth":3,"children":[]},{"title":"Claude Code CLI","slug":"claude-code-cli","depth":3,"children":[]},{"title":"Cursor","slug":"cursor","depth":3,"children":[]}]},{"title":"Example Usage","slug":"example-usage","depth":2,"children":[{"title":"Creating a Simple Contact Form","slug":"creating-a-simple-contact-form","depth":3,"children":[]},{"title":"Updating the Contact Form","slug":"updating-the-contact-form","depth":3,"children":[]},{"title":"Creating a form with specific fields","slug":"creating-a-form-with-specific-fields","depth":3,"children":[]},{"title":"Updating an existing form","slug":"updating-an-existing-form","depth":3,"children":[]},{"title":"Fetching form submissions","slug":"fetching-form-submissions","depth":3,"children":[]},{"title":"Listing forms","slug":"listing-forms","depth":3,"children":[]}]},{"title":"Example usage with Claude","slug":"example-usage-with-claude","depth":2,"children":[]},{"title":"Configuring the Tally MCP server using OAuth with Claude","slug":"configuring-the-tally-mcp-server-using-oauth-with-claude","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"dynamicCss":".mint-aspect-\\[1440\\/900\\] {\n aspect-ratio: 1440/900\n}\n.mint-w-full {\n width: 100%\n}\n.mint-rounded-xl {\n border-radius: 0.75rem\n}","subdomain":"tally","siteName":"Tally Developer Docs","title":"MCP server - Tally Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-28T13:50:59.482Z","originalFileLocation":"api-reference/mcp.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tally Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"MCP server - Tally Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tally Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.tally.so/api-reference/mcp\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tally.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=MCP+server\u0026amp;description=Build+Tally+forms+and+list+forms+or+submissions+using+AI+assistants+via+the+Model+Context+Protocol\u0026amp;theme=debacae51ba8e2027e4df92a\u0026amp;signature=087e760555210d33a85dbe6738964094a0961536b0ddd850689417db06170c70\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"MCP server - Tally Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tally.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=MCP+server\u0026amp;description=Build+Tally+forms+and+list+forms+or+submissions+using+AI+assistants+via+the+Model+Context+Protocol\u0026amp;theme=debacae51ba8e2027e4df92a\u0026amp;signature=087e760555210d33a85dbe6738964094a0961536b0ddd850689417db06170c70\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tally/GwnFY1zAokn6LpcE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tally Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.tally.so/api-reference/mcp\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/mcp.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.tally.so/#organization\",\"name\":\"Tally Developer Docs\",\"url\":\"https://developers.tally.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tally/Lx32mG3X3piCKx5e/images/logo/light.svg?fit=max\u0026auto=format\u0026n=Lx32mG3X3piCKx5e\u0026q=85\u0026s=cd40b335ca868409ff942f2762879cae\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.tally.so#website\",\"name\":\"Tally Developer Docs\",\"url\":\"https://developers.tally.so\",\"publisher\":{\"@id\":\"https://developers.tally.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.tally.so/api-reference/mcp#webpage\",\"url\":\"https://developers.tally.so/api-reference/mcp\",\"name\":\"MCP server\",\"description\":\"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol\",\"dateModified\":\"2026-09-28T13:50:59.482Z\",\"isPartOf\":{\"@id\":\"https://developers.tally.so#website\"},\"breadcrumb\":{\"@id\":\"https://developers.tally.so/api-reference/mcp#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.tally.so/api-reference/mcp#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting started\",\"item\":\"https://developers.tally.so/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MCP server\",\"item\":\"https://developers.tally.so/api-reference/mcp\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.tally.so/api-reference/mcp#article\",\"headline\":\"MCP server\",\"name\":\"MCP server\",\"description\":\"Build Tally forms and list forms or submissions using AI assistants via the Model Context Protocol\",\"url\":\"https://developers.tally.so/api-reference/mcp\",\"mainEntityOfPage\":{\"@id\":\"https://developers.tally.so/api-reference/mcp#webpage\"},\"dateModified\":\"2026-09-28T13:50:59.482Z\",\"publisher\":{\"@id\":\"https://developers.tally.so/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.tally.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tally Developer Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Tally Developer Docs","nav":{"global":null,"tabs":[{"tab":"API Reference","groups":[{"group":"Getting started","pages":[{"title":"Introduction","icon":"rocket","href":"/api-reference/introduction"},{"title":"API keys","icon":"key","href":"/api-reference/api-keys"},{"title":"Versioning","icon":"calendar-check","href":"/api-reference/versioning"},{"title":"Changelog","description":"Changes made to the Tally API worth knowing about","icon":"list-check","href":"/api-reference/changelog"},{"title":"MCP server","icon":"plug","href":"/api-reference/mcp"}]},{"group":"Users","pages":[{"title":"Fetching user info","openapi":"GET /users/me","description":"Returns information about the current authenticated user.","href":"/api-reference/endpoint/users/me/get"}]},{"group":"Organizations","pages":[{"title":"Listing users","openapi":"GET /organizations/{organizationId}/users","href":"/api-reference/endpoint/organizations/users/get"},{"title":"Removing users","openapi":"DELETE /organizations/{organizationId}/users/{userId}","href":"/api-reference/endpoint/organizations/users/delete"},{"title":"Listing invites","openapi":"GET /organizations/{organizationId}/invites","href":"/api-reference/endpoint/organizations/invites/get"},{"title":"Creating invites","openapi":"POST /organizations/{organizationId}/invites","href":"/api-reference/endpoint/organizations/invites/post"},{"title":"Cancelling invites","openapi":"DELETE /organizations/{organizationId}/invites/{inviteId}","href":"/api-reference/endpoint/organizations/invites/delete"}]},{"group":"Forms","pages":[{"title":"Listing forms","openapi":"GET /forms","href":"/api-reference/endpoint/forms/list"},{"title":"Creating forms","openapi":"POST /forms","href":"/api-reference/endpoint/forms/post"},{"title":"Fetching forms","openapi":"GET /forms/{formId}","href":"/api-reference/endpoint/forms/get"},{"title":"Updating forms","openapi":"PATCH /forms/{formId}","href":"/api-reference/endpoint/forms/patch"},{"title":"Deleting forms","openapi":"DELETE /forms/{formId}","href":"/api-reference/endpoint/forms/delete"},{"title":"Listing questions","openapi":"GET /forms/{formId}/questions","href":"/api-reference/endpoint/forms/questions/list"},{"title":"Listing submissions","openapi":"GET /forms/{formId}/submissions","href":"/api-reference/endpoint/forms/submissions/list"},{"title":"Fetching submissions","openapi":"GET /forms/{formId}/submissions/{submissionId}","href":"/api-reference/endpoint/forms/submissions/get"},{"title":"Deleting submissions","openapi":"DELETE /forms/{formId}/submissions/{submissionId}","href":"/api-reference/endpoint/forms/submissions/delete"},{"group":"Analytics","pages":[{"title":"Metrics","openapi":"GET /forms/{formId}/analytics/metrics","href":"/api-reference/endpoint/forms/analytics/metrics"},{"title":"Visits","openapi":"GET /forms/{formId}/analytics/visits","href":"/api-reference/endpoint/forms/analytics/visits"},{"title":"Submissions","openapi":"GET /forms/{formId}/analytics/submissions","href":"/api-reference/endpoint/forms/analytics/submissions"},{"title":"Dimensions","openapi":"GET /forms/{formId}/analytics/dimensions","href":"/api-reference/endpoint/forms/analytics/dimensions"},{"title":"Drop-off","openapi":"GET /forms/{formId}/analytics/drop-off","href":"/api-reference/endpoint/forms/analytics/drop-off"}]}]},{"group":"Workspaces","pages":[{"title":"Listing workspaces","openapi":"GET /workspaces","href":"/api-reference/endpoint/workspaces/list"},{"title":"Creating workspaces","openapi":"POST /workspaces","href":"/api-reference/endpoint/workspaces/post"},{"title":"Fetching workspaces","openapi":"GET /workspaces/{workspaceId}","href":"/api-reference/endpoint/workspaces/get"},{"title":"Updating workspaces","openapi":"PATCH /workspaces/{workspaceId}","href":"/api-reference/endpoint/workspaces/patch"},{"title":"Deleting workspaces","openapi":"DELETE /workspaces/{workspaceId}","href":"/api-reference/endpoint/workspaces/delete"},{"group":"Folders","pages":[{"title":"Listing folders","openapi":"GET /workspaces/{workspaceId}/folders","href":"/api-reference/endpoint/workspaces/folders/list"},{"title":"Creating folders","openapi":"POST /workspaces/{workspaceId}/folders","href":"/api-reference/endpoint/workspaces/folders/post"},{"title":"Updating folders","openapi":"PATCH /workspaces/{workspaceId}/folders/{id}","href":"/api-reference/endpoint/workspaces/folders/patch"},{"title":"Deleting folders","openapi":"DELETE /workspaces/{workspaceId}/folders/{id}","href":"/api-reference/endpoint/workspaces/folders/delete"}]}]},{"group":"Webhooks","pages":[{"title":"Listing webhooks","openapi":"GET /webhooks","href":"/api-reference/endpoint/webhooks/get"},{"title":"Creating webhooks","openapi":"POST /webhooks","href":"/api-reference/endpoint/webhooks/post"},{"title":"Updating webhooks","openapi":"PATCH /webhooks/{webhookId}","href":"/api-reference/endpoint/webhooks/patch"},{"title":"Deleting webhooks","openapi":"DELETE /webhooks/{webhookId}","href":"/api-reference/endpoint/webhooks/delete"},{"title":"Listing webhook events","openapi":"GET /webhooks/{webhookId}/events","href":"/api-reference/endpoint/webhooks/events/get"},{"title":"Retrying webhook events","openapi":"POST /webhooks/{webhookId}/events/{eventId}","href":"/api-reference/endpoint/webhooks/events/retry"}]}]},{"tab":"Block Schema Reference","pages":[{"title":"Block Schema Reference","href":"/blocks-reference/form-title"}]},{"tab":"Widgets","pages":[{"title":"Widgets","href":"/widgets/introduction"}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/documentation/creating-a-form"}]}]},"title":"MCP server - Tally Developer Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BbYRHtLl.js","DynamicMarkdown-DN96a4Ur.js","zoom-image-lightbox-D7yRe3On.js","lightbox-handle-r17bVUz3.js"]}