Skip to content
Agent Orchestration
Skill

/mssql

Execute read-only SQL queries against multiple Microsoft SQL Server databases. Use when: (1) querying MSSQL/SQL Server databases, (2) exploring database schemas/tables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database

BOOST
From plugin
ai-skills
43724 skills
Install
$ npx -y skills add sanjay3290/ai-skills --skill mssql --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/mssql

Context preview

The summary Claude sees to decide when to auto-load this skill.

Execute read-only SQL queries against multiple Microsoft SQL Server databases. Use when: (1) querying MSSQL/SQL Server databases, (2) exploring database schemas/tables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database

SKILL.md

mssql.SKILL.md
name: mssql
description: "Execute read-only SQL queries against multiple Microsoft SQL Server databases. Use when: (1) querying MSSQL/SQL Server databases, (2) exploring database schemas/tables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database connections with descriptions for intelligent auto-selection. Blocks all write operations (INSERT, UPDATE, DELETE, DROP, etc.) for safety."
license: Apache-2.0
metadata:
  author: sanjay3290
  version: "1.0"

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

| Field | Required | Description | |-------|----------|-------------| | name | Yes | Identifier for the database (case-insensitive) | | description | Yes | What data this database contains (used for auto-selection) | | host | Yes | Database hostname | | port | No | Port number (default: 1433) | | database | Yes | Database name | | user | Yes | Username | | password | Yes | Password | | encrypt | No | Enable TLS encryption (default: false) | | tds_version | No | TDS 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 about | Look for description containing | |-----------------|--------------------------------| | users, accounts | users, accounts, customers | | orders, sales | orders, transactions, sales | | analytics, metrics | analytics, metrics, reports | | logs, events | logs, 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

| Error | Solution | |-------|----------| | Config not found | Create `connections.json` in skill directory | | Authentication failed | Check username/password in config | | Connection timeout | Verify host/port, check firewall/VPN | | TDS version error | Try `"tds_version": "7.3"` or `"7.4"` | | Encryption error | Set `"encrypt": true` for Azure SQL | | Permission warning | Run `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)

Read more
Ships withai-skills

A collection of portable skills for AI coding assistants. Works with all major AI clients that support the Agent Skills Standard.

Get the whole plugin
Stats
438
Stars
49
Forks
Maintained
Maintenance
Python
Language
Apache-2.0
License
1mo ago
Last commit
9mo ago
Created
3h ago
Added

Repo: sanjay3290/ai-skills

Other skills on ai-skills.