Skip to main content
Glama

MCPQL - SQL Server MCP

License: MIT Node.js Version TypeScript npm version Downloads GitHub stars GitHub issues GitHub forks Build Status Coverage Status SQL Server Azure SQL MCP Protocol Claude Desktop Cursor IDE Trae AI Docker Security Maintenance

A comprehensive Model Context Protocol (MCP) server for SQL Server database operations. This server provides 10 powerful tools for database analysis, object discovery, and data manipulation through the MCP protocol.

🚀 Quick Start

Prerequisites

  • Node.js 18+ and npm

  • SQL Server database with appropriate connection credentials

  • MCP-compatible client (like Claude Desktop, Cursor IDE, or any MCP client)

Installation & Configuration

No installation needed! Just configure your MCP client:

For Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_AUTHENTICATION_TYPE": "sql",
        "DB_SERVER": "your_server",
        "DB_NAME": "your_database",
        "DB_USER": "your_username",
        "DB_PASSWORD": "your_password",
        "DB_PORT": "1433",
        "DB_ENCRYPT": "false",
        "DB_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

For Cursor IDE:

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_AUTHENTICATION_TYPE": "sql",
        "DB_SERVER": "your_server",
        "DB_NAME": "your_database",
        "DB_USER": "your_username",
        "DB_PASSWORD": "your_password",
        "DB_PORT": "1433",
        "DB_ENCRYPT": "false",
        "DB_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

Option 2: Local Development Installation

  1. Clone and setup:

git clone https://github.com/hendrickcastro/MCPQL.git
cd MCPQL
npm install
npm run build
  1. Configure database connection: Create a .env file with your database credentials:

# Basic SQL Server connection
DB_AUTHENTICATION_TYPE=sql
DB_SERVER=localhost
DB_NAME=MyDatabase
DB_USER=sa
DB_PASSWORD=YourPassword123!
DB_PORT=1433
DB_ENCRYPT=false
DB_TRUST_SERVER_CERTIFICATE=true
  1. Configure MCP client with local path:

{
  "mcpServers": {
    "mcpql": {
      "command": "node",
      "args": ["path/to/MCPQL/dist/server.js"]
    }
  }
}

Related MCP server: MSSQL MCP Server

🛠️ Available Tools

MCPQL provides 11 comprehensive tools for SQL Server database operations:

1. 🏗️ Table Analysis - mcp_table_analysis

Complete table structure analysis including columns, keys, indexes, and constraints.

2. 📋 Stored Procedure Analysis - mcp_sp_structure

Analyze stored procedure structure including parameters, dependencies, and source code.

3. 👀 Data Preview - mcp_preview_data

Preview table data with optional filtering and row limits.

4. 📊 Column Statistics - mcp_get_column_stats

Get comprehensive statistics for a specific column.

5. ⚙️ Execute Stored Procedure - mcp_execute_procedure

Execute stored procedures with parameters and return results.

6. 🔍 Execute SQL Query - mcp_execute_query

Execute custom SQL queries with full error handling.

7. ⚡ Quick Data Analysis - mcp_quick_data_analysis

Quick statistical analysis including row count, column distributions, and top values.

8. 🔎 Comprehensive Search - mcp_search_comprehensive

Search across database objects by name and definition with configurable criteria.

9. 🔗 Object Dependencies - mcp_get_dependencies

Get dependencies for database objects (tables, views, stored procedures, etc.).

10. 🎯 Sample Values - mcp_get_sample_values

Get sample values from a specific column in a table.

11. 🔒 Security Status - mcp_get_security_status

Get current security configuration and status for database operations.

📋 Usage Examples

Analyzing a Table

// Get complete table structure
const analysis = await mcp_table_analysis({ 
  table_name: "dbo.Users" 
});

// Get quick data overview
const overview = await mcp_quick_data_analysis({ 
  table_name: "dbo.Users",
  sample_size: 500
});

// Preview table data with filters
const data = await mcp_preview_data({
  table_name: "dbo.Users",
  filters: { "Status": "Active", "Department": "IT" },
  limit: 25
});

Finding Database Objects

