Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

UX research platform: manage studies, browse templates, read responses and analytics.

README.md

FrancoLabs MCP Server

Connect AI assistants to FrancoLabs — a UX research platform — over the Model Context Protocol. Let Claude, ChatGPT and other MCP clients create and manage studies, browse templates, read participant responses and analytics, run AI-grounded analysis, and turn insights into product opportunities on your behalf.

  • Endpoint: https://francolabs.vercel.app/mcp
  • Transport: Streamable HTTP (MCP protocol 2025-06-18)
  • Auth: OAuth 2.1 (Dynamic Client Registration + PKCE) or Personal Access Token
  • Registry: io.github.glauberfrancodesign/francolabs

---

Connect

Claude (claude.ai / Desktop)

Settings → ConnectorsAdd custom connector → URL:

https://francolabs.vercel.app/mcp

Complete the OAuth consent screen — you choose exactly which scopes to grant and can toggle read-only access.

ChatGPT

Enable Developer Mode, then Settings → ConnectorsAdd → same URL. Authenticate via the OAuth flow.

Claude Code / Cursor (manual token)

Generate a Personal Access Token in Settings → Integrations, then:

claude mcp add --transport http francolabs \
  "https://francolabs.vercel.app/mcp" \
  --header "Authorization: Bearer <your-token>"

---

Tools

| Tool | Scope | Description | |------|-------|-------------| | list_question_types | templates:read | List question/block types and their settings | | list_templates | templates:read | List study templates, optionally by category | | list_workspaces | projects:read | List the workspaces (teams) you belong to and your role in each | | list_projects | projects:read | List your projects | | get_project | projects:read | Get a single project by id | | create_project | projects:write | Create a new project (optionally in a specific workspace) | | list_studies | studies:read | List studies (filter by status/project) | | get_study | studies:read | Get a full study with blocks and settings | | create_study | studies:write | Create a study (auto-scaffolds welcome + thank-you) | | update_study | studies:write | Update title, blocks, settings or project | | set_study_status | studies:write | Launch / pause / resume / complete a study | | delete_study | studies:write | Permanently delete a study and its responses | | list_responses | responses:read | List participant responses (most recent first) | | get_study_analytics | responses:read | Aggregated KPIs: NPS, completion, distributions | | get_study_digest | responses:read | Deterministic, PII-free statistical digest of a study's results | | run_universal_analysis | responses:read | Run/refresh the full AI analysis (digest + grounded synthesis) | | analysis_chat | responses:read | Ask a natural-language question, grounded in the study's analysis | | get_insights | responses:read | List curated insight cards for a study | | upsert_insight | studies:write | Create or update a curated insight card | | generate_study_from_objective | studies:read | Turn a research objective into a typed study skeleton | | review_study_quality | studies:read | Review a study's questionnaire for survey-design issues | | list_opportunities | responses:read | List product opportunities distilled from a study's insights | | create_opportunity_from_insights | studies:write | Distill insights into decision-ready product opportunities |

create_project and create_study write into a workspace — pass workspaceId (see list_workspaces), or omit it to use your oldest workspace by default.

Two resources are also exposed: francolabs://templates and francolabs://question-types.

Scopes

templates:read · projects:read · projects:write · studies:read · studies:write · responses:read

Tools you didn't grant are hidden from tools/list. A read-only grant blocks every write tool server-side, regardless of scopes.

Security

  • Tokens are stored only as SHA-256 hashes — never in plaintext.
  • Each request mints a short-lived (5 min) JWT so all data access runs under

per-user row-level security; the service role is used only for the token lookup.

  • Access is revocable anytime from Settings → Integrations.
  • OAuth follows RFC 9728 (protected-resource discovery), RFC 8414 (AS metadata),

RFC 7591 (dynamic client registration) and PKCE S256.

Source

This repository mirrors the server's source for transparency. The server runs as a Supabase Edge Function (src/mcp, src/mcp-oauth, src/_shared).

---

© FrancoLabs. All rights reserved.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Search servers.