Sign In
Reviewed 2026-10-14dataMCP Server# mcp# sqlite# sql# database# python
Share:

Archived MCP reference server for running SQL against a SQLite file, inspecting tables and collecting insights in a memo.

Security Reviewed

Archived, unmaintained local server (2 Python files, no network) with full write access to one SQLite file, including destructive SQL via write_query.

Install SQLite MCP Server in Google Antigravity

Antigravity reads MCP servers from ~/.gemini/config/mcp_config.json (all projects) or .agents/mcp_config.json (one project) (official docs).

EasiestOption 1: paste this to your Antigravity agent
Install the "SQLite MCP Server" MCP server for Google Antigravity.
Follow the steps at https://www.antigravityskills.org/install/sqlite-mcp-server.md (source: https://github.com/modelcontextprotocol/servers-archived/tree/main/src/sqlite).
Before running anything, show me what you will download and whether it includes scripts, and wait for my OK.
Ask me for any keys or paths it needs. When done, check that it is listed under Installed MCP Servers.

The agent reads the install file, shows you what it will download and waits for your OK.

Option 2: install it yourself
  1. 1. Install uv
    uv --version

    The README starts the server with uv/uvx; uv also provides Python 3.10+ if needed. Docker also works, but you have to build the image from src/sqlite yourself (README "Building").

  2. 2. Open the Antigravity MCP config

    Global: ~/.gemini/config/mcp_config.json. This project only: .agents/mcp_config.json. In Antigravity 2.0 you can also use Settings > Customizations > Add MCP.

  3. 3. Add the server under mcpServers
    {
      "mcpServers": {
        "sqlite": {
          "command": "uvx",
          "args": ["mcp-server-sqlite", "--db-path", "/absolute/path/to/your.db"]
        }
      }
    }

    Same uvx command and args as the README's VS Code config. Use an absolute path (not ~/...); the file and its parent folders are created if they do not exist. Point it at a copy if you only want analysis.

  4. 4. Check that it loaded

    Settings > Customizations > Installed MCP Servers: sqlite should be listed and switched on. Then ask the agent to run list_tables.

MCP servers are not skills: they do not go in .agents/skills/. The server's README documents Claude Desktop and VS Code only and does not mention Antigravity; this uses its documented uvx command in Antigravity's mcp_config.json.

Using Claude Code, Cursor or Codex? See other assistants below.

What is SQLite MCP Server?

The SQLite MCP Server (mcp-server-sqlite) is the original Python reference server from the Model Context Protocol project. It lets an AI agent list, read and change the tables of one local SQLite file and keep a running "insights" memo while it analyses the data. It suits people who want to explore or prototype a small database with an agent and accept that the code is archived. What we counted at commit 9be4674 (2025-05-28, the latest commit of modelcontextprotocol/servers-archived): 2 Python files with 411 lines (server.py has 393), 1 runtime dependency (mcp[cli] 1.6.0 or newer), Python 3.10 or newer; 6 tools, 1 resource (memo://insights) and 1 prompt (mcp-demo). If you leave out --db-path it uses ./sqlite_mcp_server.db.

How to use SQLite MCP Server?

Start it with uvx mcp-server-sqlite --db-path <file> (or the Docker image you build from src/sqlite) in your MCP client and point --db-path at an absolute path. The agent can then list and describe tables, run SELECT queries, write changes, create tables and add findings to the memo. Use a copy of any database you care about.

Key features of SQLite MCP Server

  • ✓read_query for SELECT statements
  • ✓write_query for INSERT, UPDATE or DELETE (anything not starting with SELECT is passed through)
  • ✓create_table for CREATE TABLE statements
  • ✓list_tables and describe_table for schema inspection
  • ✓append_insight, which adds to the memo://insights resource
  • ✓mcp-demo prompt that builds a sample schema and data for a topic you give

When to use SQLite MCP Server

  1. 1Asking questions about a local SQLite database in plain language
  2. 2Prototyping a schema and sample data for a business topic
  3. 3Collecting analysis findings in a running memo

Installation & Setup Guide

MCP Server Integration

Follow these steps (taken from the project's own docs) to configure SQLite MCP Server in your development environment.

Step 1: Claude Desktop (uv), from the READMEclaude
{"mcpServers":{"sqlite":{"command":"uv","args":["--directory","parent_of_servers_repo/servers/src/sqlite","run","mcp-server-sqlite","--db-path","~/test.db"]}}}

Add to claude_desktop_config.json; replace the --directory value with your clone of src/sqlite, and use an absolute --db-path (see limitations about ~).

Step 2: Claude Desktop (Docker), from the READMEclaude
{"mcpServers":{"sqlite":{"command":"docker","args":["run","--rm","-i","-v","mcp-test:/mcp","mcp/sqlite","--db-path","/mcp/test.db"]}}}

Build the image first with docker build -t mcp/sqlite . from src/sqlite (README "Building").

Step 3: VS Code (uvx), from the READMEvscode
{"mcp":{"servers":{"sqlite":{"command":"uvx","args":["mcp-server-sqlite","--db-path","${workspaceFolder}/db.sqlite"]}}}}

Add to VS Code User Settings (JSON) or .vscode/mcp.json, as documented in the README.

Step 4: Claude Code and Cursor: not documented by the projectcursor

The README covers Claude Desktop and VS Code only, so we do not list Claude Code or Cursor commands.

Usage Example & Verification

Prompt / Request Example
1) README example: the mcp-demo prompt with its required topic argument (our topic: "coffee shop sales")
-> What happens: the prompt template has the agent create tables for the topic, insert sample data, run analysis queries and record findings with append_insight. Parts of the template describe Claude Desktop's paperclip/MCP menu, which other clients do not have.

2) Our example: "List the tables in my database and describe the orders table."
-> What happens: list_tables, then describe_table with table_name=orders, which returns the column list from PRAGMA table_info.

