SQLite MCP Server
This is a Model Context Protocol (MCP) server that provides access to a SQLite database. It allows AI assistants (like Trae) to query and modify SQLite databases directly.
Features
- Read Queries: Execute
SELECTqueries to retrieve data. - Write Queries: Execute
INSERT,UPDATE,DELETEqueries to modify data. - Schema Inspection: List tables and describe table schemas.
- Secure: Runs locally on your machine.
Prerequisites
- Python 3.10 or higher
pip(Python package installer)
Installation
- Clone or download this repository.
- Install the required dependencies:
pip install -r requirements.txt
Usage
You can run the server directly from the command line:
python main.py --db path/to/your/database.sqlite
If the database file does not exist, it will be created automatically when you perform a write operation.
Configuration in Trae
To use this MCP server in Trae, you need to add it to your MCP configuration file.
- Open Trae.
- Go to Settings -> MCP Servers (or edit the configuration file directly if you know the location, typically
~/.config/trae/config.jsonor similar depending on OS). - Add the following configuration:
{
"mcpServers": {
"sqlite": {
"command": "python",
"args": [
"absolute/path/to/sqlite_mcp/main.py",
"--db",
"absolute/path/to/your/database.sqlite"
]
}
}
}
Note:
- Replace
absolute/path/to/sqlite_mcp/main.pywith the full path to themain.pyfile in this project. - Replace
absolute/path/to/your/database.sqlitewith the full path to your SQLite database file. - On Windows, use double backslashes
\\or forward slashes/in paths (e.g.,"C:\\Users\\Name\\sqlite_mcp\\main.py").
API Documentation
Tools
read_query
Executes a SELECT query on the SQLite database.
- Input:
query(string) - The SQL SELECT query. - Output: List of dictionaries representing the rows.
write_query
Executes an INSERT, UPDATE, or DELETE query.
- Input:
query(string) - The SQL modification query. - Output: Success message with row count.
list_tables
Lists all tables in the database.
- Input: None.
- Output: List of table names.
describe_table
Gets the schema for a specific table.
- Input:
table_name(string). - Output: List of column definitions.