analytics-mcp
Click on "Deploy 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., "@analytics-mcp Show top 5 products by revenue this month"
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.
analytics-mcp
Production-grade MCP server for enterprise sales analytics. 6 tools, 3 resources, 2 prompts — all with structured outputs — over a SQLite database. Connects to Claude, OpenCode, Cursor, and any MCP client.
What This Is
A Model Context Protocol (MCP) server that exposes an enterprise sales database to LLM clients. Instead of copy-pasting data into ChatGPT, connect this server and let the AI query, analyze, and visualize your data through structured tools.
Built with the latest MCP patterns (July 2026):
FastMCP 3.4 — high-level server framework
Structured outputs — Pydantic models define
outputSchemafor every toolTool annotations —
readOnlyHintlets clients skip confirmationsIn-memory client testing — no port flakiness, era-neutral
Resources — schema introspection, table details, report templates
Prompts — reusable analysis templates (sales analysis, customer segmentation)
Both transports — stdio (local) + HTTP (remote)
Related MCP server: agente-ecommerce-mcp-memoria
Quick Start
git clone https://github.com/bhavya998/analytics-mcp.git
cd analytics-mcp
uv sync
# Initialize database (200 customers, 25 products, 2000 orders)
uv run analytics-mcp init
# Start server (stdio for local MCP clients)
uv run analytics-mcp serve
# Or HTTP transport for remote access
uv run analytics-mcp serve --transport http --port 8000Connect to Claude Desktop / OpenCode
Add to your MCP client config:
{
"mcpServers": {
"analytics": {
"command": "uv",
"args": ["run", "--directory", "/path/to/analytics-mcp", "analytics-mcp", "serve"]
}
}
}Then ask: "Show me the top 5 products by revenue and analyze the monthly sales trend"
Tools
Tool | Description | Annotations |
| Run parameterized SELECT queries against the database |
|
| Revenue by category/region/tier/status/month with profit analysis |
|
| 360-degree customer view: orders, LTV, favorite category, recent activity |
|
| Leaderboard by revenue or quantity, optional category filter |
|
| Time-series with period-over-period growth rates |
|
| Ranked regional performance with revenue, orders, customers, AOV |
|
Resources
URI | Description |
| Full database schema (all tables, columns, types, row counts) |
| Detailed table schema with sample rows |
| Available report templates and usage examples |
Prompts
Prompt | Description |
| Comprehensive sales analysis with focus area (overall/category/region/customer) |
| Segment customers into Champions/At Risk/New/Dormant with retention strategies |
Database Schema
customers (200 rows)
id, name, email, company, region, tier, signup_date, lifetime_value
products (25 rows)
id, name, category, price, cost, stock
orders (2000 rows)
id, customer_id, employee_id, order_date, status, total
order_items (5000+ rows)
id, order_id, product_id, quantity, unit_price
employees (15 rows)
id, name, role, region, hire_dateTesting
make test # 43 tests: database, tools, full MCP client integration
make lint # ruffSuite | Tests | Pattern |
| 8 | DB init, query validation, schema introspection |
| 17 | Direct tool function calls (all 6 tools) |
| 12 | Full MCP protocol via in-memory Client |
Tests use the modern in-memory Client(mcp) pattern — no ports, no subprocesses, era-neutral.
Tech Stack
Layer | Technology |
MCP Framework | FastMCP 3.4 (Prefect) |
Protocol | MCP 1.28 (Streamable HTTP + stdio) |
Database | SQLite with seeded enterprise data |
Validation | Pydantic v2 (structured tool outputs) |
CLI | Typer + Rich |
Testing | pytest + pytest-asyncio + FastMCP Client |
Project Structure
analytics-mcp/
├── src/analytics_mcp/
│ ├── server.py MCP server: 6 tools, 3 resources, 2 prompts
│ ├── database.py SQLite setup + schema + seed data (2000+ orders)
│ ├── schemas.py Pydantic models for structured outputs
│ └── cli.py CLI (serve, init, inspect)
├── tests/ 43 tests (database, tools, client integration)
├── data/ SQLite database (auto-generated, gitignored)
├── Makefile
└── pyproject.tomlLicense
MIT
Available Tools
6 toolsanalyze_sales_trendARead-only
Analyze sales trends over time with period-over-period growth rates.
Returns revenue, order count, and growth percentage for each period.
Inputs: period_end, granularity, period_start. Returns: Sales trend over time.
get_customer_profileARead-only
Get a 360-degree customer view: profile, order history, spending stats, favorite category.
Useful for account reviews, churn analysis, and upsell identification.
Inputs: customer_id (required). Returns: 360-degree customer view.
get_regional_performanceARead-only
Get ranked sales performance by region: revenue, orders, customers, AOV.
Returns all 5 regions ranked by total revenue.
Inputs: no named parameters. Returns: Ranked regional performance report.
get_revenue_reportARead-only
Generate a revenue report grouped by a dimension within a date range.
Returns total revenue, order count, average order value, and estimated profit per segment.
Inputs: group_by, period_end, period_start. Returns: Full revenue report across a dimension.
get_top_productsARead-only
Get a leaderboard of top-performing products by revenue or quantity sold.
Optionally filter by category.
Inputs: limit, metric, category. Returns: Top products leaderboard.
query_databaseARead-only
Run a read-only SQL query against the enterprise database.
Tables: customers, products, orders, order_items, employees.
Examples: SELECT * FROM customers WHERE tier = 'enterprise' LIMIT 10 SELECT region, COUNT(*) as customers FROM customers GROUP BY region SELECT p.name, SUM(oi.quantity) as sold FROM order_items oi JOIN products p ON oi.product_id = p.id GROUP BY p.name ORDER BY sold DESC LIMIT 5
Inputs: sql (required). Returns: Result of a SQL query.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Tools are mostly distinct: each targets a specific analytics aspect (trends, customer profile, regional, revenue report, top products, raw SQL). Some overlap in subject matter but purposes and outputs are clearly differentiated.
Most tools use 'get_' prefix, but 'analyze_sales_trend' and 'query_database' break the pattern. The naming is readable but inconsistent across verbs.
6 tools is well-scoped for an analytics server, covering common analytical functions without being excessive. Each tool earns its place.
Covers key analytics areas: trends, customers, regions, revenue, products. The query_database tool compensates for most gaps. Minor omission like employee analytics is noted but not critical.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Text-to-SQL MCP server: read-only queries on PostgreSQL, MySQL and SQL Server with your real schema
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes tools to query an e-commerce database (customers, sales, products) using natural language, orchestrated by a LangChain agent with Groq's LLM.MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes a LangChain agent with short-term memory to analyze real e-commerce data through predefined SQL tools, enabling natural language queries on sales, customers, and logistics.-
- FlicenseNot gradedqualityDmaintenanceMCP server that routes natural language queries to backend analytics tools (Sales, Finance, Customer, Service) using Google Gemini's function calling.-
- AlicenseAqualityDmaintenanceAn MCP server that demonstrates the Model Context Protocol using a mock SQLite database of an online store, offering tools for product search, sales analysis, and reviews, along with resources and prompts for learning MCP integration.8MIT