Sales Analytics MCP Server

Sales Analytics MCP Server

Provides Claude Desktop and other MCP-compatible clients with read-only access to a PostgreSQL sales database, enabling SQL queries, schema inspection, and anomaly detection.

Category
访问服务器

README

Sales Analytics MCP Server

A custom Model Context Protocol (MCP) server that gives Claude Desktop direct, safe access to a live sales database — turning a Python analytics backend into a reusable tool any MCP-compatible AI assistant can use, without writing a single integration per application.

What is MCP, and why build a server for it

Model Context Protocol is an open standard (created by Anthropic) that lets AI assistants connect to external tools and data sources through a common interface, instead of every assistant needing a custom-built integration for every tool. Writing an MCP server means building the connection once, per data source — and any MCP-compatible client (Claude Desktop, Claude Code, or other MCP-aware applications) can use it immediately, with no per-application rework.

This project exposes a real PostgreSQL sales database (the same one used in ai-analytics-agent) as a set of MCP tools, so Claude can query it, inspect its schema, and run anomaly detection — directly inside a normal conversation.

Architecture

graph LR
    A[Claude Desktop] -->|MCP protocol| B[Sales Analytics<br/>MCP Server]
    B --> C[get_database_schema]
    B --> D[run_sql_query]
    B --> E[find_sales_anomalies]
    C --> F[(Supabase / PostgreSQL)]
    D --> F
    E --> F

Tools exposed

Tool Description
get_database_schema Returns available tables and columns, so Claude knows what data exists before querying
run_sql_query Executes a read-only SQL query and returns results. Blocks any query that isn't SELECT/WITH, and rejects destructive keywords even if they appear mid-query
find_sales_anomalies Runs a robust median/MAD-based anomaly detection pass over daily sales history and returns flagged dates with their statistical deviation

Tech Stack

Layer Tool
Protocol Model Context Protocol (MCP) Python SDK
Client Claude Desktop
Database PostgreSQL (Supabase)
Query layer SQLAlchemy
Anomaly detection Pandas (median + MAD, rolling window)
Secrets python-dotenv

Engineering notes

  • Caught a breaking SDK change mid-development: the MCP Python SDK shipped a major version (2.0.0) that renamed FastMCP to MCPServer and moved its import path, right as this project was being built. The server was updated to the new API rather than pinning an older version, so the code reflects the current SDK surface.
  • Claude chooses its own tool strategy: when asked to find anomalies before find_sales_anomalies existed, Claude independently used run_sql_query to investigate — checking for duplicate rows, negative amounts, and per-category breakdowns on its own initiative, arriving at the same root cause the dedicated tool later confirmed. This is a useful illustration of how an LLM client actually chooses between a general-purpose tool and a specialized one, rather than always preferring the "obvious" dedicated function.
  • Same safety model as the Text-to-SQL agent: run_sql_query reuses the same read-only guardrail approach as the Python-based Text-to-SQL project — a good example of why building that safety logic once, carefully, pays off when it's reused in a second, independent tool.

Setup

  1. Install dependencies: pip install -r requirements.txt

  2. Create a .env file with: DATABASE_URL=your_postgresql_connection_string

  3. Add the server to Claude Desktop's config file (claude_desktop_config.json):

   {
     "mcpServers": {
       "sales-analytics": {
         "command": "python",
         "args": ["/full/path/to/server.py"]
       }
     }
   }
  1. Fully restart Claude Desktop (quit via Task Manager / Activity Monitor, not just closing the window)

  2. Start a new chat and ask Claude something like:

    "What tables are available, and are there any sales anomalies I should know about?"

Example interaction

Claude Desktop using the MCP server

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选