Uvilo OS SurveyMonkey MCP Research
Problem
The LibreChat assistant needs access to SurveyMonkey to create and manage surveys, retrieve responses, and interact with contacts and groups — supporting Uvilo’s user research and feedback workflows.
Candidates Evaluated
1. Composio Platform (platform.composio.dev) ✅ Selected
Composio is a managed MCP proxy that wraps third-party APIs with built-in authentication handling. The Sessions API generates a stable MCP URL per user+toolkit combination.
Auth: Composio API key passed as x-api-key header. SurveyMonkey OAuth handled by
Composio Platform.
URL format:
Available tools (22+ via Composio Platform):
| Tool | Description |
|---|---|
Create Survey | Create a new survey by title |
Delete Survey | Permanently delete a survey by ID |
Get Surveys | List all surveys with pagination |
Get Survey Details | Metadata and counts for a specific survey |
Get Survey Responses | List responses for a specific survey |
Get Survey Collectors | List collector URLs, counts, and statuses |
Get Contacts | List all contacts in the account |
Get Groups | List all groups in the account |
| + additional tools | … |
2. Composio Legacy (mcp.composio.dev) — Deprecated
Deprecated: mcp.composio.dev is being deprecated in favour of Composio Platform.
- Was used from 2026-03-17 (initial config) until migration on 2026-03-17.
- Old URL pattern:
https://mcp.composio.dev/survey_monkey/${COMPOSIO_API_KEY}/sse - The deprecation notice on
mcp.composio.devreads: “Please use Composio Platform or Rube instead.”
3. Zapier MCP
Actions: create contact, send survey invitation, find collector, find contact, find survey (~5 tools). Rejected: Limited toolset; 2 Zapier tasks consumed per MCP call.
4. CData MCP Server
Read-only on the free tier; requires paid JDBC license for CRUD. Rejected: Overkill setup; limited free tier.
5. Pipedream MCP
~8 tools, OAuth popup required. Rejected: Fewer tools than Composio; OAuth popup incompatible with server-to-server use.
6. Custom Python MCP Server
Build using FastMCP + SurveyMonkey REST API v3 (OAuth2 Bearer token). Deferred: Requires SurveyMonkey Enterprise plan to deploy an app beyond the 90-day trial period. Best option for long-term privacy and control — revisit when Enterprise is needed.
Decision
Use Composio Platform Sessions API (platform.composio.dev).
Rationale:
- Most tools (22+) with full CRUD — covers all current use cases
- Zero maintenance (no code to write or deploy)
- Auth handled by Composio Platform;
COMPOSIO_API_KEYalready in Railway env vars - Stable MCP URL generated once via setup script and stored as Railway env var
- Consistent with PostHog MCP pattern (
mcp-remote+ auth header) - Acceptable privacy trade-off (SurveyMonkey data is not PII-sensitive internal infra)
Final Configuration
Railway Environment Variables
| Variable | Value | Status |
|---|---|---|
COMPOSIO_API_KEY | <your key> | ✅ Added |
COMPOSIO_SM_MCP_URL | https://backend.composio.dev/v3/mcp/<SESSION_ID>?user_id=erik | ⏳ Pending — run setup script |
LibreChat Config (librechat.yaml)
Setup Script
A one-time setup script generates the stable MCP URL:
Script: Assistant/Output/composio_sm_setup.py
The script uses the Composio Sessions API:
Connection Setup (User Actions Required)
Step 1: Connect SurveyMonkey in Composio Platform
- Go to
https://platform.composio.dev - Sign in with your Composio account (linked to
COMPOSIO_API_KEY) - Navigate to Toolkits / Connections → Add SurveyMonkey
- Complete the OAuth flow to connect your SurveyMonkey account
Step 2: Generate the MCP URL
Copy the MCP URL from the output.
Step 3: Add Railway env var
In the Railway LibreChat service variables:
- Name:
COMPOSIO_SM_MCP_URL - Value:
<URL from step 2>
Step 4: Redeploy LibreChat
Step 5: Verify
In a new LibreChat conversation, use tool_search for “SurveyMonkey” to confirm tools loaded.
Platform API Reference
- Sessions API:
composio.create(user_id, toolkits)→session.mcp.url - Single Toolkit MCP:
composio.mcp.create(name, toolkits)+composio.mcp.generate(user_id, mcp_config_id)→instance['url'] - URL format:
https://backend.composio.dev/v3/mcp/<ID>?user_id=<uid> - Auth:
x-api-key: <COMPOSIO_API_KEY>header
Status
| Step | Status |
|---|---|
COMPOSIO_API_KEY added to Railway | ✅ Done |
librechat.yaml updated (Composio Platform) | ✅ Done |
| SurveyMonkey connected in Composio Platform | ⏳ Pending user action |
Setup script run → COMPOSIO_SM_MCP_URL env var added | ⏳ Pending user action |
| LibreChat redeployed | ⏳ Pending |
| Tools verified in LibreChat | ⏳ Pending |
References
- Composio Platform: https://platform.composio.dev
- Composio Platform docs: https://docs.composio.dev
- Single Toolkit MCP docs: https://docs.composio.dev/docs/single-toolkit-mcp
- Sessions / Configuring Sessions: https://docs.composio.dev/docs/configuring-sessions
- Migration from Experimental Tool Router: https://docs.composio.dev/docs/migration-guide/tool-router-beta
- SurveyMonkey REST API v3: https://developer.surveymonkey.com/api/v3/
- Legacy (deprecated): https://mcp.composio.dev/survey_monkey