Skip to main content
Glama
ddiax09

ASPEL SAE MCP Server

by ddiax09

query_sae_read_only

Execute safe read-only SQL SELECT queries on ASPEL SAE Firebird databases to retrieve inventory, warehouse, sales, and client data. Automatic protections block writes and limit rows.

Instructions

Ejecuta una consulta SQL SELECT arbitraria de SOLO LECTURA sobre la base de datos Firebird 2.5.

PROTECCIONES AUTOMÁTICAS:

  • Valida mediante AST que NO contenga sentencias INSERT, UPDATE, DELETE, DROP, ALTER ni EXECUTE.

  • Rechaza inyección de sentencias múltiples con punto y coma.

  • Inyecta automáticamente la cláusula 'FIRST N' de Firebird 2.5 para evitar desbordes.

Args: sql_query: Sentencia SELECT a ejecutar. max_rows: Límite de filas (máx 200 por defecto).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
max_rowsNo
sql_queryYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing automatic protections: AST validation, rejection of INSERT/UPDATE/DELETE/DROP/ALTER/EXECUTE, rejection of semicolon-based multi-statement injection, and automatic injection of Firebird 2.5 'FIRST N' to prevent overflows. This is meaningful behavioral context beyond the basic 'read-only' label.

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 well-structured with a clear opening purpose, a concise protections list, and an args section. It is appropriately sized and front-loaded with the most important behavioral constraints. Minor redundancy exists between 'SOLO LECTURA' and the protections list, but it does not hurt clarity.

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?

The description is adequate for a two-parameter raw query tool with an output schema present, and the safety protections are well covered. However, it lacks explicit usage guidance against siblings, a precise explanation of max_rows behavior (especially null/default semantics), and any example or error-handling hint, which weakens completeness for an agent deciding how to invoke it.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only gives minimal, partly ambiguous semantics. 'sql_query' is described as a SELECT statement, which is helpful, but 'max_rows: Límite de filas (máx 200 por defecto)' is unclear and appears inconsistent with the schema default of null, leaving the agent unsure whether null means no limit, a default of 200, or a cap.

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

Purpose5/5

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

The description states a specific action ('Ejecuta una consulta SQL SELECT arbitraria') on a specific resource ('base de datos Firebird 2.5') with an explicit read-only scope. This clearly distinguishes it from the sibling tools, which are fixed-purpose warehouse/product/document endpoints.

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

Usage Guidelines3/5

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

The description implies usage: run arbitrary SELECT queries when standard tools are insufficientestrategia. However, it does not explicitly say when not to use it or compare it to the sibling tools, so the guidance remains implicit rather than direct.

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