Skip to main content
Glama
aWiseKing

SQLite MCP Server

by aWiseKing
README.md
# 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 `SELECT` queries to retrieve data.
- **Write Queries**: Execute `INSERT`, `UPDATE`, `DELETE` queries 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

1. Clone or download this repository.
2. Install the required dependencies:

```bash
pip install -r requirements.txt
```

## Usage

You can run the server directly from the command line:

```bash
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.

1. Open Trae.
2. Go to **Settings** -> **MCP Servers** (or edit the configuration file directly if you know the location, typically `~/.config/trae/config.json` or similar depending on OS).
3. Add the following configuration:

```json
{
  "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.py` with the full path to the `main.py` file in this project.
- Replace `absolute/path/to/your/database.sqlite` with 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.

Maintenance

ActivityInactive
ResponsivenessNo issues