概要
What is sqlite-reader-mcp?
sqlite-reader-mcp is a lightweight MCP server that provides read-only access to SQLite databases. It allows users to execute SELECT queries, list tables, and describe table schemas. Aimed at developers and AI agents who need safe, programmatic exploration of SQLite databases through the Model Context Protocol.
How to use sqlite-reader-mcp?
Install with uv tool install git+https://github.com/abhinavnatarajan/sqlite-reader-mcp. Then start the server using sqlite-reader-mcp --paths /path/to/database.db /path/to/allowed_directory. Once running, interact via any FastMCP client using the built-in tools: read_query, list_tables, and describe_table.
Key features of sqlite-reader-mcp
- Read-only access – no data modification allowed
- Secure path whitelisting for approved database files
- SQL validation permits only SELECT and WITH statements
- Asynchronous operations with aiosqlite
- Automatic row limiting (default 1000 rows)
- Three MCP tools: read_query, list_tables, describe_table
Use cases of sqlite-reader-mcp
- Safely explore SQLite databases through an MCP interface
- Audit database schema and table structures
- Run read-only analytical queries from an AI agent
- Integrate SQLite data retrieval into LLM-driven workflows
- Provide controlled database access without write risk
FAQ from sqlite-reader-mcp
What tools does sqlite-reader-mcp provide?
It provides three tools: read_query to execute SELECT queries, list_tables to list all tables in a database, and describe_table to get column schema information for a specific table.
How does the server enforce read-only security?
The server enforces read-only by rejecting any SQL that is not a SELECT or WITH statement. It also restricts database access to absolute file paths explicitly passed via the --paths argument, and validates that paths exist.
What are the runtime requirements?
Python 3.13 or later, plus the packages aiosqlite >= 0.21.0, fastmcp >= 2.6.1, and sqlparse >= 0.5.3.
How do I specify which databases the server can access?
Use the --paths (or -p) command-line argument with one or more absolute paths to SQLite database files or directories containing them. All paths must exist and be absolute.
Can I execute multiple SQL statements in one query?
No. The server rejects query strings containing multiple statements to prevent injection or unintended operations. Trailing semicolons are automatically removed.