
Tally MCP Server
A comprehensive Model Context Protocol server that enables Claude Desktop users to manage Tally forms with 23 powerful tools for creating, editing, and analyzing forms, submissions, questions, webhooks, and conditional logic.
Tools
get_tally_forms
Get list of Tally forms
create_tally_form
Create a new Tally form
get_form_questions
Get list of questions for a specific form
update_form_status
Update the status of a form (BLANK, PUBLISHED, DRAFT)
get_tally_form_templates
Get pre-built form templates for common use cases (contact forms, surveys, registration, feedback, etc.)
get_tally_form
Get details of a specific Tally form
update_tally_form
Update an existing Tally form with comprehensive options including name, status, blocks, and settings
delete_tally_form
Delete a Tally form
get_form_submissions
Get list of submissions for a specific form
get_form_submission
Get details of a specific form submission
delete_form_submission
Delete a specific form submission
get_tally_webhooks
Get list of webhooks for a specific form
create_tally_webhook
Create a new webhook for a form
update_tally_webhook
Update an existing webhook
delete_tally_webhook
Delete a webhook
update_form_settings
Update specific form settings like notifications, closing options, etc.
configure_form_notifications
Configure email notifications for form owner and respondents
get_tally_block_types
Get comprehensive information about all available Tally form block types and their structures for building forms
create_conditional_logic_block
Create properly structured conditional logic blocks with validation for form flow control
validate_form_logic_flow
Analyze and validate the logical flow of a form to identify potential issues or dead ends
get_conditional_logic_templates
Get pre-built conditional logic templates for common scenarios like progressive disclosure, skip logic, and branching surveys
validate_multiple_choice_logic
Validate conditional logic for multiple choice questions to prevent common errors like using "equals" instead of "contains"
create_dynamic_question_sets
Create questions with conditional option sets that change based on previous answers (like Q5/Q6 in complex surveys)
README
Tally MCP Server
A comprehensive Model Context Protocol (MCP) server for Tally form management. This server provides 23 powerful tools to manage forms, submissions, questions, webhooks, and enterprise-grade conditional logic directly through Claude Desktop.
Built by @cathrynlavery | Try Claude Desktop | Get Tally Forms
✨ Features
- 23 comprehensive tools for complete Tally form management
- Enterprise-grade conditional logic with critical error prevention
- Advanced form building with block types documentation and templates
- Form templates for common use cases (contact, survey, registration, etc.)
- Complete block type reference covering 20+ input, layout, and logic blocks
- Critical validation tools to prevent survey-breaking logic errors
- Dynamic question management for complex conditional option sets
- Full API coverage including advanced form editing capabilities
- Seamless Claude Desktop integration via MCP protocol
- Type-safe with proper JSON schema validation
- Production-ready with error handling and logging
🚀 Quick Start
Prerequisites
- Node.js (v16 or higher)
- Claude Desktop application
- Tally account with API access
1. Installation
git clone https://github.com/cathrynlavery/tally-mcp-server.git
cd tally-mcp-server
npm install
npm run build
2. Get Your Tally API Key
- Sign up for Tally (free account works!)
- Go to https://tally.so/settings/api
- Create a new API key
- Copy the API key (starts with
tally_
)
3. Configure Environment Variables
# Copy the example environment file
cp .env.example .env
# Edit .env and add your API key
TALLY_API_KEY=tally_your_actual_api_key_here
4. Configure Claude Desktop
macOS Setup
-
Open your Claude Desktop configuration file:
# Create the directory if it doesn't exist mkdir -p ~/Library/Application\ Support/Claude # Open the config file (create if it doesn't exist) open ~/Library/Application\ Support/Claude/claude_desktop_config.json
-
Add the Tally MCP server configuration:
{ "mcpServers": { "tally": { "command": "node", "args": ["/path/to/your/tally-mcp-server/start-server.js"], "env": { "TALLY_API_KEY": "tally_your_actual_api_key_here" } } } }
Important: Replace
/path/to/your/tally-mcp-server/
with your actual project path!
Windows Setup
- Open:
%APPDATA%\Claude\claude_desktop_config.json
- Use the same JSON structure with Windows paths:
{ "mcpServers": { "tally": { "command": "node", "args": ["C:\\path\\to\\your\\tally-mcp-server\\start-server.js"], "env": { "TALLY_API_KEY": "tally_your_actual_api_key_here" } } } }
Linux Setup
- Open:
~/.config/Claude/claude_desktop_config.json
- Use the same JSON structure with Linux paths
5. Test the Setup
- Restart Claude Desktop completely (quit and reopen)
- Start a new conversation
- Try: "Can you list my Tally forms?"
🤔 Available Tools (23 Total)
Forms Management (5 tools)
get_tally_forms
- List all your formscreate_tally_form
- Create new formsget_tally_form
- Get specific form detailsupdate_tally_form
- Update forms with full API support and enhanced block structuredelete_tally_form
- Delete forms
Submissions Management (3 tools)
get_form_submissions
- List form submissions with paginationget_form_submission
- Get specific submission detailsdelete_form_submission
- Delete submissions
Questions Management (1 tool)
get_form_questions
- List all questions in a form
Webhooks Management (4 tools)
get_tally_webhooks
- List webhooks for a formcreate_tally_webhook
- Create new webhooksupdate_tally_webhook
- Update existing webhooksdelete_tally_webhook
- Delete webhooks
Form Building & Templates (2 tools)
get_tally_block_types
- Get comprehensive documentation of all available form block typesget_tally_form_templates
- Get pre-built form templates for common use cases
Advanced Conditional Logic (5 tools)
create_conditional_logic_block
- Create properly structured conditional logic blocks with validationvalidate_form_logic_flow
- Analyze and validate the logical flow of forms to identify issuesget_conditional_logic_templates
- Get pre-built conditional logic templates for common scenariosvalidate_multiple_choice_logic
- CRITICAL - Prevent "equals" vs "contains" errors that break multiple choice conditional logiccreate_dynamic_question_sets
- CRITICAL - Create questions with conditional option sets that change based on previous answers
Form Editing Helpers (3 tools)
update_form_status
- Quick status changes (BLANK, PUBLISHED, DRAFT)update_form_settings
- Update common form settingsconfigure_form_notifications
- Set up email notifications
💬 Example Usage in Claude
Once configured, you can interact naturally with your Tally forms:
- "Show me all my forms"
- "Create a new customer feedback form"
- "What types of form blocks are available in Tally?"
- "Give me a contact form template"
- "Build a survey with rating questions and multiple choice"
- "Create conditional logic that shows different questions based on user type"
- "Validate my multiple choice logic to prevent survey failures"
- "Create a dynamic question like Q5 in BestSelf survey with conditional option sets"
- "Check my conditional logic flow for dead ends"
- "Update my contact form to published status"
- "Get the latest 10 submissions for form xyz"
- "Set up email notifications for my survey"
- "Add a webhook to my form that sends to my API"
- "Delete submissions older than 30 days"
- "Change my form password to 'newpassword123'"
- "Show me templates for lead generation forms"
🔧 Advanced Configuration
Enhanced Form Building Capabilities
The server now includes comprehensive form building support:
- Block Type Reference: Complete documentation of all 20+ Tally block types including input fields, layout elements, and logic blocks
- Form Templates: Pre-built templates for contact forms, surveys, registration forms, and more
- Professional Structures: Ready-to-use form layouts following best practices
- Advanced Conditional Logic: Enterprise-grade conditional logic with validation and error prevention
- Critical Error Prevention: Automatic detection of logic errors that would break surveys
- Dynamic Question Management: Handle complex questions with conditional option sets
Critical Conditional Logic Features
- Multiple Choice Validation: Prevents the critical "equals" vs "contains" error that breaks multiple choice conditional logic
- Dynamic Question Sets: Create sophisticated questions like Q5/Q6 in complex surveys that show different options based on previous answers
- Logic Flow Analysis: Comprehensive validation to catch unreachable blocks, circular logic, and missing references
- Enterprise Patterns: Templates for progressive disclosure, branching surveys, qualification flows, and more
Block Types Available
- Input Blocks: Text, email, phone, date, multiple choice, checkboxes, dropdown, rating, ranking, file upload, signature, payment
- Layout Blocks: Statement text, question groups, dividers, images, videos, embeds
- Logic Blocks: Conditional jumps, calculators, hidden fields
Custom Form Updates
The update_tally_form
tool supports comprehensive form editing including:
- Basic Properties: name, status
- Form Structure: complete blocks/questions array with detailed validation
- Advanced Settings: 20+ options including notifications, styling, behavior
- Security: password protection, submission limits
- Integrations: redirects, custom CSS, data retention
Environment Variables
# Required
TALLY_API_KEY=tally_your_api_key_here
# Optional (for development)
NODE_ENV=development
DEBUG=true
Alternative Configuration Methods
You can also set the API key directly in the Claude Desktop config:
{
"mcpServers": {
"tally": {
"command": "node",
"args": ["/path/to/your/tally-mcp-server/start-server.js"],
"env": {
"TALLY_API_KEY": "tally_your_actual_api_key_here"
}
}
}
}
🐛 Troubleshooting
Common Issues
-
"Command not found" error
- Verify Node.js installation:
node --version
- Check the absolute path in your Claude config
- Ensure the
start-server.js
file exists and is executable
- Verify Node.js installation:
-
"Authentication failed" error
- Double-check your API key in
.env
or Claude config - Ensure API key starts with
tally_
- Verify your Tally account has API access
- Double-check your API key in
-
Tools not appearing in Claude
- Restart Claude Desktop completely (quit and reopen)
- Check JSON syntax in config file (use a JSON validator)
- Verify file paths are absolute, not relative
- Check Claude Desktop logs for errors
-
"Module not found" errors
- Run
npm install
in the project directory - Ensure
npm run build
completed successfully - Check that the
build/
directory exists
- Run
Testing Locally
# Test the server starts without errors
npm start
# Or use the start script directly
node start-server.js
# Test with a simple API call (requires API key in .env)
curl -H "Authorization: Bearer $TALLY_API_KEY" https://api.tally.so/forms
Debug Mode
Enable debug logging by setting environment variables:
DEBUG=true NODE_ENV=development node start-server.js
Getting Help
If you're still having issues:
- Check the GitHub Issues
- Create a new issue with:
- Your operating system
- Node.js version (
node --version
) - Error messages
- Your configuration (without API keys)
📚 API Reference
This MCP server implements the full Tally API including:
- Forms API - Complete CRUD operations
- Submissions API - Retrieve and manage form responses
- Questions API - Access form structure
- Webhooks API - Real-time integrations
Supported Tally API Endpoints
GET /forms
- List formsPOST /forms
- Create formGET /forms/{id}
- Get formPATCH /forms/{id}
- Update formDELETE /forms/{id}
- Delete formGET /forms/{id}/submissions
- List submissionsGET /forms/{id}/submissions/{id}
- Get submissionDELETE /forms/{id}/submissions/{id}
- Delete submissionGET /forms/{id}/questions
- List questionsGET /forms/{id}/webhooks
- List webhooksPOST /forms/{id}/webhooks
- Create webhookPATCH /forms/{id}/webhooks/{id}
- Update webhookDELETE /forms/{id}/webhooks/{id}
- Delete webhook
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
# Clone and install
git clone https://github.com/cathrynlavery/tally-mcp-server.git
cd tally-mcp-server
npm install
# Set up environment
cp .env.example .env
# Add your API key to .env
# Development with auto-rebuild
npm run dev
# Build for production
npm run build
# Run tests (if available)
npm test
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- Tally - The amazing form builder that makes this possible
- Claude Desktop - AI assistant with MCP protocol support
- Anthropic - For the Model Context Protocol specification
Built with ❤️ by @cathrynlavery
Try Tally for free - unlimited forms and submissions!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.