mcp-sqlite

mcp-sqlite

Enables AI agents to query and explore SQLite databases through schema inspection, arbitrary SQL execution, and predefined canned queries. Compatible with Datasette metadata for enriching database structure with descriptions.

Category
Visit Server

README

mcp-sqlite

<p align="center"> <img src="https://github.com/panasenco/mcp-sqlite/raw/main/images/mcp-sqlite-256.png"> </p>

Provide useful data to AI agents without giving them access to external systems. Compatible with Datasette for human users!

Features

  • AI agents can get the structure of all tables and columns in the SQLite database in one command - sqlite_get_catalog.
    • The catalog can be enriched with descriptions for the tables and columns using a simple YAML or JSON metadata file.
  • The same metadata file can contain canned queries to the AI to use. Each canned query will be turned into a separate MCP tool sqlite_execute_main_{tool name}.
  • AI agents can execute arbitrary SQL queries with sqlite_execute.

Quickstart using Visual Studio Code

  1. Install uv.

  2. Install Visual Studio Code if you don't already have it. Turn on GitHub Copilot.

  3. Open this repo in VS Code. Open a GitHub Copilot agent mode chat. Check the available tools - you should see MCP Server: sqlite_sample with three available tools.

  4. You should be able to ask Copilot in agent mode a question like "Get Titanic survivors of age 28" and get a response.

  5. Use the sample MCP configuration file mcp.json and the sample metadata file titanic.yml as a starting point for your own configuration.

Interactive exploration with MCP Inspector and Datasette

The same database and metadata files can be used to explore the data interactively with MCP Inspector and Datasette.

MCP Inspector Datasette

MCP Inspector

Use the MCP Inspector dashboard to interact with the SQLite database the same way that an AI agent would:

  1. Install npm.
  2. Run:
    npx @modelcontextprotocol/inspector uvx mcp-sqlite sample/titanic.db --metadata sample/titanic.yml
    

Datasette

Since mcp-sqlite metadata is compatible with the Datasette metadata file, you can also explore your data with Datasette:

uvx datasette serve sample/titanic.db --metadata sample/titanic.yml

Compatibility with Datasette allows both AI agents and humans to easily explore the same local data!

MCP Tools provided by mcp-sqlite

  • sqlite_get_catalog(): Tool the agent can call to get the complete catalog of the databases, tables, and columns in the data, combined with metadata from the metadata file. In an earlier iteration of mcp-sqlite, this was a resource instead of a tool, but resources are not as widely supported, so it got turned into a tool. If you have a usecase for the catalog as a resource, open an issue and we'll bring it back!
  • sqlite_execute(sql): Tool the agent can call to execute arbitrary SQL. The table results are returned as HTML. For more information about why HTML is the best format for LLMs to process, see Siu et al.
  • {canned query name}({canned query args}): A tool is created for each canned query in the metadata, allowing the agent to run predefined queries without writing any SQL.

Usage

Command-line options

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.

Metadata

Hidden tables

Hiding a table with hidden: true will hide it from the catalog returned by the MCP tool sqlite_get_catalog(). However, note that the table will still be accessible by the AI agent! Never rely on hiding a table from the catalog as a security feature.

Canned queries

Canned queries are each turned into a separate callable MCP tool by mcp-sqlite.

For example, a query named my_canned_query will become a tool my_canned_query.

The canned queries functionality is still in active development with more features planned for development soon:

Roadmap

Datasette query feature Supported in mcp-sqlite?
Displayed in catalog
Executable
Titles
Descriptions
Parameters
Explicit parameters ❌ (planned)
Hide SQL
Write restrictions on canned queries
Pagination ❌ (planned)
Cross-database queries ❌ (planned)
Fragments ❌ (not planned)
Magic parameters ❌ (not planned)

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured