lolosqltools
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lolosqltoolsvalidate table name 'CustomerOrders'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
██╗ ██████╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ ████████╗ ██████╗ ██████╗ ██╗ ███████╗
██║ ██╔═══██╗██║ ██╔═══██╗██╔════╝██╔═══██╗██║ ╚══██╔══╝██╔═══██╗██╔═══██╗██║ ██╔════╝
██║ ██║ ██║██║ ██║ ██║███████╗██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ███████╗
██║ ██║ ██║██║ ██║ ██║╚════██║██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ╚════██║
███████╗╚██████╔╝███████╗╚██████╔╝███████║╚██████╔╝███████╗ ██║ ╚██████╔╝╚██████╔╝███████╗███████║
╚══════╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚══════╝ ╚══▀▀═╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝MCP server that validates, formats, and generates SQL objects following BSG Institute standardization rules — integrated with Claude Code.
Tools
Tool | Description |
| Validates names for tables, views, SPs, functions, triggers, fields, and constraints |
| Full structural validation with compliance score (0–100) |
| Detects anti-patterns: missing TRY/CATCH, SELECT *, implicit cursors, etc. |
| Verifies mandatory audit fields (Estado, UsuarioCreacion, FechaCreacion, etc.) |
| Generates a complete BSG-compliant SQL template for any object type |
| Applies BSG formatting: keyword casing, leading-comma columns, clause indentation |
| Generates PascalCase-based table aliases with conflict detection |
| Generates a formatted production deployment request email |
| Generates a formatted database access request email |
| Returns BSG standardization rules filtered by object type and/or topic |
Related MCP server: MySQL MCP Server
Requirements
Node.js 18 or higher
Claude Code (CLI)
Installation
Windows (PowerShell)
Clone or download this repository
Run the installer:
.\install.ps1Custom install path:
.\install.ps1 -InstallPath "D:\tools\lolosqltools"Restart Claude Code
Manual installation
npm install
npm run buildThen register the MCP in ~/.claude/.mcp.json:
{
"mcpServers": {
"lolosqltools": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"]
}
}
}Restart Claude Code.
CLAUDE.md instructions
Add this block to your ~/.claude/CLAUDE.md to make Claude use LOLOSQLTOOLS automatically:
## LOLOSQLTOOLS MCP instructions for CLAUDE.md
The `lolosqltools` MCP is ALWAYS available. For any SQL object (table, view, SP, function, trigger), you MUST use it:
| Situation | Tool |
|---|---|
| Create a new SQL object | `generate_template` first, then deliver to user |
| Validate an object name | `validate_object_name` |
| Review an existing SQL block | `validate_sql_object` + `check_performance_patterns` |
| Format SQL | `format_sql` |
| Suggest a table alias | `suggest_alias` |
| Verify audit fields | `check_audit_fields` |
| Generate production deployment email | `generate_production_request` |
| Generate access request | `generate_access_request` |
| User asks about a BSG rule | `get_rules` |
**Critical rule**: NEVER generate SQL manually without consulting this MCP first.Development
npm run dev # Run with tsx (no build needed)
npm run build # Compile TypeScript → dist/
npm start # Run compiled outputLicense
MIT
Available Tools
10 toolscheck_audit_fieldsB
Validates that a CREATE TABLE statement includes all mandatory BSG audit fields (Estado, UsuarioCreacion, UsuarioModificacion, FechaCreacion, FechaModificacion, RowVersion) with correct types and a properly named PRIMARY KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The CREATE TABLE SQL statement to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the validation criteria but not what a failure looks like, whether it throws or returns findings, or whether it is a pure read operation — none of which the annotations supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and the scope, with the enumerated field list earning its place as the actual validation contract. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validator with no annotations and no output schema, the description covers the input contract well but leaves the result contract (pass/fail shape, list of violations) entirely unstated, which is a real gap for an agent interpreting the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'sql' parameter, so the schema already documents it as the CREATE TABLE statement to check. The description adds no format, dialect, or size details beyond that, fitting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Validates) and a narrow resource (CREATE TABLE statements containing BSG audit fields), then enumerates the exact fields checked. This scopes it tightly enough to be distinguished from the broader sibling validate_sql_object without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states what is validated but never when to call it versus validate_sql_object or validate_object_name, nor any prerequisite (e.g., run after generating a template). Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_performance_patternsA
Detects SQL anti-patterns and performance bad practices against BSG standards. Returns categorized violations sorted by severity (CRITICAL > HIGH > MEDIUM > LOW).
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL text to analyze for performance anti-patterns | |
| context | No | Context filter: run only patterns applicable to this object type. ALL runs every pattern. | ALL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does disclose output behavior (categorized, sorted CRITICAL > HIGH > MEDIUM > LOW) and that it checks against BSG standards, which is useful. However, it says nothing about whether this is read-only (implied but unstated), performance cost, or whether it halts on first error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with zero waste: purpose first, then return contract. Front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter analysis tool with no annotations and no output schema, the description covers the essentials: what it detects, the standard it checks against, and the return shape (categorized, severity-sorted). The main missing piece is explicit guidance on when to choose this over its sibling validators.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are fully documented in the schema, including the context enum semantics ('ALL runs every pattern'). The description adds no parameter detail beyond what the schema provides, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (detects) and resource (SQL anti-patterns / performance bad practices) against a named standard (BSG standards). Clearly distinguishable from siblings like validate_object_name or validate_sql_object, which validate structural/naming correctness rather than performance patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly frames usage via the 'context' enum, which tells the agent they can scope to QUERY/VIEW/SP/ALL, but the description itself gives no explicit when-to-use guidance or routing to sibling validators. Adequate but with a clear gap: an agent can't tell from the description why it would pick this over validate_sql_object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
format_sqlA
Applies BSG-standard formatting to SQL: uppercases keywords, reformats SELECT columns to leading-comma style, normalizes clause indentation (FROM/WHERE/JOIN), separates AND/OR conditions to their own lines, normalizes BEGIN...END indentation to 4 spaces, and removes inline -- comments from the code body.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL text to format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that keywords are uppercased, commas repositioned, indentation normalized, AND/OR split onto lines, and inline -- comments stripped from the body. It does not state idempotency, error behavior on malformed SQL, or whether the formatted text is returned as a string, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with the core action first, followed by a tight enumeration of rules. The list is long but every clause carries information; no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool, the description is nearly sufficient: it fully specifies the transformation semantics. It omits the return shape and failure mode for unparseable SQL, which are the only meaningful remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single parameter ('sql'), so the schema already explains the input. The description adds no format/syntax details beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Applies BSG-standard formatting to SQL') and then enumerates the exact transformations performed. No sibling tool does SQL formatting, and the enumerated rules make the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor on prerequisites such as whether the input must already be valid/parseable SQL. The usage is inferable from the name, but nothing is stated explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_access_requestB
Generates a formatted database access request email following BSG's mandatory format. Groups objects by type, validates permissions, and checks compliance with BSG access policy.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | List of database objects requiring access | |
| database | No | Target database name | integraDB |
| solicitante | Yes | Name of the person requesting access | |
| project_area | Yes | Project or area associated with the access request | |
| justification | Yes | Technical justification for the access request |
TDQS
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 does disclose useful behavior: grouping objects by type, validating permissions, and checking BSG access policy compliance. However, it doesn't say whether it produces side effects (e.g., sends the email or only formats it), what the output looks like, or whether validation failures block generation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the primary action and followed by three concrete behavioral clauses. No wasted words, though the sentence packs several distinct claims that could be structured more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a 5-parameter generation tool with full schema coverage and no output schema. However, with no annotations and no output schema, it should clarify whether the tool returns an email body, sends the email, or where the formatted request is delivered. The compliance-checking behavior hints at possible failure modes that are not elaborated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is documented in the schema. The description adds no additional parameter semantics beyond what the schema already provides. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (generates a formatted database access request email) and adds behavioral scope (groups by type, validates permissions, checks compliance). It doesn't explicitly differentiate from siblings like generate_production_request or generate_template, which is a missed opportunity given the crowded sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description says what the tool does but not when an agent should choose it over generate_production_request, generate_template, or the validation siblings. For a generation tool surrounded by similar-sounding generators, this is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_production_requestB
Generates a formatted production deployment request email following BSG's mandatory format. Includes automatic warnings for schedule issues, schema problems, and BSG policy compliance.
| Name | Required | Description | Default |
|---|---|---|---|
| db_origin | No | Source database name | integraDBData |
| solicitante | Yes | Name of the person making the request | |
| time_window | No | Time window for deployment e.g. '18:00 - 20:00 hrs' (optional) | |
| validations | Yes | List of validations performed in DEV environment | |
| db_destination | No | Target database name | integraDB |
| requirement_id | Yes | Requirement identifier (e.g. 'OP-1234') | |
| scheduled_date | No | Scheduled deployment date in YYYY-MM-DD format (optional) | |
| script_filename | No | Attached script filename (optional) | |
| change_description | Yes | Brief and direct description of the DDL change | |
| requirement_description | Yes | Brief description of the requirement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose real behavior beyond the schema: automatic warnings for schedule issues, schema problems, and BSG policy compliance. However, it omits key behavioral facts an agent would want — whether the email is merely rendered or actually dispatched, any permission requirements, and whether missing optional fields (scheduled_date, time_window) trigger those warnings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and the warning behavior as supporting detail. No filler or redundancy, though the second sentence crams three distinct warning categories into one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, 5-required generation tool with no annotations and no output schema, the description covers the artifact and one behavioral trait but leaves the return format (rendered text vs. file), and the interaction between required fields and warning generation, unexplained. Adequate but with visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters including defaults and formats. The description adds no parameter-level guidance (e.g., how validations interact with the policy warnings), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Generates a formatted production deployment request email following BSG's mandatory format.' This clearly distinguishes it from a generic 'generate_template' or the sibling 'generate_access_request', which produces a different artifact. It stops short of a 5 only because the sibling differentiation is implicit rather than named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the artifact produced (production deployment requests) but the description never states when to use this versus generate_access_request or generate_template, nor any prerequisites. There are no explicit exclusions or alternative-selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_templateB
Generates a complete, BSG-compliant SQL template for a given object type. Includes all mandatory fields, documentation headers, and constraint naming.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Base name WITHOUT prefix (e.g., 'Alumno' → T_Alumno, SP_TAlumno_Insertar) | |
| action | No | For SP: the DML action | |
| author | Yes | Author name for documentation header | |
| fields | No | For TABLE: field definitions (audit fields are auto-appended) | |
| schema | Yes | SQL schema name (e.g., 'com', 'mkt', 'rrhh') | |
| returns | No | For SP/FUNCTION: what the object returns | |
| parameters | No | For SP/FUNCTION: parameter definitions | |
| table_name | No | For TRIGGER: the table name the trigger belongs to | |
| description | Yes | Description for documentation header | |
| object_type | Yes | Type of SQL object to generate | |
| trigger_action | No | For TRIGGER: which DML actions fire the trigger |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the artifact's contents (mandatory fields, documentation headers, constraint naming), but says nothing about whether the generator only returns text or persists anything, whether output is deterministic/idempotent, or what the returned structure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the core purpose leads and the artifact inventory follows. Nothing is repeated and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An 11-parameter generator with no output schema and no annotations leaves the description under-burdened: it never explains the return format (text? file path?), nor how output varies by object_type, nor that this is a non-mutating code-generation step.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, including the conditional fields for SP/FUNCTION/TRIGGER. The description adds no extra parameter meaning beyond the baseline, and notably does not clarify how object_type drives which conditional params are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generates) and a concrete resource (a BSG-compliant SQL template for a given object type), and enumerates what the artifact contains. It does not differentiate itself from siblings like get_rules or validate_sql_object, which a user generating a template would plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus fetching rules (get_rules) or validating a finished object (validate_sql_object). The description assumes a user already knows they want a generated template and offers no conditions, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rulesC
Retrieves BSG SQL standardization rules, optionally filtered by object type and/or topic.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Filter rules by topic category | |
| object_type | No | Filter rules by SQL object type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says 'Retrieves' (read operation) but doesn't state whether results are cached, paginated, or exhaustive, nor what 'all' returns. For a rules-lookup tool with zero annotation coverage, this is sparse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. Verb and resource lead, and the optional filtering is mentioned last. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema tool in a crowded sibling set, the description is too thin. It doesn't explain the return shape (list of rules?), whether 'topic=all' is the default without filters, or how results should be interpreted. More context is needed to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with enums and per-parameter descriptions, so the schema fully documents both filters. The description only adds 'optionally filtered by object type and/or topic', which is already implied by optional required=[] and the schema descriptions. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieves) and resource (BSG SQL standardization rules). The purpose is clear, but it doesn't distinguish this tool from siblings like check_performance_patterns or validate_object_name, which also concern rules/standards. A reader can understand what it does but not precisely why it's different from adjacent tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The optional filtering is mentioned, but there's no context about when an agent should call this versus the many validation and generation siblings. The description offers no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_aliasA
Generates a BSG-standard table alias from a SQL object name. The alias is built from the first letter of each PascalCase word after stripping the prefix. Detects conflicts with existing aliases and suggests alternatives.
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes | The SQL object name (e.g., 'T_FaseOportunidad', 'T_ActividadDetalle') | |
| existing_aliases | No | Already-used aliases in the query context (to detect conflicts) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses two key behaviors: the alias generation algorithm and conflict detection with alternatives. But it doesn't say what the output looks like (a single string? a list of alternatives?), whether it's deterministic, or failure modes for invalid names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly-written sentences, front-loaded with the core purpose, then the algorithm, then the conflict-detection behavior. Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param helper tool with 100% schema coverage, the description covers the key behaviors. However, with no annotations and no output schema, the return shape and error handling are unknown. An agent would not know whether it gets one alias or multiple alternatives back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 with examples. The description explains the algorithm that consumes table_name but adds no syntax or format detail beyond what the schema already provides. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: 'Generates a BSG-standard table alias from a SQL object name.' This is specific and distinguishable from siblings like validate_object_name or generate_template. The mechanism (first letter of each PascalCase word after stripping prefix) adds further precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: it's for generating aliases when writing SQL, and the existing_aliases parameter signals conflict detection. However, there's no explicit when-to-use guidance or alternatives mentioned among the siblings. The description doesn't say when you'd choose this over manually aliasing or another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_object_nameB
Validates a SQL object name against BSG Institute naming standards. Returns a list of violations with rule references and suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The SQL object name to validate | |
| context | No | Optional context: parent table name for constraint validation (e.g., 'T_Alumno') | |
| object_type | Yes | Type of SQL object being validated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the output shape ('list of violations with rule references and suggestions') and the governing standard. It does not state that the tool is purely read-only/non-mutating, nor whether it fails or returns empty on a valid name, so the behavioral picture is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the action and the standard front-loaded and the return value second. Nothing needs to be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description's summary of return values is valuable and necessary. But for a validator with an enum-rich, multi-type parameter and a near-identical sibling, the description omits the distinction from validate_sql_object and omits how to obtain the referenced rules via get_rules.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name, context, and the 12-value object_type enum; the baseline of 3 applies. The description adds no parameter-level detail beyond what the schema provides, such as name-length limits or which object types are actually covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (validates) and resource (SQL object name) plus the standard applied (BSG Institute naming standards) and the return shape. It does not, however, distinguish itself from the sibling validate_sql_object, leaving the agent to infer the boundary between naming validation and broader SQL validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer this over validate_sql_object or get_rules, and no explanation of when the optional 'context' parameter should be supplied. The agent gets a capability statement but no routing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_sql_objectB
Performs full structural validation of a SQL block (CREATE TABLE, VIEW, SP, FUNCTION, TRIGGER) against BSG standards. Returns a compliance score (0-100) and a list of violations with severity and suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The full SQL block to validate | |
| schema | No | Expected schema (e.g., 'com', 'mkt') — optional. If provided, verifies the object uses this schema. | |
| object_type | Yes | Type of SQL object being validated |
TDQS
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 does disclose the return shape (a 0-100 compliance score plus violations with severity and suggestions), which is valuable given no output schema exists. It does not state whether the tool is read-only, whether validation is exhaustive or partial when multiple rule sets apply, or how violations map to the 'BSG standards' it references.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler: the first states what is validated and over which object types, the second states what is returned. Purpose and output are front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only validation tool with full schema coverage, the description is largely complete: it names the rule set, the accepted object types, and the output contents, which compensates for the missing output schema. The gap is usage routing among sibling validators, which is left entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema, including the enum and the optional schema parameter. The description adds no format, syntax, or constraint detail beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Performs full structural validation of a SQL block') and enumerates the object types it handles, so the scope is unambiguous. It does not, however, differentiate itself from close siblings such as validate_object_name or check_audit_fields, leaving the agent to infer which validator to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of any alternative among the many sibling validation tools. The agent gets no signal on when this full-structural check should be chosen over the narrower checks.
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.
10 tool updates
v1.0.0- First observed
check_audit_fields - First observed
check_performance_patterns - First observed
format_sql - First observed
generate_access_request - First observed
generate_production_request - First observed
generate_template - First observed
get_rules - First observed
suggest_alias - First observed
validate_object_name - First observed
validate_sql_object
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: validation (check_audit_fields, validate_object_name, validate_sql_object), generation (generate_template, suggest_alias, generate_production_request, generate_access_request), retrieval (get_rules), formatting (format_sql), and performance checks (check_performance_patterns). No two tools appear to perform the same action, and their boundaries are well-defined.
All tool names consistently use the verb_noun pattern (e.g., check_audit_fields, get_rules, validate_object_name, generate_template). There is no mixing of conventions like camelCase or inconsistent verb styles.
The server provides 10 tools, which is appropriate for its domain of SQL standardization and validation. Each tool covers a distinct, necessary operation, and none appear redundant or superfluous.
The tool surface covers key operations for SQL standardization: validation, template generation, formatting, rule retrieval, alias suggestion, and request generation. However, there is no explicit tool for updating or deleting SQL objects, and no tool for retrieving all validation results at once, though agents can work around these gaps by combining existing tools.
Maintenance
Related MCP Connectors
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Deterministic safety, correctness & cost gate that vets Postgres SQL before your AI agent runs it.
Generate, fix, explain and run read-only SQL on PostgreSQL, MySQL and SQL Server
DBRE-grade SQL analysis inside any MCP client. No connection. No install. Paste a query.
Related MCP Servers
- AlicenseAqualityDmaintenanceA SQL Server CLI and MCP server for Claude Code that supports standard SQL Server authentication for database interaction and management. It enables users to perform schema exploration, execute queries, and manage data records with built-in SQL injection prevention.125MIT
- AlicenseNot gradedqualityDmaintenanceProvides structured MySQL database operations for Claude Desktop, converting natural language requests into safe, parameterized queries.381 npm1MIT
- FlicenseAqualityDmaintenanceEnables natural language to SQL queries on MSSQL databases via Claude, with safe SELECT-only execution and schema discovery.3-
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code and other MCP clients to interact with Microsoft SQL Server databases through standardized tools for query execution, schema exploration, table management, and stored procedure execution.64 npm1MIT