Skip to content
archived Visibility internal Owner erik@uvilo.com Approver _ Created _ Updated _

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:

https://backend.composio.dev/v3/mcp/<SESSION_ID>?user_id=erik

Available tools (22+ via Composio Platform):

ToolDescription
Create SurveyCreate a new survey by title
Delete SurveyPermanently delete a survey by ID
Get SurveysList all surveys with pagination
Get Survey DetailsMetadata and counts for a specific survey
Get Survey ResponsesList responses for a specific survey
Get Survey CollectorsList collector URLs, counts, and statuses
Get ContactsList all contacts in the account
Get GroupsList 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.dev reads: “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_KEY already 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

VariableValueStatus
COMPOSIO_API_KEY<your key>✅ Added
COMPOSIO_SM_MCP_URLhttps://backend.composio.dev/v3/mcp/<SESSION_ID>?user_id=erik⏳ Pending — run setup script

LibreChat Config (librechat.yaml)

surveymonkey:
  title: "SurveyMonkey"
  description: "SurveyMonkey survey management — create, manage, and analyze surveys and responses"
  command: npx
  args:
    - -y
    - mcp-remote@latest
    - "${COMPOSIO_SM_MCP_URL}"
    - --header
    - "x-api-key:${COMPOSIO_API_KEY}"
  timeout: 30000
  serverInstructions: |
    SurveyMonkey integration via Composio Platform MCP (Sessions API).
    Capabilities: create surveys, list surveys, get survey details, retrieve responses,
    list collectors (URLs/counts/statuses), manage contacts and groups, delete surveys.
    IMPORTANT: Requires SurveyMonkey account connected in Composio Platform dashboard first.
    Visit https://platform.composio.dev to connect your SurveyMonkey account.

Setup Script

A one-time setup script generates the stable MCP URL:

Script: Assistant/Output/composio_sm_setup.py

# Run via railway ssh:
COMPOSIO_API_KEY=<your-key> /usr/bin/python3 \
  /workspace/erik/uvilo-os/Assistant/Output/composio_sm_setup.py

The script uses the Composio Sessions API:

from composio import Composio
composio = Composio(api_key=COMPOSIO_API_KEY)
session = composio.create(user_id="erik", toolkits=["survey_monkey"])
print(session.mcp.url)
# → https://backend.composio.dev/v3/mcp/<SESSION_ID>?user_id=erik

Connection Setup (User Actions Required)

Step 1: Connect SurveyMonkey in Composio Platform

  1. Go to https://platform.composio.dev
  2. Sign in with your Composio account (linked to COMPOSIO_API_KEY)
  3. Navigate to Toolkits / Connections → Add SurveyMonkey
  4. Complete the OAuth flow to connect your SurveyMonkey account

Step 2: Generate the MCP URL

# Via railway ssh into the LibreChat container:
COMPOSIO_API_KEY=<your-key> /usr/bin/python3 \
  /workspace/erik/uvilo-os/Assistant/Output/composio_sm_setup.py

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

railway redeploy --service 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

StepStatus
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