3) Our example: "Which 5 customers spent the most? Add the answer to the insights memo."
-> What happens: one read_query (a SELECT with GROUP BY and LIMIT 5), then append_insight. The memo lives only in the server's memory and is gone after a restart.
Installation Confirmation Method

Open Settings > Customizations > Installed MCP Servers in Antigravity and check that sqlite is listed and on, then ask the agent to call list_tables; on a new database it returns an empty list.

Security Review

Static review
Reviewed Date
2026-10-14
Audited Ref / Commit
9be4674d1ddf8c469e6461a27a337eeb65f76c2e
Reviewer
antigravityskills.org (static code review)

Archived, unmaintained local server (2 Python files, no network) with full write access to one SQLite file, including destructive SQL via write_query.

Full review: scope, findings, risks
Audit Scope:Static review of modelcontextprotocol/servers-archived at commit 9be4674 (2025-05-28, HEAD on 2026-10-14): src/sqlite/README.md, pyproject.toml, Dockerfile, src/mcp_server_sqlite/__init__.py and server.py in full, the repository README.md and LICENSE; PyPI metadata for mcp-server-sqlite checked on 2026-10-14.
Key Findings:Local-only: server.py imports sqlite3 and the MCP SDK; no HTTP, subprocess, os.system or eval. Reads and writes the SQLite file given by --db-path (creating parent folders). read_query requires a SELECT prefix, create_table a CREATE TABLE prefix, write_query rejects only SELECT; commits happen only for 6 statement prefixes. describe_table formats the table name into PRAGMA table_info(...) without parameters. Insights are kept in memory. Archived and unmaintained.
Identified Operational Risks & Permissions:Unmaintained code. write_query can run destructive statements (DROP, ALTER, DELETE). Full write access to the chosen database file. uvx runs the PyPI release, which we did not compare with the archived source.

Static review at commit 9be4674. The servers-archived README states that no security guarantees are provided, no updates or fixes will ship, and use is at your own risk. src/mcp_server_sqlite/server.py (393 lines) uses sqlite3 and the MCP SDK only; we found no HTTP, requests, subprocess, os.system or eval. On start it creates the parent folders of --db-path and opens a new connection for every query. Tool gating is by text prefix: read_query requires SELECT, create_table requires CREATE TABLE, and write_query only rejects SELECT, so DROP, ALTER and DELETE pass; changes are committed only when the statement starts with INSERT, UPDATE, DELETE, CREATE, DROP or ALTER. describe_table puts the table name straight into PRAGMA table_info(...) with an f-string. The insights memo is a Python list in memory. No API keys or environment variables are read. The Dockerfile builds on ghcr.io/astral-sh/uv and python:3.12-slim-bookworm images.

Operational Notes & Known Limitations

Known Limitations

  • •Archived: the servers-archived README says no security updates or bug fixes will be provided
  • •From reading server.py: changes are committed only when the statement starts with INSERT, UPDATE, DELETE, CREATE, DROP or ALTER. Other writes accepted by write_query, such as REPLACE INTO or a WITH ... INSERT, run but are not committed, so they are lost when the connection closes
  • •write_query only rejects statements that start with SELECT, so DROP and ALTER go through
  • •The README calls the schema tool describe-table, but the code registers describe_table (we compared both)
  • •The path is not passed through a shell, and server.py does not expand ~. The README's Claude Desktop example uses ~/test.db, which from reading the code would create a folder literally named ~ in the server's working directory. Use an absolute path
  • •The memo://insights content is kept in memory only (a Python list) and is not saved to the database
  • •uvx installs the package from PyPI, whose latest release (2025.4.25 when we checked on 2026-10-14) has a different version number from pyproject.toml at this commit (0.6.2); we did not compare the two
  • •Antigravity, Claude Code and Cursor are not mentioned in the README; it documents Claude Desktop and VS Code. Difference from the filesystem-mcp-server page on this site: that reference server is still maintained, this one is not

Frequently Asked Questions

Is the SQLite MCP Server safe?

It makes no network calls and reads no keys, but it is archived with no security fixes, and write_query runs anything that does not start with SELECT, including DROP and ALTER. Point it at a copy of your database if you only want analysis.

How do I install SQLite MCP Server in Antigravity?

Add {"command": "uvx", "args": ["mcp-server-sqlite", "--db-path", "/absolute/path/to/your.db"]} under mcpServers in ~/.gemini/config/mcp_config.json (or .agents/mcp_config.json), then check Installed MCP Servers. The README does not mention Antigravity.

Is it still maintained?

No. It is in modelcontextprotocol/servers-archived, whose README says the servers are no longer maintained and points to modelcontextprotocol/servers for current ones.

Why did my change disappear?

From reading server.py: only statements starting with INSERT, UPDATE, DELETE, CREATE, DROP or ALTER are committed. Rewrite REPLACE INTO or WITH ... INSERT statements as a plain INSERT or UPDATE.

What is memo://insights?

A resource that collects the findings the agent adds with append_insight. It is held in memory and is lost when the server stops.

Supported Platforms

antigravityclaude