jhurl3y/surveymonkey-chatgpt
If you are the rightful owner of surveymonkey-chatgpt and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The SurveyMonkey ChatGPT App allows users to create and manage surveys directly from ChatGPT using the Model Context Protocol (MCP) server.
SurveyMonkey ChatGPT App
Create and manage SurveyMonkey surveys directly from ChatGPT!
✨ Features
- 📋 List Surveys - View all your surveys in a beautiful interactive widget
- ✨ Create Surveys - Build surveys with custom questions through natural conversation
- 👀 Survey Preview - Preview your surveys with an embedded iframe
- 🔗 Quick Links - Direct access to edit, preview, collect, and analyze
🚀 Quick Start
1. Get Your SurveyMonkey Access Token
- Go to https://developer.surveymonkey.com/apps/
- Create a new "Private App"
- Go to Settings tab → Copy the Access Token
2. Configure & Run
# Setup
cd surveymonkey_server_python
cp .env.example .env
# Edit .env and add your SURVEYMONKEY_ACCESS_TOKEN
# Install
pip install -r requirements.txt
cd .. && pnpm install && pnpm run build
# Run (2 terminals)
pnpm run serve # Terminal 1: Asset server (port 4444)
python surveymonkey_server_python/main.py # Terminal 2: MCP server (port 8000)
3. Connect to ChatGPT
Point your ChatGPT app to http://localhost:8000 (or your ngrok URL)
📱 Interactive Widgets
The app includes beautiful interactive UI widgets that enhance the ChatGPT experience:
Survey List Widget (list_surveys)
- Interactive grid displaying all your surveys
- Quick action buttons for Edit, Preview, Analyze, and Collect
- Shows question count, response count, and creation date
- Auto-rendered when listing surveys
Survey Preview Widget (get_survey_details, get_survey_links, create_survey)
- Embedded iframe preview of your survey
- Expandable preview (400px → 600px)
- Direct links to Edit, Analyze, and Collect responses
- Shows survey questions and structure
- Auto-rendered after creating surveys or viewing details
🛠️ Available Tools
list_surveys()- Show all surveyscreate_survey(title, questions)- Create new surveyget_survey_details(survey_id)- Get survey infoget_survey_links(survey_id)- Get all URLs
📝 Example Usage
"Show me my surveys"
→ Returns interactive widget with all surveys
"Create a customer satisfaction survey with rating and comment questions"
→ Creates survey and shows preview widget with iframe
"Get details for survey 123456"
→ Shows survey preview with questions and links
"Show me links for my latest survey"
→ Displays preview widget with all action links
🏗️ Architecture
Backend (Python)
- FastMCP server using Model Context Protocol
- Communicates with SurveyMonkey API v3
- Returns structured content with widget metadata
- Runs on port 8000
Frontend (React)
- Vite-built React components with Tailwind CSS
- Widget HTML files with content hashing
- Served by asset server on port 4444
- Receives data via
window.openai.toolOutput
Widget Integration
- Tools return
types.TextContentwith_metafield _metacontainsopenai/outputTemplatepointing to widget HTML- ChatGPT renders the widget and injects tool output data
- Widgets use
window.openai.openExternal()for links
Built with MCP, FastMCP, React, Tailwind CSS, and SurveyMonkey API ✨