FrancoLabs

io.github.glauberfrancodesignPublished by GitHub account glauberfrancodesignv1.0.0Updated Oct 26, 2026

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

Overview

AI-generated overview

Remote MCP server for FrancoLabs, a UX research platform, letting an assistant create and manage studies, read responses and analytics, and turn insights into…

What you can do
  • Browse question types, study templates, workspaces, projects and plan usage
  • Create, update, launch, pause, complete or delete studies, and generate or review study designs with AI
  • Read participant responses, analytics KPIs, statistical digests and curated insight cards; run AI analysis and grounded chat
  • Create, tag and rate insights, and query past insights across studies
  • Distill opportunities, suggest follow-up research, generate decision packets and export opportunities to Linear
  • List and tag respondent contacts
When to use it
Useful when a team runs UX research in FrancoLabs and wants an assistant to draft and launch studies, summarize responses and analytics, or turn findings into opportunities and stakeholder decision documents without switching tools.
Requirements
Remote Streamable HTTP endpoint; no local install. Authentication is required: OAuth 2.1 with dynamic client registration and PKCE, or a Personal Access Token sent as an Authorization Bearer header. Write tools need an editor role (owner, admin or member) in the workspace; AI tools consume AI credits.
Before you install
Grant only the scopes you need: contacts:read and contacts:write expose respondent personal data (email, name, locale, consent, tags) and are opt-in; responses:read returns raw answers that may contain personal data unless redact is set. Write tools create, update, launch and permanently delete studies and their responses, and can create Linear issues. AI tools send a masked digest and curated insights to a language model and use credits.

Installation

In SourceWeft

  1. Open FrancoLabs in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.glauberfrancodesign%2Ffrancolabs/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "francolabs": {
      "type": "http",
      "url": "https://francolabs.vercel.app/mcp"
    }
  }
}

README

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 → Connectors → Add 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 → Connectors → Add → same URL. Authenticate via the OAuth flow.

Claude Code / Cursor (manual token)

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

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

Tools

A tool listed with two scopes needs both. AI marks tools that call a language model and use AI credits; the model only sees the deterministic digest and curated insights, with e-mail addresses and phone numbers masked first.

Templates, workspaces and projects

ToolScopeDescription
list_question_typestemplates:readQuestion/block types with the exact settings shape and a valid example
list_templatestemplates:readStudy templates, optionally by category
list_workspacesprojects:readWorkspaces (teams) you belong to and your role in each
list_projectsprojects:readYour projects, optionally by status
get_projectprojects:readA single project by id
get_planprojects:readThe workspace plan and current usage: limits, what is enforced now, grants and when extended access ends, and the per-person AI-create cap
create_projectprojects:writeCreate a project (optionally in a specific workspace)

Studies

ToolScopeDescription
list_studiesstudies:readStudies, filtered by status and/or project
get_studystudies:readA full study with blocks and settings
create_studystudies:writeCreate a Draft study; blocks are validated against list_question_types
update_studystudies:writeUpdate title, blocks, project; settings is a partial update
set_study_statusstudies:writeLaunch a Draft, pause, resume a Paused study, or complete it
delete_studystudies:writePermanently delete a study and its responses
generate_study_from_objectivestudies:readAI — turn a research objective into a typed study skeleton
review_study_qualitystudies:readAI — survey-design review with a quality score per block

Responses, analysis and insights

ToolScopeDescription
list_responsesresponses:readRaw participant responses, newest first — may contain personal data written by respondents; pass redact: true to mask e-mails and phones
get_study_analyticsresponses:readAggregated KPIs: responses, completion, duration, NPS, distributions
get_study_digestresponses:readDeterministic, PII-free statistical digest for every question type
run_universal_analysisresponses:read + studies:writeAI — run/refresh the full analysis (replaces non-pinned AI insights)
analysis_chatresponses:readAI — ask a question grounded in the digest and cached analysis
get_insightsresponses:readCurated insight cards, pinned first
upsert_insightresponses:read + studies:writeCreate or edit a curated insight card
rate_insightresponses:read + studies:writeRecord 👍/👎 feedback on an insight
suggest_tagsresponses:read + studies:writeAI — tag insights with a consistent product taxonomy
set_insight_tagsresponses:read + studies:writeReplace the tags of one insight
research_memory_queryresponses:read + studies:writeAI — cross-study question answered from past curated insights

Opportunities and decisions

ToolScopeDescription
list_opportunitiesresponses:readProduct opportunities distilled for a study
create_opportunity_from_insightsresponses:read + studies:writeAI — distill insights into draft opportunities
suggest_next_research_stepsresponses:readAI — 3–5 follow-up studies that de-risk open opportunities
generate_decision_packetresponses:read + studies:writeAI — stakeholder-ready decision package (Markdown)
list_decision_packetsresponses:readDecision packages already generated for a study
export_opportunityresponses:read + studies:writeExport an opportunity to Linear as an issue — internal users only
list_external_task_linksresponses:readLinear issues already created from a study's opportunities

Contacts (personal data)

ToolScopeDescription
list_contactscontacts:readRespondent contacts of the workspace — personal data (e-mail, name, locale/country, research consent, tags, response counts)
get_contactcontacts:readOne contact with the studies they answered — personal data
tag_contactscontacts:writeAdd/remove tags on contacts to segment respondents — never put sensitive information in tags

create_project and create_study write into a workspace — pass workspaceId (see list_workspaces), or omit it to use your oldest workspace by default. Write tools also require an editor role (owner, admin or member) in the study's workspace; viewers can only read.

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

Scopes

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

contacts:read and contacts:write give access to personal data of your respondents (e-mail, name, locale/country, research consent, tags and response history). They are opt-in: the consent screen and the Read-only token preset leave them unchecked; grant them only to assistants that need your contacts base. responses:read returns raw answers, which can also contain personal data typed by respondents.

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.
  • OAuth access and refresh tokens last 30 days; a connection never outlives 90 days. Access is revocable anytime from Settings → Integrations, and clients can revoke a token at the revocation endpoint (RFC 7009).
  • 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.

Source: README.md at commit 398f1b9

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.