爱意满满的作品展示区。
NemoAlex

让 Agent 访问内网数据库的 MCP 网关: SQLTunnel

  •  
  •   NemoAlex ·
    NemoAlex · 1 day ago · 640 views

    最近做了一个小工具 SQLTunnel,用于让 Codex 、Claude Code 、Hermes 、Dify 等 Agent 安全访问 MySQL 和 PostgreSQL 数据库。

    SQLTunnel 可以部署在本机或局域网内,通过直连或 SSH 隧道访问数据库,并向 Agent 提供 MCP 和 OpenAPI 接口,不需要将数据库地址和账号直接暴露给 Agent 。

    主要功能:

    • 目前支持 MySQL 和 PostgreSQL
    • 支持 SSH Tunnel ,完整支持 SSH config ,包括 Host alias 和 ProxyJump
    • 提供 Streamable HTTP MCP 和 OpenAPI 接口
    • 使用 API key 区分不同客户端
    • 可以按客户端和数据库配置 read / write 权限
    • 支持最大返回行数、查询超时和连接超时限制
    • 支持 Docker 镜像和本地构建部署

    一个常见的使用方式,是在本机或局域网内部署 SQLTunnel ,然后在 Agent 中直接通过自然语言完成数据查询和统计,例如:

    • 统计最近 30 天每天的新增用户数,并计算环比变化。

    • 按商品分类统计本月销售额、订单量和平均客单价,返回销售额最高的前 10 个分类。

    • 统计最近 7 天各订单状态的数量,并找出超过 24 小时仍未完成的订单。

    • 分析最近三个月的用户留存情况,按注册月份生成 Cohort 统计。

    也可以将 SQLTunnel 配置到 Codex 、Claude Code 等编程工具中,在源码项目目录里直接使用。

    这样 Agent 可以同时理解项目源码、业务逻辑、数据模型、数据库结构和实际数据。例如:

    先说一句:

    你可以通过 SQLTunnel 访问数据库
    

    当然也可以把这句话写入到 AGENTS.md 中去。

    然后:

    统计今天的订单数量。
    
    统计每个套餐的付费用户数、续费率和最近 30 天收入。
    
    做成 Excel 表格。
    

    这种方式可以将源码和数据库连接成一个可查询、可分析的上下文,让整个项目更接近一个能够通过自然语言使用的知识库。

    当然,如果你觉得自己的 Agent 足够靠谱,也可以使用可写数据库账号并授予 write 权限,让它协助执行数据修改、DDL 或 Migration 。例如:

    根据当前项目的数据模型生成 Migration ,为 orders 表增加 archived_at 字段。先检查现有表结构并展示 SQL ,确认后再执行。
    
    对比项目中的 Migration 与实际数据库结构,找出尚未执行的变更。
    
    执行本次 Migration ,完成后重新检查表结构,并验证字段和索引是否创建成功。
    

    项目地址:

    https://github.com/NemoAlex/SQLTunnel

    Docker 镜像:

    https://hub.docker.com/r/nemoalex/sqltunnel

    目前已经持续使用了一段时间了,欢迎大家提 Issue 。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3028 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:59 · PVG 11:59 · LAX 20:59 · JFK 23:59
    ♥ Do have faith in what you're doing.