usqlmcp
usqlmcp is a universal SQL MCP designed to execute various SQL queries and integrate with Cursor for seamless database management. It supports installation via releases and can be run using Docker for enhanced flexibility and accessibility.
usqlmcp
A universal SQL MCP (Model Context Protocol).
Features
- Tools
read_query
: Execute aSELECT
query and return the results.write_query
: Execute anINSERT
,UPDATE
,DELETE
, orALTER
query and return the number of affected rows.create_table
: Execute aCREATE TABLE
query to define new tables in the database.
Installing
usqlmcp
is available via Release
Installing via Release
- Download a release for your platform
- Extract the
usqlmcp
orusqlcmp.exe
file from the.tar.bz2
or.zip
file - Move the extracted executable to somewhere on your
$PATH
(Linux/macOS) or%PATH%
(Windows)
Setup
MCP Integration in Cursor
Add the following configuration to your ~/.cursor/mcp.json file or configure via the settings menu in Cursor.
{
"mcpServers": {
"usqlmcp": {
"command": "usqlmcp",
"args": ["--dsn", "sqlite3:///your/db/dsn/file.db"]
}
}
}
Other tools
{
"servers": {
"usqlmcp": {
"type": "stdio",
"command": "usqlmcp",
"args": ["--dsn", "sqlite3:///your/db/dsn/file.db"]
}
}
}
Docker Usage
You can configure usqlmcp to run via Docker in Cursor by specifying the appropriate command and arguments in your MCP JSON configuration.
Example: Postgres (Docker)
Add the following to your ~/.cursor/mcp.json
:
{
"mcpServers": {
"usqlmcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"ghcr.io/thesoulless/usqlmcp:latest",
"--dsn", "postgres://username:password@host.docker.internal:5432/dbname?sslmode=disable"
]
}
}
}
Note: When connecting to a database on your host machine, use host.docker.internal
instead of localhost
or 127.0.0.1
.
Example: SQLite with Volume Mounting (Docker)
To use a SQLite database file from your local machine, add the following to your ~/.cursor/mcp.json
:
{
"mcpServers": {
"usqlmcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/path/to/local/mydatabase.db:/data/mydatabase.db",
"ghcr.io/thesoulless/usqlmcp:latest",
"--dsn", "sqlite3:///data/mydatabase.db"
]
}
}
}
This mounts your local SQLite database file directly into the container, providing access to only what's needed.
Acknowledgments
This project depends on usql, a universal command-line interface for SQL databases.