SQL分析服务

MCP SQL Analytics是一个允许通过自然语言查询数据库的服务,支持SQLite数据库的SELECT查询、表结构查看和表列表获取。

  • by code-A-A
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 code-A-A/mcp-analytics

使用说明

MCP SQL分析

MCP是一个SQL分析服务器,允许Claude Desktop以自然语言执行对数据库的查询。

建筑

Claude Desktop <--MCP Protocol--> MCP Server (Python) <--SQL--> SQLite

快速启动

1.建立依赖关系

cd /Users/User/Documents/Projects/interview_prep/mcp-analytics
pip install -r requirements.txt

2.生成演示数据

python -m scripts.seed_data

这将创建一个数据库 data/analytics.db C:

  • 4类15种产品
  • 15客户
  • 过去30天销售1000件

3.安装Claude Desktop

打开Claude Desktop配置:

# macOS
open ~/Library/Application\ Support/Claude/claude_desktop_config.json

添加MCP服务器:

{
  "mcpServers": {
    "sql-analytics": {
      "command": "/Users/User/miniconda3/bin/python",
      "args": ["-m", "src.server"],
      "cwd": "/Users/User/Documents/Projects/interview_prep/mcp-analytics"
    }
  }
}

4.重新启动Claude Desktop

关闭并重新打开Claude Desktop。接口应该显示连接的MCP服务器的指示器。

可用工具

工具描述 |------------|----------| | execute_query 执行SQL Select查询。 | get_schema 显示了表的结构。 | list_tables 列出所有表

数据库电路

产品

首页>类型>描述 |---------|-----|----------| –id–integer是主键。 ≫name≫text≫商品名称≫ category→text→category→ 价格是真实的。

客户

首页>类型>描述 |---------|-----|----------| –id–integer是主键。 ≫name≫text≫客户端名称≫ |电子邮件|文本|电子邮件|

销售

首页>类型>描述 |---------|-----|----------| –id–integer是主键。 |product_id | INTEGER | FK→ 产品| |customer_id | INTEGER | FK→ 客户| quantity→integer→数量→ #21518;实销售金额。 Ðsaleu dateÐÐÐÐÐÐÐÐÐÐ

Claude查询示例

设置后,您可以在Claude中写入:

  • “给我昨天的销售数据。”
  • “过去一周的五大产品”
  • “电子产品有多少销量?”
  • “显示销售表的结构”
  • “数据库里有什么表?”
  • “过去7天的平均支票”

手动测试服务器

检查没有Claude Desktop的服务器:

# Запуск сервера (он ждёт ввода через stdin)
python -m src.server

安全

  • 只允许 SELECT-请求
  • 禁止: DROP, DELETE, INSERT, UPDATE, ALTER, CREATE, TRUNCATE

项目结构

mcp-analytics/
├── src/
│   ├── __init__.py
│   ├── server.py      # MCP сервер
│   └── database.py    # Работа с SQLite
├── scripts/
│   └── seed_data.py   # Генерация демо-данных
├── data/
│   └── analytics.db   # SQLite база (создаётся автоматически)
├── requirements.txt
├── pyproject.toml
└── README.md

要求

  • Python 3.10+
  • mcp>=1.0.0