dotplot-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dotplot-mcpAnalyze events.csv and find my aha moment"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Dot Plot MCP
See individual users, not aggregate charts.
English | 한국어

DAU/MAU charts trend "up and to the right" as long as new users arrive — even when nobody sticks. This MCP server implements YC's Dot Plot methodology (David Lieb): until you have hundreds of users, the most informative dashboard is one row per user, one cell per day.
Design principle: code computes the numbers, AI only interprets them. Statistics never come from an LLM, so they are never wrong.
What it does
1. Tracking audit compare events in your code vs events in your data → find broken/missing tracking
2. Dot plot every user's activity as dots — churn, weekend-only, core fans at a glance
3. Classification used-once / weekend-only / almost-daily, automatically
4. Aha moments scan every action for "what turns users into regulars"
5. Report hand-drawn style HTML + plain-language insights → share as a link
6. Benchmark (opt-in) compare your metrics with teams at your industry & stage30-second demo

Related MCP server: Mixpanel MCP Server
Quick start
Requirements: uv, and a 3-column CSV: user_id, date, event.
One command — no clone, no setup:
claude mcp add dotplot -- uvx --from git+https://github.com/brownglasses/dotplot-mcp dotplot-mcpNo data yet? Clone and try the sample:
uv run sample_data.py # generates events.csv (40 fake users)
uv run demo.py # watch the whole pipeline runThen ask Claude:
"Analyze events.csv and find my aha moment"
Exporting from your own DB is one query:
SELECT user_id, created_at::date AS date, 'purchase' AS event FROM orders;Tools
Tool | What it does |
| Understand the data shape (always call first) |
| Text dot plot (◎ signup day, ● active day, custom marks) |
| Automatic behavioral pattern classification |
| Scan all events for "regular-converting" actions (before/after behavior change) |
| Signup → first value → return → still active: where users leak |
| Weekly retention — the number investors always ask |
| Pull events straight from Postgres/Supabase (no CSV export step) |
| Compare events in code vs data (find tracking gaps) |
| Hand-drawn style HTML report + rule-based insights |
| Host the report at a random URL, get a share link (Vercel) |
| Submit aggregates to the anonymous benchmark (explicit consent required) |
| Compare your metrics with percentiles of similar teams |
Languages
Reports work in any language. English, 한국어, and 日本語 are built in;
for every other language the agent translates the report strings on the fly
(get_report_strings → translate → custom_strings), while the code validates
that number placeholders survive translation — so statistics stay exact.
Want your language built in? It's one dictionary in i18n.py. PRs welcome.
See the same report in English · 한국어 · 日本語.
Anonymous benchmark — what gets sent
Opt-in only. Nothing is ever sent without explicit consent.
If you consent, these five aggregates are sent — and this is everything:
{
"users_count": 40,
"churned_rate": 0.30,
"weekend_rate": 0.175,
"regular_rate": 0.275,
"aha_lift": 0.82
}Never sent: user IDs, event logs, dates, your service's name, IP-based identifiers.
The backend is INSERT-only (row-level security) — submitted data cannot be read back with the public key, and comparisons go through a function that returns percentile statistics only. Verify yourself: benchmark.py (~60 lines).
Architecture
analysis.py all computation — pure Python, knows nothing about MCP (the brain)
server.py thin shell exposing computations as MCP tools
report.py HTML report rendering + rule-based insight sentences
benchmark.py anonymous benchmark client
i18n.py every user-facing sentence, per language
harness.py run the whole pipeline end-to-end without an agent
sample_data.py sample data with planted patterns (for verifying the tool)
hosting/ Vercel project template for report hostingWhy it's built this way
LLMs don't compute — same data, same numbers, every time
Small samples withhold judgment — groups under 5 users are excluded from aha candidates
Correlation ≠ causation — every insight ships with a "verify with an experiment" warning
Vanity metrics blocked — pick
open_appas your value event and it tells you to pick again
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server for data analysis and visualization supporting CSV and Excel files. It enables users to generate statistical summaries and create multi-dimensional charts like heatmaps and bar plots through natural language.
- AlicenseBqualityDmaintenanceAn MCP server that provides access to the Mixpanel REST API, enabling AI agents to query events, funnels, retention data, and user profiles. It allows users to perform complex analytics tasks and export raw event data through natural language prompts.1644MIT
- AlicenseAqualityCmaintenanceFirst-party web analytics MCP server for AI agents, providing 42 tools to query traffic, events, funnels, conversions, sources, and performance data.4065MIT
Related MCP Connectors
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
Cloud MCP for project data, analytics, research, content planning, media generation, and growth.
Personal MCP server for humans who create. Proof of authorship, license control.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/brownglasses/dotplot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server