sql-mcp
@yuuzu/sql-mcp
A Model Context Protocol (MCP) server for MSSQL, PostgreSQL, and SQLite database operations.
Installation
# Using bunx (recommended)
bunx @yuuzu/sql-mcp
# Using npx
npx @yuuzu/sql-mcpFeatures
Multi-database support: MSSQL, PostgreSQL, and SQLite (via better-sqlite3)
8 tools for database operations
Three query modes: safe, write, full
Advanced authentication: Windows Auth (MSSQL), SSL certificates (PostgreSQL)
Tools
Tool | Description |
| Connect to a database server |
| Disconnect from the current connection |
| Check connection status and query mode |
| List all databases on the server |
| Switch to a different database |
| List all tables and views |
| Get table schema details |
| Execute SQL queries |
Query Modes
Control query permissions via SQL_MCP_MODE environment variable:
Mode | Allowed Operations | Description |
| SELECT, WITH, EXPLAIN | Read-only, safest |
| + INSERT, UPDATE, DELETE | Allows data modification |
| + CREATE, DROP, ALTER, TRUNCATE | Full access, use with caution |
Note:
PRAGMAstatements (e.g.PRAGMA table_info(users)) are allowed in all modes includingsafe, as they are read-only metadata queries commonly used with SQLite.
# Example: Enable write mode
SQL_MCP_MODE=write bunx @yuuzu/sql-mcpUsage Examples
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"sql-mcp": {
"command": "bunx",
"args": ["@yuuzu/sql-mcp"],
"env": {
"SQL_MCP_MODE": "safe"
}
}
}
}Connect to MSSQL
{
"tool": "connect-database",
"arguments": {
"engine": "mssql",
"server": "localhost",
"port": 1433,
"user": "sa",
"password": "your_password",
"database": "master"
}
}Connect to PostgreSQL
{
"tool": "connect-database",
"arguments": {
"engine": "postgres",
"server": "localhost",
"port": 5432,
"user": "postgres",
"password": "your_password",
"database": "postgres"
}
}Connect with Windows Authentication (MSSQL)
{
"tool": "connect-database",
"arguments": {
"engine": "mssql",
"server": "localhost",
"windowsAuth": true
}
}Connect with SSL (PostgreSQL)
{
"tool": "connect-database",
"arguments": {
"engine": "postgres",
"server": "your-server.com",
"user": "postgres",
"password": "your_password",
"ssl": {
"rejectUnauthorized": true,
"ca": "/path/to/ca-certificate.crt"
}
}
}Connect to SQLite (file)
{
"tool": "connect-database",
"arguments": {
"engine": "sqlite",
"filename": "/absolute/path/to/database.db"
}
}Connect to SQLite (in-memory)
Useful for testing, demos, or ephemeral scratch workspaces.
{
"tool": "connect-database",
"arguments": {
"engine": "sqlite",
"filename": ":memory:"
}
}Connect to SQLite (read-only)
{
"tool": "connect-database",
"arguments": {
"engine": "sqlite",
"filename": "/absolute/path/to/database.db",
"readonly": true,
"fileMustExist": true
}
}SQLite runtime note: SQLite support uses
better-sqlite3which requires Node.js. When running viabunx, MSSQL and PostgreSQL work normally but SQLite connections will return a clear error directing you to usenpxornodeinstead.
Development
# Install dependencies
bun install
# Run in development mode
bun run dev
# Run tests
bun test
# Run tests with coverage
bun test --coverage
# Build
bun run build
# Type check
bun run typecheckRelease
Releases are automated via GitHub Actions. To create a new release:
# Create and push a version tag
git tag v1.0.0
git push origin v1.0.0This will:
Build the project
Publish to npm with provenance
Create a GitHub Release with auto-generated release notes
Requirements: Set NPM_TOKEN secret in your GitHub repository settings.
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NakiriYuuzu/sql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server