Ir al contenido

Overflow de tokens al explorar bases de datos grandes

Al intentar explorar una base de datos con muchas tablas o buscar referencias a un objeto SQL, Claude fallaba con el error:

No se pudo generar completamente la respuesta de Claude

CampoValor
Fecha2026-03-03
SeveridadAlta (bloquea la exploración de BDs grandes)
Estado✅ Resuelto

Tres problemas combinados:

  1. executeSecureQuery sin límite de filas — devolvía todos los resultados sin corte, generando JSONs de cientos de KB que superaban el contexto de Claude.
  2. list_tables sin filtro — en bases de datos con más de 200 tablas/vistas el resultado era masivo.
  3. Sin herramienta de búsqueda directa — para buscar “qué procedimientos referencian X” era necesario listar todos los objetos e inspeccionarlos uno a uno (costosísimo en tokens).

Todas las consultas quedan acotadas a 500 filas. Si se trunca el resultado, el último elemento incluye una advertencia _truncated para que Claude sepa que debe refinar la query con WHERE o TOP.

Ahora se puede filtrar antes de traer datos:

list_tables filter="Pedido" → solo tablas/vistas que contengan "Pedido"
list_tables filter="Camio" → solo tablas/vistas que contengan "Camio"

Búsqueda directa en dos modos:

ModoUsoQué devuelve
Por nombre (default)search_objects pattern="PedidoCamio"Tablas, vistas, procs y funciones cuyo nombre coincide
Por definiciónsearch_objects pattern="PedidoCamio" search_in="definition"Procs, funciones y vistas que referencian ese texto en su código fuente

Todos los conectores exponen exactamente las mismas funciones:

FunciónParámetros
query_databasequery: string
get_database_info
exploretype?: string, filter?: string, schema?: string, pattern?: string, search_in?: string
inspecttable_name: string, schema?: string, detail?: string
execute_procedureprocedure_name: string, parameters?: string

Para encontrar referencias a PedidoCamioCarregaCamioAdmin con estados 26/27:

-- 1. Buscar el objeto por nombre
search_objects pattern="PedidoCamioCarregaCamioAdmin"
-- 2. Buscar qué procs/vistas lo referencian en su código
search_objects pattern="PedidoCamioCarregaCamioAdmin" search_in="definition"
-- 3. Consulta directa filtrando por estado
query_database query="SELECT * FROM PedidoCamioCarregaCamio WHERE Estado IN (26,27)"