mcpField
M
mssql

mssql

github.com/sanjay3290Data & databases447530 installsUpdated 7w ago
Repository

About mssql

mssql is a read-only skill for querying configured Microsoft SQL Server databases, for users who need to inspect and retrieve database data. It validates queries, permits only a single read-only statement, and can show tables and schemas.

Key features

  1. 01List configured databases
  2. 02Run read-only queries with row limits
  3. 03Inspect tables and database schemas
  4. 04Validate query types and reject multiple statements
  5. 05Support TLS and query timeouts

Use cases

  1. 01Inspect user or order data in a database
  2. 02Query analytics metrics or log records
  3. 03Review tables and schemas before querying

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/sanjay3290/ai-skills --skill mssql

After installing, type/mssqlin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
connections.example.json
README.md
requirements.txt
scripts/
query.py

Details

From the project README

MSSQL Read-Only Query Skill

Execute safe, read-only queries against configured Microsoft SQL Server databases.

Requirements

  • Python 3.8+
  • pymssql: pip install -r requirements.txt

Setup

Create connections.json in the skill directory or ~/.config/claude/mssql-connections.json.

Security: Set file permissions to 600 since it contains credentials:

chmod 600 connections.json
{
  "databases": [
    {
      "name": "production",
      "description": "Main app database - users, orders, transactions",
      "host": "db.example.com",
      "port": 1433,
      "database": "app_prod",
      "user": "readonly_user",
      "password": "your-password",
      "encrypt": true,
      "tds_version": "7.3"
    }
  ]
}
Config Fields
FieldRequiredDescription
nameYesIdentifier for the database (case-insensitive)
descriptionYesWhat data this database contains (used for auto-selection)
hostYesDatabase hostname
portNoPort number (default: 1433)
databaseYesDatabase name
userYesUsername
passwordYesPassword
encryptNoEnable TLS encryption (default: false)
tds_versionNoTDS protocol version: 7.0, 7.1, 7.2, 7.3, 7.4 (default: auto)

Usage

List configured databases
python3 scripts/query.py --list
Query a database
python3 scripts/query.py --db production --query "SELECT TOP 10 * FROM users"
List tables
python3 scripts/query.py --db production --tables
Show schema
python3 scripts/query.py --db production --schema
Limit results
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100

Note: MSSQL uses TOP N instead of LIMIT. The --limit flag automatically inserts TOP N after SELECT.

Database Selection

Match user intent to database description:

User asks aboutLook for description containing
users, accountsusers, accounts, customers
orders, salesorders, transactions, sales
analytics, metricsanalytics, metrics, reports
logs, eventslogs, events, audit

If unclear, run --list and ask user which database.

Safety Features

  • Read-only enforcement: Query validation blocks write operations (use a db_datareader role user for server-side protection)
  • Query validation: Only SELECT, SHOW, EXPLAIN, WITH, SP_HELP queries allowed
  • Single statement: Multiple statements per query rejected
  • TLS support: Configurable encryption for secure connections
  • Query timeout: 30-second timeout enforced via pymssql
  • Connection timeout: 10-second login timeout
  • Memory protection: Max 10,000 rows per query to prevent OOM
  • Column width cap: 100 char max per column for readable output
  • Credential sanitization: Error messages don't leak passwords

Troubleshooting

ErrorSolution
Config not foundCreate connections.json in skill directory
Authentication failedCheck username/password in config
Connection timeoutVerify host/port, check firewall/VPN
TDS version errorTry "tds_version": "7.3" or "7.4"
Encryption errorSet "encrypt": true for Azure SQL
Permission warningRun chmod 600 connections.json

Exit Codes

  • 0: Success
  • 1: Error (config missing, auth failed, invalid query, database error)

Workflow

  1. Run --list to show available databases
  2. Match user intent to database description
  3. Run --tables or --schema to explore structure
  4. Execute query with appropriate --limit (auto-converts to TOP N)

Comments

Markdown supported