Token导航 LogoToken导航TokenDH.com
Agent Database Reader logo
数据服务未说明官方级别未说明来源级核验

Agent Database Reader

MCP Server

一个通过MCP协议提供安全SQL查询的智能代理,可适配任何SQL Server数据库并支持自定义业务上下文。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
SQL查询数据安全PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Arnaud-Chafai

提供方

Arnaud-Chafai

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

SQL LLM Agent 🤖

Python

Microsoft SQL Server FastAPI Anthropic Claude

Un agente inteligente que permite consultas SQL seguras a través del protocolo MCP, adaptable a cualquier base de datos SQL Server con contexto de negocio personalizable.

🏗️ Arquitectura

Flujo de Datos:

  1. Cliente LLM envía consulta en lenguaje natural
  2. Servidor MCP recibe y procesa la solicitud
  3. Contexto de Negocio enriquece la comprensión
  4. Validador de Seguridad verifica la consulta SQL
  5. Procesador ejecuta consulta segura en la base de datos
  6. Respuesta estructurada regresa al cliente LLM

🚀 Características

  • Consultas seguras: Solo SELECT, validación automática de sintaxis
  • Protocolo MCP: Compatible con Claude
  • Contexto inteligente: Sistema de glosario personalizable para cualquier dominio
  • Multi-base de datos: Adaptable a cualquier esquema SQL Server
  • Docker ready: Despliegue sencillo y escalable

🛠️ Instalación Rápida

git clone https://github.com/Arnaud-Chafai/Agent-Database-Reader.git
cd Agent-Database-Reader
cp .env.example .env
# Configurar .env con tu base de datos
docker-compose up -d

⚙️ Configuración

Crear .env con tu configuración de base de datos:

DB_SERVER=TU_SERVIDOR\INSTANCIA_SQL
DB_DATABASE=tu_base_datos
DB_USERNAME=tu_usuario
DB_PASSWORD=tu_contraseña
DB_DRIVER=ODBC Driver 17 for SQL Server

El agente se adaptará automáticamente al esquema de tu base de datos.

🔧 Herramientas MCP

  1. ejecutar_consulta_sql - Ejecuta consultas SELECT con contexto automático
  2. obtener_esquema_bd - Analiza estructura de cualquier base de datos
  3. probar_conexion - Verifica conectividad
  4. obtener_info_tabla - Información detallada de tablas

📊 Ejemplos de Uso

Para cualquier base de datos:

-- Explorar esquema
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_CATALOG = 'tu_base_datos'

-- Análisis de datos
SELECT TOP 10 * FROM tu_tabla 
ORDER BY tu_columna_fecha DESC

-- Conteos y agregaciones
SELECT 
    columna_categoria,
    COUNT(*) as total,
    AVG(columna_numerica) as promedio
FROM tu_tabla
GROUP BY columna_categoria

Base de datos de ejemplo (Chinook):

-- Top productos por ventas
SELECT TOP 10 
    p.Name as Producto,
    COUNT(*) as Ventas
FROM Products p
JOIN OrderDetails od ON p.ProductId = od.ProductId
GROUP BY p.Name
ORDER BY Ventas DESC

🧠 Contexto Personalizable

Edita context/glosario.json para adaptar el contexto a tu dominio:

{
  "conceptos_negocio": {
    "tu_dominio": {
      "descripcion": "Descripción de tu área de negocio",
      "tabla_principal": "tu_tabla_principal", 
      "metricas_clave": ["campo1", "campo2", "campo3"]
    }
  },
  "sinonimos": {
    "ventas": ["orders", "transactions", "sales"],
    "clientes": ["users", "customers", "clients"]
  }
}

🏗️ Estructura del Proyecto

sql-llm-agent/
├── src/sql_llm_agent/
│   └── mcp_server/
│       ├── main.py           # Servidor MCP con FastAPI
│       ├── database.py       # Adaptador SQL Server universal
│       └── models.py         # Modelos de datos
├── context/
│   └── glosario.json        # Contexto personalizable
├── docker-compose.yml       # Configuración Docker
├── Dockerfile              # Python 3.12 + ODBC
├── .env.example            # Template configuración
└── build-docker.bat        # Script Windows

🔒 Seguridad

  • ✅ Solo consultas SELECT permitidas
  • ✅ Validación de palabras prohibidas (DROP, DELETE, UPDATE, etc.)
  • ✅ Límite automático de resultados (TOP 100)
  • ✅ Variables de entorno para credenciales
  • ✅ Logs seguros (stderr, no stdout)

🐳 Docker

# Construcción
build-docker.bat  # Windows
# o
docker build -t sql-llm-agent .

# Ejecución
docker-compose up -d

# Monitoreo
docker logs -f sql-llm-agent-mcp

🤝 Integración con LLMs

Claude Desktop

{
  "mcpServers": {
    "sql-agent": {
      "command": "uv",
      "args": ["run", "python", "-m", "src.sql_llm_agent.mcp_server.main"],
      "cwd": "/ruta/a/sql-llm-agent"
    }
  }
}

Otras integraciones MCP

Compatible con cualquier cliente que implemente el protocolo MCP.

🚨 Troubleshooting

# Verificar conexión a tu base de datos
uv run python -c "from src.sql_llm_agent.mcp_server.database import DatabaseManager; print(DatabaseManager().test_connection())"

# Listar drivers ODBC disponibles
odbcinst -q -d

# Cambiar puerto si está ocupado
# En .env: MCP_PORT=8001

📝 Desarrollo

# Instalación local
pip install uv
uv sync

# Ejecutar servidor en desarrollo
uv run python -m src.sql_llm_agent.mcp_server.main

# Tests
uv run pytest

# Formateo de código
uv run black src/

🗄️ Bases de Datos Compatibles

  • SQL Server (todas las versiones modernas)
  • Azure SQL Database
  • SQL Server Express
  • 🔄 Próximamente: PostgreSQL, MySQL

🎯 Casos de Uso

  • Análisis de datos con lenguaje natural vía LLMs
  • Exploración de esquemas de bases de datos desconocidas
  • Generación de reportes automáticos
  • Validación de datos y calidad
  • Documentación automática de bases de datos

👨‍💻 Autor

Arnaud Chafai ](https://github.com/Arnaud-Chafai) ![Repository](https://github.com/Arnaud-Chafai/Agent-Database-Reader)


¿Te gusta el proyecto? ¡Dale una estrella! 🐛 ¿Encontraste un bug? Abre un issue 💡 ¿Tienes una idea? Crea una discussion

⬆ Volver arriba

目录标签

目录标签

SQL查询数据安全PythonClaude本地部署数据库代理自然语言处理MCP协议SQLServer

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP