Token导航 LogoToken导航

MCP Server · 数据服务

SQL Agent MCP Poc

一个AI驱动的SQL代理,能将自然语言问题转换为SQL查询并在Snowflake上执行,支持对话上下文记忆和MCP集成。

stdio官方级别未说明来源级核验工具 0
自然语言处理Python数据分析

快速开始

作者 / 组织
raul108
提供方
raul108
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

SQL Agent MCP Poc 属于数据服务类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python3 -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

LangGraph SQL代理-MCP POC

SQL代理的自然语言 Snowflake的模型上下文协议(MCP)集成。

______________________________________________________________________

🎯 这有什么作用

AI驱动的SQL代理:

  • 将自然语言问题转换为SQL查询
  • 在雪花上执行安全验证
  • 记住对话背景,以便后续跟进
  • 通过MCP公开用于VS代码集成的工具

数据来源: 雪花TPC-H样本数据集(SNOWFLAKE_SAMPLE_DATA.TPCH_SF1)

______________________________________________________________________

📅 最近的改进(2026年2月11日)

代码质量和架构

  • ✅ 模块化代理包 -有组织 src/agent/ 明确区分关注点:

- core.py -主代理编排 - nodes.py -6个工作流节点实现 - prompts.py -集中式LLM提示(易于更新) - graph_builder.py -LangGraph拓扑与编译

  • ✅ 修复了线程问题 -SQLite内存数据库,具有用于多线程执行的持久连接
  • ✅ 会话管理 -默认情况下为新会话,可选持久性

功能和可靠性

  • ✅ 历史感知查询 -检测摘要/参考问题并验证历史可用性
  • ✅ 智能错误处理 -在没有对话记录的情况下防止产生幻觉
  • ✅ 对话记忆 -内存(默认)和基于文件的持久性模式

______________________________________________________________________

✅ 已实现的功能

会话管理

  • ✅ 默认情况下为新会话 -重新启动时清除内存中的SQLite数据库
  • ✅ 可选持久性 -设置 PERSIST_MEMORY=true 在重启过程中保留历史记录
  • ✅ 线程安全内存 -具有持久连接的多线程LangGraph执行

核心代理(6节点工作流)

  1. 范围检测 -过滤掉非数据问题
  2. SQL生成 -自然语言→ 具有架构上下文的SQL
  3. 安全确认 -阻止DROP/DELETE/ALTER/UPDATE操作
  4. 查询执行 -雪花集成重试逻辑(最多3个)
  5. 结果格式 -大型数据集的智能截断
  6. 响应生成 -用户友好的自然语言答案

高性能

  • ✅ 对话记忆 -基于SQLite的历史跟踪
  • ✅ 后续问题 -过去5次互动的背景
  • ✅ 架构自动发现 -自动查询信息_SCHEMA
  • ✅ 摘要支持 -对话历史记录的答案
  • ✅ MCP集成 -将工具暴露给VS代码

______________________________________________________________________

📁 项目结构

LangGraph/
├── main.py                    # Interactive CLI interface
├── README.md                  # This file
├── .gitignore                 # Git ignore rules (root level)
│
├── setup/                     # Configuration & dependencies
│   ├── .env                   # Credentials (gitignored)
│   ├── requirements.txt       # Python dependencies
│   └── SETUP.md               # Setup guide
│
├── data/                      # Runtime data & artifacts
│   └── conversation_history.db # Conversation history (when PERSIST_MEMORY=true)
│
├── src/                       # Core agent modules
│   ├── agent/                 # Agent package (modularized)
│   │   ├── __init__.py        # Package exports
│   │   ├── core.py            # Main SQLAgent class
│   │   ├── nodes.py           # 6-node workflow implementations
│   │   ├── prompts.py         # All LLM prompts (centralized)
│   │   └── graph_builder.py   # LangGraph construction & topology
│   ├── config.py              # Environment-based configuration
│   ├── memory.py              # SQLite conversation storage
│   ├── tools.py               # Snowflake integration + auto schema discovery
│   └── validator.py           # SQL safety validator
│
├── mcp_impl/                  # MCP HTTP Server & Flask Web UI
│   ├── app.py                 # Flask web interface (port 8001)
│   ├── server_http.py         # HTTP MCP server (port 8000)
│   ├── server_manager.py      # MCP server lifecycle management
│   └── response_formatter.py  # Response formatting for display
│
├── docs/                      # Documentation
│   ├── PROJECT_STRUCTURE.md   # Detailed codebase organization
│   ├── test_queries.md        # Example queries to test the agent
│   └── COMPLETE_WORKFLOW.md   # Workflow verification details
│
└── scripts/
    └── run.sh                 # Application launcher

