Skip to main content
Glama

Run a read-only SQL query via webget

webget_run_query
Read-only

Execute read-only SQL queries on a webget database replica with mandatory human approval, returning rows and columns from SELECT, SHOW, EXPLAIN, or DESCRIBE.

Instructions

Executes a read-only SQL query against a webget database server (a read-replica MySQL DB, per company policy) and returns the result as rows/columns. Only SELECT-style statements are allowed; use webget_list_databases first to find the exact database name. Requires a prior login (run npm run login in the webget-mcp project once) and inherits webget's own row/size/time limits. Before running, the human is always shown the exact query and must explicitly allow it — this is enforced by the server itself and cannot be bypassed by an "always allow" client setting.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesA single read-only SQL statement (SELECT / SHOW / EXPLAIN / DESCRIBE).
databaseYesExact database server name, e.g. "db.saas.increff.com". See webget_list_databases.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations (readOnlyHint=true, destructiveHint=false) already establish the read-only safety profile; the description adds valuable context beyond that: the mandatory prior login, inherited row/size/time limits, and the enforced human approval step that cannot be bypassed. No contradiction exists; the description enriches behavioral understanding.

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 multi-sentence but every clause carries weight: purpose, constraints, prerequisites, approval flow. It is front-loaded with the core action and then elaborates. No filler, though slightly longer than strictly necessary, which is justified given the safety-critical approval aspect.

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

Completeness4/5

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 must cover return values; it states 'returns the result as rows/columns' which is minimal but acceptable. It also covers authentication, limits, and the human-approval mechanism. It does not detail error handling or result formatting nuances, but for a read-only query tool with these constraints, it is largely complete.

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?

Schema coverage is 100% (both parameters are described), so the baseline is 3. The description adds extra guidance by explaining the database parameter must come from webget_list_databases and clarifying the query constraint to 'SELECT-style statements only', which goes beyond the schema's generic wording and aids correct invocation.

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?

States a specific verb ('executes'), resource (read-only SQL query on webget database server), and scope (read-only, SELECT-style). It also names the sibling tool (webget_list_databases) and distinguishes by instructing to use that first, so an agent can clearly tell them apart.

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

Usage Guidelines5/5

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

Explicitly instructs to run webget_list_databases first to find the exact database name, and states prerequisites (npm run login) and limitations (row/size/time limits). It also clearly conveys that only SELECT-style statements are allowed, implicitly routing the agent away from write operations. No ambiguity remains about when to use this tool versus the alternative.

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

Deploy Server

Other Tools