// Find all objects containing "User"
const objects = await mcp_search_comprehensive({ 
  pattern: "User",
  search_in_names: true,
  search_in_definitions: false
});

// Find procedures that query a specific table
const procedures = await mcp_search_comprehensive({ 
  pattern: "FROM Users",
  object_types: ["PROCEDURE"],
  search_in_definitions: true
});

Analyzing Stored Procedures

// Get complete stored procedure analysis
const spAnalysis = await mcp_sp_structure({ 
  sp_name: "dbo.usp_GetUserData" 
});

// Execute a stored procedure
const result = await mcp_execute_procedure({
  sp_name: "dbo.usp_GetUserById",
  params: { "UserId": 123, "IncludeDetails": true }
});

Data Analysis

// Get column statistics
const stats = await mcp_get_column_stats({
  table_name: "dbo.Users",
  column_name: "Age"
});

// Get sample values from a column
const samples = await mcp_get_sample_values({
  table_name: "dbo.Users",
  column_name: "Department",
  limit: 15
});

🔧 Environment Variables & Connection Types

MCPQL supports multiple SQL Server connection types with comprehensive configuration options:

🔐 Authentication Types

Set DB_AUTHENTICATION_TYPE to one of:

  • sql - SQL Server Authentication (default)

  • windows - Windows Authentication

  • azure-ad - Azure Active Directory Authentication

📋 Complete Environment Variables

Variable

Description

Default

Required For

Basic Connection

DB_AUTHENTICATION_TYPE

Authentication type (sql/windows/azure-ad)

sql

All

DB_SERVER

SQL Server hostname/IP

-

All

DB_NAME

Database name

-

All

DB_PORT

SQL Server port

1433

All

DB_TIMEOUT

Connection timeout (ms)

30000

All

DB_REQUEST_TIMEOUT

Request timeout (ms)

30000

All

SQL Server Authentication

DB_USER

SQL Server username

-

SQL Auth

DB_PASSWORD

SQL Server password

-

SQL Auth

Windows Authentication

DB_DOMAIN

Windows domain

-

Windows Auth

DB_USER

Windows username

current user

Windows Auth

DB_PASSWORD

Windows password

-

Windows Auth

Azure AD Authentication

DB_USER

Azure AD username

-

Azure AD (Password)

DB_PASSWORD

Azure AD password

-

Azure AD (Password)

DB_AZURE_CLIENT_ID

Azure AD App Client ID

-

Azure AD (Service Principal)

DB_AZURE_CLIENT_SECRET

Azure AD App Client Secret

-

Azure AD (Service Principal)

DB_AZURE_TENANT_ID

Azure AD Tenant ID

-

Azure AD (Service Principal)

SQL Server Express

DB_INSTANCE_NAME

Named instance (e.g., SQLEXPRESS)

-

Express instances

Security Settings

DB_ENCRYPT

Enable encryption

false

All

DB_TRUST_SERVER_CERTIFICATE

Trust server certificate

false

All

DB_ENABLE_ARITH_ABORT

Enable arithmetic abort

true

All

DB_USE_UTC

Use UTC for dates

true

All

Connection Pool

DB_POOL_MAX

Maximum connections

10

All

DB_POOL_MIN

Minimum connections

0

All

DB_POOL_IDLE_TIMEOUT

Idle timeout (ms)

30000

All

Advanced Settings

DB_CANCEL_TIMEOUT

Cancel timeout (ms)

5000

All

DB_PACKET_SIZE

Packet size (bytes)

4096

All

DB_CONNECTION_STRING

Complete connection string

-

Alternative to individual settings

Security Controls

DB_ALLOW_MODIFICATIONS

Allow DML/DDL operations

false

All

DB_ALLOW_STORED_PROCEDURES

Allow stored procedure execution

false

All

🔧 Connection Configuration Examples

1. 🏠 SQL Server Local (SQL Authentication)

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_AUTHENTICATION_TYPE": "sql",
        "DB_SERVER": "localhost",
        "DB_NAME": "MyDatabase",
        "DB_USER": "sa",
        "DB_PASSWORD": "YourPassword123!",
        "DB_PORT": "1433",
        "DB_ENCRYPT": "false",
        "DB_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

2. 🏢 SQL Server Express (Named Instance)

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_AUTHENTICATION_TYPE": "sql",
        "DB_SERVER": "localhost",
        "DB_INSTANCE_NAME": "SQLEXPRESS",
        "DB_NAME": "MyDatabase",
        "DB_USER": "sa",
        "DB_PASSWORD": "YourPassword123!",
        "DB_ENCRYPT": "false",
        "DB_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

3. 🪟 Windows Authentication

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_AUTHENTICATION_TYPE": "windows",
        "DB_SERVER": "MYSERVER",
        "DB_NAME": "MyDatabase",
        "DB_DOMAIN": "MYDOMAIN",
        "DB_USER": "myuser",
        "DB_PASSWORD": "mypassword",
        "DB_ENCRYPT": "false",
        "DB_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

4. ☁️ Azure SQL Database (Azure AD Password)

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_AUTHENTICATION_TYPE": "azure-ad",
        "DB_SERVER": "myserver.database.windows.net",
        "DB_NAME": "MyDatabase",
        "DB_USER": "user@domain.com",
        "DB_PASSWORD": "userpassword",
        "DB_PORT": "1433",
        "DB_ENCRYPT": "true",
        "DB_TRUST_SERVER_CERTIFICATE": "false"
      }
    }
  }
}

5. 🔐 Azure SQL Database (Service Principal)

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_AUTHENTICATION_TYPE": "azure-ad",
        "DB_SERVER": "myserver.database.windows.net",
        "DB_NAME": "MyDatabase",
        "DB_AZURE_CLIENT_ID": "your-client-id",
        "DB_AZURE_CLIENT_SECRET": "your-client-secret",
        "DB_AZURE_TENANT_ID": "your-tenant-id",
        "DB_PORT": "1433",
        "DB_ENCRYPT": "true",
        "DB_TRUST_SERVER_CERTIFICATE": "false"
      }
    }
  }
}

6. 🔗 Using Connection String

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_CONNECTION_STRING": "Server=localhost;Database=MyDatabase;User Id=sa;Password=YourPassword123!;Encrypt=false;TrustServerCertificate=true;"
      }
    }
  }
}

🔒 Security Features

MCPQL includes comprehensive security controls to prevent accidental database modifications, especially important in production environments.

🛡️ Security Controls

Database Modification Protection

  • DB_ALLOW_MODIFICATIONS: Controls DML/DDL operations (INSERT, UPDATE, DELETE, ALTER, DROP, CREATE)

  • DB_ALLOW_STORED_PROCEDURES: Controls stored procedure execution

  • Default: Both variables default to false for maximum security

Security Status Tool

Use mcp_get_security_status to check current security configuration:

const status = await mcp_get_security_status({});

🔧 Enabling Operations

For Development Environment

{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_SERVER": "localhost",
        "DB_NAME": "MyDatabase",
        "DB_USER": "sa",
        "DB_PASSWORD": "YourPassword123!",
        "DB_ALLOW_MODIFICATIONS": "true",
        "DB_ALLOW_STORED_PROCEDURES": "true"
      }
    }
  }
}
{
  "mcpServers": {
    "mcpql": {
      "command": "npx",
      "args": ["-y", "hendrickcastro/mcpql"],
      "env": {
        "DB_SERVER": "prod-server",
        "DB_NAME": "ProductionDB",
        "DB_USER": "readonly_user",
        "DB_PASSWORD": "secure_password",
        "DB_ALLOW_MODIFICATIONS": "false",
        "DB_ALLOW_STORED_PROCEDURES": "false"
      }
    }
  }
}

🚨 Security Error Messages

When operations are blocked, MCPQL provides clear guidance:

Error: Modification operations are disabled for security.
To enable modifications, configure: DB_ALLOW_MODIFICATIONS=true

Error: Stored procedure execution is disabled for security.
To enable stored procedures, configure: DB_ALLOW_STORED_PROCEDURES=true

📋 Always Allowed Operations