______________________________________________________________________

🚀 快速开始

1.设置环境

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate  # macOS/Linux

# Install dependencies
pip install -r setup/requirements.txt

2.配置凭据

创建 setup/.env 使用您的凭据文件:

# Snowflake
SNOWFLAKE_ACCOUNT=your_account.region
SNOWFLAKE_USER=your_username
SNOWFLAKE_PASSWORD=your_password
SNOWFLAKE_DATABASE=SNOWFLAKE_SAMPLE_DATA
SNOWFLAKE_SCHEMA=TPCH_SF1
SNOWFLAKE_WAREHOUSE=COMPUTE_WH
SNOWFLAKE_ROLE=ACCOUNTADMIN

# OpenAI
OPENAI_API_KEY=sk-...

# Optional: Persistent conversation history
PERSIST_MEMORY=false  # Set to true for file-based history

3.运行代理

Web UI和MCP服务器:

.venv/bin/python mcp_impl/app.py

应用程序将从以下时间开始:

  • Web用户界面: http://localhost:8001(聊天界面)
  • MCP服务器: http://localhost:8000(JSON-RPC 2.0)

______________________________________________________________________

💡 示例用法

交互模式

Enter your query: How many customers are there?

Generated SQL: SELECT COUNT(*) FROM CUSTOMER;
✓ Safety validation passed

There are 150,000 customers in the data.

后续问题

Enter your query: How many orders?

Generated SQL: SELECT COUNT(*) FROM ORDERS;
✓ Safety validation passed

There are 1,500,000 orders in the database.

Enter your query: Summarize the key numbers we discussed

Using conversation history to answer...

Based on our conversation:
- Total customers: 150,000
- Total orders: 1,500,000

安全特性

Enter your query: Delete all old orders

Generated SQL: DELETE FROM ORDERS WHERE...
🛑 Safety Check Failed:
❌ BLOCKED: Query contains dangerous operations: DELETE

⚠️ Only SELECT queries are allowed for safety.

______________________________________________________________________

🏗️ 建筑

6节点工作流

┌─────────────┐
│ User Query  │
└──────┬──────┘
       │
       ▼
┌─────────────────┐
│ Scope Detection │ ── Filter out-of-scope questions
└────────┬────────┘
         │
         ▼
┌──────────────────┐
│ SQL Generation   │ ── NL → SQL with schema context
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│ Safety Validator │ ── Block dangerous operations
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│ Execute Query    │ ── Snowflake execution (retry x3)
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│ Format Results   │ ── Intelligent truncation
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│ Generate Response│ ── Natural language answer
└──────────────────┘

数据流

  1. 输入: 自然语言问题
  2. 范围检查: 这与数据有关吗?
  3. 架构上下文: 加载表/列元数据
  4. SQL生成: 带有模式上下文的GPT-4
  5. 验证: 安全检查(只读执行)
  6. 执行: 使用重试逻辑查询Snowflake
  7. 内存: 存储在SQLite中以备后续跟进
  8. 答复: 自然格式化结果

______________________________________________________________________

📊 测试

快速测试套件

测试您的连接:

.venv/bin/python scripts/quick_test.py

尝试示例查询: 看 docs/test_queries.md 查看示例查询列表

______________________________________________________________________

🔧 配置

环境变量(.env)

敏感凭据-永远不要提交到git

会话管理

  • 默认模式:内存中的SQLite(重新启动时的新会话)
  • 持久模式:设置 PERSIST_MEMORY=true 用于基于文件的历史记录

架构发现

自动查询 INFORMATION_SCHEMA 首次使用时

______________________________________________________________________

📚 文档

有关更多详细信息,请参阅 文档 文件夹:

______________________________________________________________________

🎯 主要功能概述

功能状态描述
自然语言→ SQL✅GPT-4动力转换
安全验证✅块DROP/DELETE/ALTER
架构自动发现✅查询信息_SCHEMA
对话记忆✅基于SQLite的历史记录
后续问题✅过去5次互动的背景
重试逻辑✅最多3次错误尝试
新会议✅默认情况下为内存数据库
持久历史✅可选的基于文件的存储
范围检测✅过滤非数据问题

______________________________________________________________________

📝 许可证

MIT许可证-开源

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

自然语言处理Python本地部署SQL生成Snowflake集成对话式AI数据库查询

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
SQL Agent MCP Poc

MCP World · 本页

0stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

SQL Agent MCP Poc 怎么安装?

公开资料给出的安装命令是 python3 -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

SQL Agent MCP Poc 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

SQL Agent MCP Poc 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

SQL Agent MCP Poc 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

SQL Agent MCP Poc 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP