Run AI-moderated interviews, conversational surveys and qualitative analysis on QualiTaTi from Claude Code, Codex, OpenCode, Cursor, Claude Desktop or any MCP client.
One hosted MCP server does the work; this repo packages it as an installable plugin for the tools that have plugin systems and documents the one-line config for the rest. The plugin adds three skills that teach the agent QualiTaTi's workflows (setting up an interview study, building a survey, reading results) and two slash commands.
- A QualiTaTi account — free tier is fine.
- A personal API key: qualitati.com → Profile → API keys (keys start with
qt_). The key inherits your plan, quotas and billing; revoke it there any time. - Put it in your shell:
export QUALITATI_API_KEY=qt_…
Clients that implement MCP authorization (OAuth 2.1 with dynamic client registration) can skip the key entirely: point them at the server URL and a QualiTaTi consent page opens in your browser. Claude Code: claude mcp add --transport http qualitati https://starfish-app-73rfk.ondigitalocean.app/mcp, then /mcp → Authenticate.
/plugin marketplace add lanceyuu/qualitati-agent-plugins
/plugin install qualitati@qualitati-agent-plugins
You get the qualitati MCP server (reads QUALITATI_API_KEY), the skills, and /qualitati:new-study and /qualitati:results. Without the plugin, the server alone:
claude mcp add --transport http qualitati https://starfish-app-73rfk.ondigitalocean.app/mcp \
--header "Authorization: Bearer $QUALITATI_API_KEY"
codex plugin marketplace add lanceyuu/qualitati-agent-plugins
codex plugin add qualitati@qualitati-agent-plugins
Or configure the server directly in ~/.codex/config.toml:
[mcp_servers.qualitati]
url = "https://starfish-app-73rfk.ondigitalocean.app/mcp"
bearer_token_env_var = "QUALITATI_API_KEY"{
"mcp": {
"qualitati": {
"type": "remote",
"url": "https://starfish-app-73rfk.ondigitalocean.app/mcp",
"enabled": true,
"headers": { "Authorization": "Bearer {env:QUALITATI_API_KEY}" }
}
}
}.cursor/mcp.json (or use the Add to Cursor button on https://qualitati.com/developers):
{
"mcpServers": {
"qualitati": {
"url": "https://starfish-app-73rfk.ondigitalocean.app/mcp",
"headers": { "Authorization": "Bearer qt_your_key_here" }
}
}
}Custom connectors cannot send a fixed header yet, so bridge with mcp-remote in claude_desktop_config.json:
{
"mcpServers": {
"qualitati": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://starfish-app-73rfk.ondigitalocean.app/mcp",
"--header", "Authorization: Bearer qt_your_key_here"]
}
}
}Listed as io.github.lanceyuu/qualitati on the official MCP Registry (server.json in this repo), so registry-aware clients and directories find it without any of the above.
| Tool | What it does |
|---|---|
project_list, project_get, project_create, project_share |
find or set up an interview study and get the participant link |
project_interviews, interview_get, interview_import |
see completion status, read full transcripts, import external transcripts |
analysis_run, analysis_results, analysis_summary, analysis_digest |
run and read quality + coding analysis, digests, counts |
survey_create, survey_add_question, survey_publish |
build a conversational survey and publish it |
A human participant still conducts the interview via the share link; the agent sets studies up and reads the results.
One plugin, two package layouts, shared skills:
.claude-plugin/marketplace.json Claude Code marketplace (this repo)
.agents/plugins/marketplace.json Codex marketplace (this repo)
plugins/qualitati/
.claude-plugin/plugin.json .mcp.json Claude Code
plugin.json mcp.json Codex / Agent Plugins
skills/ commands/ assets/ shared
server.json MCP Registry entry
MIT. QualiTaTi is a product of QualiTaTi (contact@qualitati.com).