These operations are always permitted regardless of security settings:

  • SELECT queries

  • Table analysis and schema inspection

  • Column statistics and data preview

  • Object search and dependency analysis

  • Database metadata operations

For complete security documentation, see SECURITY.md.

🚨 Troubleshooting Common Issues

Connection Issues

  • "Login failed": Check username/password. For Windows auth, ensure DB_AUTHENTICATION_TYPE=windows

  • "Server was not found": Verify server name and port. For SQL Express, add DB_INSTANCE_NAME

  • "Certificate" errors: For local development, set DB_TRUST_SERVER_CERTIFICATE=true

  • Timeout errors: Increase DB_TIMEOUT or check network connectivity

SQL Server Express Setup

  1. Enable TCP/IP protocol in SQL Server Configuration Manager

  2. Set a static port (usually 1433) or use dynamic port with Browser Service

  3. Configure Windows Firewall to allow SQL Server traffic

  4. Use DB_INSTANCE_NAME=SQLEXPRESS for default Express installations

Azure SQL Database Setup

  1. Create server firewall rules to allow client IP

  2. Use format: server.database.windows.net for server name

  3. Always set DB_ENCRYPT=true and DB_TRUST_SERVER_CERTIFICATE=false

  4. For Service Principal auth, register app in Azure AD and assign permissions

🧪 Testing

Run the comprehensive test suite:

npm test

The test suite includes comprehensive testing of all 10 tools with real database testing and complete coverage.

🏗️ Architecture

Project Structure

MCPQL/
├── src/
│   ├── __tests__/          # Comprehensive test suite
│   ├── tools/              # Modular tool implementations
│   │   ├── tableAnalysis.ts      # Table analysis tools
│   │   ├── storedProcedureAnalysis.ts  # SP analysis tools
│   │   ├── dataOperations.ts     # Data operation tools
│   │   ├── objectSearch.ts       # Search and discovery tools
│   │   ├── types.ts              # Type definitions
│   │   └── index.ts              # Tool exports
│   ├── db.ts               # Database connection management
│   ├── server.ts           # MCP server setup and handlers
│   ├── tools.ts            # Tool definitions and schemas
│   └── mcp-server.ts       # Tool re-exports
├── dist/                   # Compiled JavaScript output
└── package.json           # Dependencies and scripts

Key Features

  • Connection Pooling: Efficient database connection management

  • 🛡️ Robust Error Handling: Comprehensive error handling and validation

  • 📋 Rich Metadata: Detailed results with comprehensive database information

  • 🔧 Flexible Configuration: Environment-based configuration

  • 📊 Optimized Queries: Efficient SQL queries for all operations

📝 Important Notes

  • Object Names: Always use schema-qualified names (e.g., dbo.Users, api.Idiomas)

  • Error Handling: All tools return structured responses with success/error indicators

  • Type Safety: Full TypeScript support with proper type definitions

  • Connection Management: Automatic connection pooling and retry logic

  • Security: Parameterized queries to prevent SQL injection

🤝 Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Make your changes and add tests

  4. Ensure all tests pass (npm test)

  5. Commit your changes (git commit -m 'Add amazing feature')

  6. Push to the branch (git push origin feature/amazing-feature)

  7. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

🏷️ Tags & Keywords

Database: sql-server azure-sql database-analysis database-tools mssql t-sql database-management database-administration database-operations data-analysis

MCP & AI: model-context-protocol mcp-server mcp-tools ai-tools claude-desktop cursor-ide anthropic llm-integration ai-database intelligent-database

Technology: typescript nodejs npm-package cli-tool database-client sql-client database-sdk rest-api json-api database-connector

Features: table-analysis stored-procedures data-preview column-statistics query-execution database-search object-dependencies schema-analysis data-exploration database-insights

Deployment: docker azure-deployment cloud-ready enterprise-ready production-ready scalable secure authenticated encrypted configurable

Use Cases: database-development data-science business-intelligence database-migration schema-documentation performance-analysis data-governance database-monitoring troubleshooting automation


🎯 MCPQL provides comprehensive SQL Server database analysis and manipulation capabilities through the Model Context Protocol. Perfect for database administrators, developers, and anyone working with SQL Server databases! 🚀

Available Tools

11 tools
mcp_execute_procedureC

Execute a SQL Server stored procedure with parameters and return results

ParametersJSON Schema
NameRequiredDescriptionDefault
sp_nameYesFully qualified stored procedure name (schema.name), e.g. "api.usp_BusquedaByIdUnico_v2"
paramsNoParameters to pass to the stored procedure as key-value pairs

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool executes stored procedures and returns results, but lacks details on permissions required, transaction handling, error behavior, or output format. This is a significant gap for a tool that performs database operations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core functionality without unnecessary words. It directly communicates the tool's purpose and scope, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of executing stored procedures in SQL Server, the description is insufficient. With no annotations, no output schema, and incomplete behavioral details, it fails to address critical aspects like security requirements, result formatting, or error handling, leaving significant gaps for an AI agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds minimal value beyond the schema by mentioning 'parameters and return results,' but doesn't provide additional context on parameter formatting, validation, or result structure. Baseline 3 is appropriate given the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Execute') and resource ('SQL Server stored procedure'), specifying it handles parameters and returns results. It distinguishes from generic query execution tools but doesn't explicitly differentiate from sibling 'mcp_execute_query' beyond the stored procedure focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'mcp_execute_query' for direct SQL queries or 'mcp_sp_structure' for examining stored procedures. The description implies usage for stored procedures but offers no context on prerequisites, limitations, or comparative use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_execute_queryC

Execute a raw SQL query and return the results

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe SQL query to execute. IMPORTANT: When referencing objects, use bracketed, schema-qualified names (e.g., SELECT * FROM [dbo].[Users]).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions executing a query and returning results but fails to address critical aspects like whether this is a read-only or write operation, potential risks (e.g., data modification, performance impact), authentication needs, or error handling. For a SQL execution tool, this omission is significant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded, consisting of a single sentence that directly states the tool's purpose. Every word earns its place, with no redundant or unnecessary information, making it highly efficient for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of executing raw SQL queries (which can involve reads, writes, or schema changes) and the absence of both annotations and an output schema, the description is incomplete. It does not cover behavioral traits, return formats, error conditions, or safety considerations, leaving the agent with insufficient context for reliable tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add any parameter-specific information beyond what the input schema provides. Since schema description coverage is 100% (the 'query' parameter is fully documented in the schema), the baseline score of 3 is appropriate. The description neither compensates for gaps nor enhances understanding of the parameter's semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Execute a raw SQL query') and outcome ('return the results'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate this tool from its sibling 'mcp_execute_procedure', which might also execute database operations, leaving some ambiguity about when to choose one over the other.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'mcp_execute_procedure' or other siblings such as 'mcp_preview_data' or 'mcp_quick_data_analysis'. It lacks context about appropriate use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_get_column_statsC

Get comprehensive statistics for a specific column in a table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesFully qualified table name (schema.table), e.g. "api.Idiomas"
column_nameYesName of the column to analyze

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get comprehensive statistics' implies a read-only operation, it doesn't specify whether this requires special permissions, what 'comprehensive' entails (e.g., statistical measures included), performance characteristics, or potential limitations like row count restrictions. The description provides minimal behavioral context beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a tool with two parameters and clear purpose, though it could potentially benefit from slightly more context given the lack of annotations and sibling tool differentiation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a statistical analysis tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'comprehensive statistics' includes (mean, median, distribution, null counts, etc.), doesn't mention performance considerations for large tables, and provides no guidance on how this tool fits within the broader analytical toolkit represented by sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description doesn't add any parameter information beyond what's already in the schema, which has 100% coverage with clear descriptions for both parameters. The baseline score of 3 is appropriate since the schema fully documents the parameters, and the description doesn't need to compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get comprehensive statistics') and target ('for a specific column in a table'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like mcp_table_analysis or mcp_quick_data_analysis, which might offer overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like mcp_table_analysis, mcp_quick_data_analysis, and mcp_preview_data that might offer related analytical functions, there's no indication of when this column-specific statistics tool is preferred or what distinguishes it from broader analysis tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_get_dependenciesC

Get dependencies for a database object (tables, views, stored procedures, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYesFully qualified object name (schema.name), e.g. "api.Idiomas"

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the action ('Get dependencies') but lacks behavioral details such as permissions required, format of returned dependencies (e.g., list, graph), error handling, or rate limits. This is a significant gap for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose without unnecessary details. It could be slightly improved by adding brief context, but it earns its place by being direct and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It does not explain what 'dependencies' entail (e.g., foreign keys, references), the return format, or error cases. For a tool with one parameter but rich potential output complexity, more context is needed to guide the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'object_name' fully documented in the schema. The description adds minimal value beyond the schema by implying the parameter is for a database object, but does not provide additional syntax, examples, or constraints. Baseline 3 is appropriate as the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('dependencies for a database object'), specifying the types of objects (tables, views, stored procedures, etc.). It distinguishes from siblings like mcp_execute_query or mcp_preview_data by focusing on dependency retrieval, but does not explicitly differentiate from all siblings (e.g., mcp_sp_structure might be related).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing an existing object), exclusions, or compare to siblings like mcp_sp_structure or mcp_search_comprehensive, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_get_sample_valuesC

Get sample values from a specific column in a table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesFully qualified table name (schema.table), e.g. "dbo.Users"
column_nameYesName of the column to get sample values from
limitNoMaximum number of distinct values to return

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states the tool 'gets sample values' but doesn't clarify whether this is a read-only operation, if it requires specific permissions, how it handles large datasets, or what the return format looks like. This leaves significant gaps for a tool that interacts with database tables.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of database operations and the lack of both annotations and an output schema, the description is insufficient. It doesn't address behavioral aspects like safety, permissions, or return format, leaving the agent with incomplete context for proper tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already fully documents all three parameters. The description adds no additional meaning beyond what's in the schema—it doesn't explain relationships between parameters or provide usage examples. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get sample values') and target ('from a specific column in a table'), making the purpose immediately understandable. It distinguishes this from siblings like mcp_get_column_stats (statistics) and mcp_preview_data (full data preview), though it doesn't explicitly name these alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like mcp_get_column_stats or mcp_preview_data. The description implies usage for sampling column values but offers no context about prerequisites, typical scenarios, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_get_security_statusB

Get current security configuration and status for database operations

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves security configuration and status, implying a read-only operation, but doesn't specify whether it requires special permissions, what format the output is in, or if there are rate limits. This leaves significant gaps for a security-related tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (security-related with no output schema) and lack of annotations, the description is minimally adequate but incomplete. It states what the tool does but doesn't cover behavioral aspects like output format or permissions needed, which are crucial for security operations. Without an output schema, more detail on return values would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, but since there are no parameters, this is acceptable. Baseline is 4 for 0 parameters, as the schema fully covers the absence of inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current security configuration and status for database operations'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'mcp_get_dependencies' or 'mcp_get_column_stats', which also retrieve metadata but for different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for security checks, or comparisons to sibling tools like 'mcp_execute_query' or 'mcp_table_analysis', leaving the agent to infer usage based on the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_preview_dataC

Get a preview of data from a SQL Server table with optional filters

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesFully qualified table name (schema.table), e.g. "dbo.Users"
filtersNoOptional filters as column-value pairs, e.g. {"Status": "Active"}
limitNoMaximum number of rows to return

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states it 'gets a preview' without disclosing behavioral traits like whether it's read-only, potential performance impacts, authentication needs, or rate limits. It lacks details on what 'preview' entails (e.g., sample rows, limited columns) beyond the schema's limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Get a preview of data') and adds key detail ('with optional filters'). There's no wasted wording, making it appropriately sized and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool with 3 parameters and potential complexity. It doesn't explain return values, error handling, or how 'preview' differs from full queries, leaving gaps in understanding the tool's behavior and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters like 'table_name' and 'filters'. The description adds minimal value by mentioning 'optional filters' but doesn't elaborate on semantics beyond what the schema provides, such as filter syntax examples or preview-specific constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get a preview') and resource ('data from a SQL Server table'), specifying it's for previewing with optional filters. However, it doesn't distinguish this tool from sibling tools like 'mcp_get_sample_values' or 'mcp_quick_data_analysis', which might offer similar data retrieval functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'optional filters' but provides no guidance on when to use this tool versus alternatives like 'mcp_execute_query' for more complex queries or 'mcp_get_sample_values' for sampling. There's no explicit when/when-not usage context or sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_quick_data_analysisB

Quick statistical analysis of a table including row count, column distributions, and top values

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesFully qualified table name (schema.table), e.g. "dbo.Users" or "sales.OrderItems"
sample_sizeNoSample size for statistics calculation

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'quick' analysis and sample-based statistics, which hints at performance characteristics, but doesn't clarify critical aspects like whether this is a read-only operation, potential impact on database performance, error handling, or output format. For a statistical analysis tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Quick statistical analysis of a table') and lists key outputs. There's no wasted verbiage or redundancy, making it highly concise and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (statistical analysis with sampling), lack of annotations, and no output schema, the description is minimally adequate. It covers the what (analysis types) but misses the how (behavioral traits) and why (usage context). It doesn't explain return values or error conditions, leaving the agent to infer from the tool name and parameters alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description doesn't explicitly mention parameters, but it implies the need for a table name through context ('analysis of a table'). The input schema has 100% description coverage, with clear documentation for both 'table_name' and 'sample_size'. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description adds minimal value beyond what's already in the structured schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Quick statistical analysis of a table including row count, column distributions, and top values.' It specifies the verb ('analysis') and resource ('table'), and lists specific statistical outputs. However, it doesn't explicitly differentiate from sibling tools like 'mcp_get_column_stats' or 'mcp_table_analysis', which likely offer similar functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools that appear related (e.g., 'mcp_get_column_stats', 'mcp_table_analysis', 'mcp_preview_data'), there's no indication of what makes this 'quick' analysis distinct or when it's preferred over other options. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_search_comprehensiveC

Search across database objects by name and definition with configurable criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesSearch pattern or text to find
object_typesNoTypes of objects to search in
search_in_namesNoWhether to search in object names
search_in_definitionsNoWhether to search in object definitions/source code

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions 'search across database objects' but doesn't disclose behavioral traits such as performance implications, result limits, pagination, authentication requirements, or error handling. For a search tool with no annotation coverage, this leaves critical operational context unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('search across database objects') and adds qualifying details without waste. Every word earns its place, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a search tool with 4 parameters. It lacks details on result format, error cases, or behavioral constraints, which are crucial for effective tool use. The high schema coverage helps, but overall context remains insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal value beyond the schema by hinting at 'configurable criteria' and 'by name and definition', which aligns with the schema's parameters but doesn't provide additional syntax or usage details. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('search') and resource ('database objects'), specifying scope ('by name and definition with configurable criteria'). It distinguishes from siblings like mcp_execute_procedure or mcp_preview_data by focusing on search functionality, though it doesn't explicitly differentiate from potential search-related siblings not listed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives is provided. The description mentions 'configurable criteria' but doesn't specify scenarios, prerequisites, or exclusions. Given siblings like mcp_quick_data_analysis or mcp_table_analysis that might overlap in use cases, this lack of guidance is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_sp_structureC

Analyze SQL Server stored procedure structure including parameters, dependencies, and source code

ParametersJSON Schema
NameRequiredDescriptionDefault
sp_nameYesFully qualified stored procedure name (schema.name), e.g. "eco.usp_Insert_EconomicMovement_v2"

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, if it requires specific permissions, potential performance impact, or what the output format looks like (e.g., structured data vs raw text). The description only states what is analyzed, not how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. Every word contributes meaning without redundancy. However, it could be slightly more structured by separating analysis aspects with commas or bullets for better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the analysis returns (e.g., a report, structured data, or raw code), nor does it cover behavioral aspects like error conditions or limitations. Given the complexity of analyzing stored procedures, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'sp_name' fully documented in the schema. The description adds no additional parameter semantics beyond implying it analyzes the given stored procedure. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'analyze' and the resource 'SQL Server stored procedure structure', specifying what aspects are analyzed (parameters, dependencies, source code). It distinguishes from obvious siblings like mcp_execute_procedure (which runs procedures) and mcp_get_dependencies (which focuses only on dependencies), though not all sibling distinctions are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over mcp_get_dependencies for dependency analysis, mcp_table_analysis for broader analysis, or mcp_search_comprehensive for discovery. No prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_table_analysisC

Comprehensive SQL Server table analysis including structure, columns, keys, indexes, and constraints

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesFully qualified table name (schema.table), e.g. "dbo.Users" or "api.Idiomas"

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions 'comprehensive analysis' and lists components, it doesn't describe what the analysis actually returns, whether it's a read-only operation, performance characteristics, or any limitations. For a tool with no annotation coverage, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that packs substantial information about what the tool analyzes. It's appropriately sized for a single-parameter tool and front-loads the key information about being a comprehensive SQL Server table analysis.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a table analysis tool with no annotations and no output schema, the description provides adequate but incomplete context. It lists what components are analyzed but doesn't describe the return format, depth of analysis, or how results are structured. Given the complexity implied by 'comprehensive' analysis and lack of structured output documentation, there are significant gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the single parameter 'table_name' well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides. With high schema coverage and only one parameter, the baseline score of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Comprehensive SQL Server table analysis including structure, columns, keys, indexes, and constraints' - it specifies the verb ('analysis') and resource ('SQL Server table') with specific components analyzed. However, it doesn't explicitly differentiate from sibling tools like mcp_get_column_stats or mcp_sp_structure, which appear related to table analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools that appear related to table analysis (mcp_get_column_stats, mcp_get_dependencies, mcp_sp_structure), there's no indication of when this comprehensive analysis is preferred over more specific tools or what distinguishes its scope from them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 11 tool updates
    • First observedmcp_execute_procedure
    • First observedmcp_execute_query
    • First observedmcp_get_column_stats
    • First observedmcp_get_dependencies
    • First observedmcp_get_sample_values
    • First observedmcp_get_security_status
    • First observedmcp_preview_data
    • First observedmcp_quick_data_analysis
    • First observedmcp_search_comprehensive
    • First observedmcp_sp_structure
    • First observedmcp_table_analysis

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes, but some overlap exists: mcp_quick_data_analysis and mcp_table_analysis both analyze tables, which could cause confusion. However, mcp_quick_data_analysis focuses on statistical analysis while mcp_table_analysis covers structure, so descriptions help differentiate them. Other tools like mcp_execute_procedure and mcp_execute_query are clearly distinct.

Naming Consistency5/5

All tools follow a consistent mcp_verb_noun naming pattern with snake_case throughout. The verbs are descriptive (e.g., execute, get, preview, search, analyze), and the nouns clearly indicate the target (e.g., procedure, query, column_stats, dependencies). This uniformity makes the tool set predictable and easy to navigate.

Tool Count5/5

With 11 tools, the count is well-scoped for a SQL Server database management server. Each tool serves a specific function, from executing queries and procedures to analyzing data and structures, without feeling bloated or sparse. This number allows comprehensive coverage of common database tasks without overwhelming users.

Completeness4/5

The tool set covers a wide range of SQL Server operations, including query execution, data analysis, structure inspection, and security checks. Minor gaps exist, such as lacking tools for database creation, backup, or user management, but these are not core to the analysis and execution focus. Agents can handle most database interaction workflows effectively with this surface.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.
    3
    -
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables executing SQL queries and managing connections with Microsoft SQL Server databases.
    1
    3,338
    6
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides comprehensive access to Microsoft SQL Server databases, enabling Language Models to inspect schemas, execute queries, manage database objects, and perform advanced database operations.
    8
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server for interacting with MSSQL and PostgreSQL databases, offering tools for schema exploration and SQL execution. It features configurable query modes for safety and supports advanced authentication methods like Windows Auth and SSL.
    17
    MIT

Latest Blog Posts

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/hendrickcastro/MCPQL'

If you have feedback or need assistance with the MCP directory API, please join our Discord server