Userology MCP Server
Official# Userology MCP Server
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that exposes the **Userology UX research platform** as tools and resources for any MCP-compatible AI client — Claude Desktop, Cursor, Windsurf, and more.
## What It Does
This server wraps the Userology researcher-service REST API, giving AI assistants the ability to:
- **Create & manage studies** — Draft, launch, copy, and configure UX research studies
- **Build interview guides** — AI-generate, edit, and rephrase interview guides
- **Manage sections/tasks** — Add prototype testing, concept testing, voice interview, and live product research sections
- **Access analytics** — Get qualitative insights, quantitative metrics, Q&A analysis, and full study reports
- **Use Synthesis Studio** — Have AI-powered conversations to explore research findings
- **View session data** — Access participant lists, session transcripts, and recordings
- **Analyze Figma prototypes** — Extract screen context from Figma files
## Quick Start
### 1. Install
```bash
cd userology-mcp-server
pip install -e .
```
### 2. Configure
Copy `.env.example` to `.env` and fill in your credentials:
```bash
cp .env.example .env
```
Required variables:
| Variable | Description |
|----------|-------------|
| `USEROLOGY_API_BASE_URL` | Researcher-service API URL (default: `https://dev.userology.info/researcher/api`) |
| `USEROLOGY_TENANT_ID` | Your organization's tenant ID |
| `USEROLOGY_ID_TOKEN` | Firebase JWT token (interactive mode) |
### 3. Add to Claude Desktop
Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"userology": {
"command": "userology-mcp",
"env": {
"USEROLOGY_TENANT_ID": "your-tenant-id",
"USEROLOGY_ID_TOKEN": "your-token"
}
}
}
}
```
### 4. Test with MCP Inspector
```bash
npx @modelcontextprotocol/inspector userology-mcp
```
## Available Tools (45 total)
### Study Management (9 tools)
`create_study` · `create_study_from_description` · `get_study` · `list_studies` · `update_study_name` · `update_study_details` · `update_study_status` · `copy_study` · `delete_study`
### Section/Task Management (7 tools)
`create_section` · `get_sections` · `get_section` · `update_section` · `delete_section` · `copy_section` · `reorder_section`
### Interview Guides (4 tools)
`get_interview_guides` · `update_interview_guide` · `generate_guide` · `rephrase_guide`
### Analytics & Reports (11 tools)
`get_analytics_status` · `generate_analytics` · `get_qualitative_insights` · `get_quantitative_data` · `get_qna_analysis` · `get_study_summary` · `get_study_insights` · `get_study_report` · `generate_study_report` · `get_session_report` · `get_ui_annotations`
### Synthesis Studio (6 tools)
`create_synthesis_chat` · `list_synthesis_chats` · `get_synthesis_chat` · `send_synthesis_message` · `delete_synthesis_chat` · `share_synthesis_chat`
### Session & Participant Data (7 tools)
`get_participants` · `get_session` · `get_session_recordings` · `get_sessions_report` · `get_participant_sessions_report` · `get_study_tags` · `update_study_tags`
### Figma Integration (1 tool)
`get_figma_context`
## Resources
| URI | Description |
|-----|-------------|
| `userology://studies` | List all studies |
| `userology://study/{id}` | Study details |
| `userology://study/{id}/guides` | Interview guides |
| `userology://study/{id}/analytics` | Analytics status |
## Architecture
```
MCP Client (Claude / Cursor / etc.)
│ MCP Protocol (stdio)
▼
userology-mcp-server
│ HTTPS
▼
researcher-service (existing Userology backend)
```
## License
MIT
TDQS
Scored across 42 tools
Most tools have clearly distinct purposes, with descriptions carefully differentiating between similar get_* analytics tools (e.g., get_analytics_summary vs get_study_insights vs get_sessions_report). The get_study vs get_study_summary pair is explicitly disambiguated, and report tools are scoped by participant/session/study. Only minor overlap exists among the various analytics read tools, but the guidance is strong.
The server follows a consistent get_*/create_*/update_*/delete_*/generate_* pattern, making most tool names predictable. Minor inconsistencies exist: list_studies vs get_sections/get_participants, and copy_study uses a verb not aligned with the standard create/update/delete set. Overall, the naming is coherent and readable.
With 42 tools, this server exceeds the 'too many' threshold of 25+ for the apparent scope. While the domain (UX research) is broad, many specialized analytics read tools (e.g., get_qualitative_insights, get_quantitative_data, get_qna_analysis) could potentially be consolidated. The high count will likely overwhelm agents and increase selection difficulty.
The tool set is very comprehensive: full study CRUD, sections with guide generation/editing, participant and session retrieval, analytics generation and multiple read views, report generation, synthesis chat, tags, and Figma integration. Minor gaps exist (e.g., no section reordering, no participant CRUD), but core workflows have no dead ends and dependencies are clearly documented.