docker-compose build
docker-compose upYour server will be live at http://localhost:8080, ready to accept MCP-style queries.
Astral is the MCP-compatible package manager.
curl -Ls https://astral.sh/uv/install.sh | shVerify it:
uvx mcp-server-sqlite --helpClaude launched via Spotlight/Dock doesn’t see your shell config. So we have to tell macOS:
launchctl setenv PATH "$HOME/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"You can also verify this:
launchctl getenv PATHClaude expects uv at /usr/local/bin/uv, but Astral installs it in ~/.local/bin/uv. Fix that with:
sudo ln -s $HOME/.local/bin/uv /usr/local/bin/uvVerify:
uvx mcp-server-sqlite --helpCreate or edit:
~/Library/Application Support/Claude/claude_desktop_config.jsonInsert:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"/Users/YOUR_USERNAME/Desktop/mcp_quickstart/data/test.db"
]
}
}
}✅ Make sure to replace YOUR_USERNAME with your actual username.
Try this from the terminal:
echo '{"jsonrpc":"2.0","id":"debug","method":"query","params":{"sql":"SELECT * FROM products LIMIT 1"}}' \
| uvx mcp-server-sqlite --db-path /Users/YOUR_USERNAME/Desktop/mcp_quickstart/data/test.dbYou should get back:
{
"jsonrpc": "2.0",
"id": "debug",
"result": {
"columns": ["id", "name", "price"],
"rows": [[1, "Widget", 19.99]]
}
}docker exec -it $(docker ps --filter "name=mcp-server" -q) sqlite3 /data/test.dbThen run:
SELECT * FROM products LIMIT 1;docker-compose down -v && docker-compose build && docker-compose upecho '{"jsonrpc":"2.0","id":"test123","method":"query","params":{"sql":"SELECT * FROM products"}}' > test-mcp.json
cat test-mcp.json | uvx mcp-server-sqlite --db-path /Users/YOUR_USERNAME/Desktop/mcp_quickstart/data/test.db- Claude MCP Docs → https://www.claudemcp.com/docs/quickstart
- Model Context Protocol → https://modelcontextprotocol.io
- 🐻 Dockerized SQLite server
- 🧪 Secure query interface via FastAPI + Uvicorn
- 📡 Claude MCP bridge using
uvx+mcp-server-sqlite - 🧠 A local Claude brain that talks SQL