SQLite
Servidor MCP para archivos SQLite. ¡Compatible con metadatos de Datasette!
Documentación
mcp-sqlite
Proporciona datos útiles a los agentes de IA sin darles acceso a sistemas externos. ¡Compatible con Datasette para usuarios humanos!
Características
- Los agentes de IA pueden obtener la estructura de todas las tablas y columnas de la base de datos SQLite en un solo comando -
sqlite_get_catalog.- El catálogo se puede enriquecer con descripciones de las tablas y columnas usando un archivo de metadatos YAML o JSON simple.
- El mismo archivo de metadatos puede contener consultas predefinidas para que la IA las use.
Cada consulta predefinida se convertirá en una herramienta MCP separada
sqlite_execute_main_{tool name}. - Los agentes de IA pueden ejecutar consultas SQL arbitrarias con
sqlite_execute.
Inicio rápido con Visual Studio Code
-
Instala uv.
-
Instala Visual Studio Code si aún no lo tienes. Activa GitHub Copilot.
-
Abre este repositorio en VS Code. Abre un chat en modo agente de GitHub Copilot. Revisa las herramientas disponibles: deberías ver MCP Server: sqlite_sample con tres herramientas disponibles.

-
Deberías poder preguntarle a Copilot en modo agente algo como "Obtén los sobrevivientes del Titanic de 28 años" y obtener una respuesta.

-
Usa el archivo de configuración MCP de ejemplo mcp.json y el archivo de metadatos de ejemplo titanic.yml como punto de partida para tu propia configuración.
Exploración interactiva con MCP Inspector y Datasette
Los mismos archivos de base de datos y metadatos se pueden usar para explorar los datos de forma interactiva con MCP Inspector y Datasette.
| MCP Inspector | Datasette |
|---|---|
![]() | ![]() |
![]() | ![]() |
MCP Inspector
Usa el panel de MCP Inspector para interactuar con la base de datos SQLite de la misma manera que lo haría un agente de IA:
- Instala npm.
- Ejecuta:
npx @modelcontextprotocol/inspector uvx mcp-sqlite sample/titanic.db --metadata sample/titanic.yml
Datasette
Dado que los metadatos de mcp-sqlite son compatibles con el archivo de metadatos de Datasette, también puedes explorar tus datos con Datasette:
uvx datasette serve sample/titanic.db --metadata sample/titanic.yml
¡La compatibilidad con Datasette permite que tanto los agentes de IA como los humanos exploren fácilmente los mismos datos locales!
Herramientas MCP proporcionadas por mcp-sqlite
- sqlite_get_catalog(): Herramienta que el agente puede llamar para obtener el catálogo completo de las bases de datos, tablas y columnas de los datos, combinado con los metadatos del archivo de metadatos.
En una iteración anterior de
mcp-sqlite, esto era un recurso en lugar de una herramienta, pero los recursos no están tan ampliamente soportados, así que se convirtió en una herramienta. Si tienes un caso de uso para el catálogo como recurso, abre un issue y lo traeremos de vuelta. - sqlite_execute(sql): Herramienta que el agente puede llamar para ejecutar SQL arbitrario. Los resultados de la tabla se devuelven como HTML. Para más información sobre por qué HTML es el mejor formato para que los LLM lo procesen, consulta Siu et al.
- {canned query name}({canned query args}): Se crea una herramienta para cada consulta predefinida en los metadatos, permitiendo al agente ejecutar consultas predefinidas sin escribir SQL.
Uso
Opciones de línea de comandos
usage: mcp-sqlite [-h] [-m METADATA] [-p PREFIX] [-v] sqlite_file
CLI command to start an MCP server for interacting with SQLite data.
positional arguments:
sqlite_file Path to SQLite file to serve the MCP server for.
options:
-h, --help show this help message and exit
-m, --metadata METADATA
Path to Datasette-compatible metadata YAML or JSON file.
-p, --prefix PREFIX Prefix for MCP tools. Defaults to no prefix.
-v, --verbose Be verbose. Include once for INFO output, twice for DEBUG output.
Metadatos
Tablas ocultas
Ocultar una tabla con hidden: true la ocultará del catálogo devuelto por la herramienta MCP sqlite_get_catalog().
Sin embargo, ten en cuenta que la tabla seguirá siendo accesible para el agente de IA.
¡Nunca confíes en ocultar una tabla del catálogo como característica de seguridad!
Consultas predefinidas
Consultas predefinidas se convierten cada una en una herramienta MCP invocable separada por mcp-sqlite.
Por ejemplo, una consulta llamada my_canned_query se convertirá en una herramienta my_canned_query.
La funcionalidad de consultas predefinidas sigue en desarrollo activo con más características planeadas para desarrollo pronto:
Hoja de ruta
| Característica de consulta de Datasette | ¿Compatible con mcp-sqlite? |
|---|---|
| Mostrado en el catálogo | ✅ |
| Ejecutable | ✅ |
| Títulos | ✅ |
| Descripciones | ✅ |
| Parámetros | ✅ |
| Parámetros explícitos | ❌ (planeado) |
| Ocultar SQL | ✅ |
| Restricciones de escritura en consultas predefinidas | ✅ |
| Paginación | ❌ (planeado) |
| Consultas entre bases de datos | ❌ (planeado) |
| Fragmentos | ❌ (no planeado) |
| Parámetros mágicos | ❌ (no planeado) |



