Skip to main content
Glama

Istanbul MCP

Sınırlı açık veri SQL sorgusu

istanbul_datastore_query
Read-onlyIdempotent

Run a bounded SELECT over records from one allowlisted CKAN resource.

SQLite dialect: use table records and published column names. GROUP BY and
aggregates are supported; no writes, arbitrary functions or application DB.
A complete bounded capture is required, never partial counts. The server
enforces an outer result limit (default 20, max 100) even if SQL omits LIMIT.
Only resources configured in CKAN_SQL_ALLOWED_RESOURCE_IDS are available.
Local query syntax and bounds: https://github.com/Batu1-1an/istanbulmcp/blob/main/docs/datastore-sql.md
Source API: https://docs.ckan.org/en/latest/maintaining/datastore.html

Input Schema

NameRequiredDescriptionDefault
sqlYes
limitNo
resource_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes beyond them by disclosing the server-side outer result limit (default 20, max 100) that applies even when SQL omits LIMIT, and the allowlist gate. It does not describe error behavior or the shape of returned rows, but for a read-only tool this is solid added context.

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 core statement is front-loaded and the body is compact bullets of constraints, with two reference links at the end. The phrase 'A complete bounded capture is required, never partial counts' is cryptic and costs a line without clearly earning it.

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?

For a 3-parameter SQL tool with no output schema, the description covers dialect, permitted table/columns, allowlisting, and result caps — enough to call it correctly. Remaining gaps are the role of the `limit` field and what the response looks like, which are secondary.

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 0%, so all three parameters (sql, limit, resource_id) rely on the description. It adds genuine meaning for sql (table name 'records', published column names, aggregates allowed) and for resource_id (must be allowlisted), but never explains the `limit` parameter or how it interacts with the enforced max of 100.

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 lead sentence gives a specific verb and resource: a bounded SELECT over records from an allowlisted CKAN resource, plus the SQLite dialect constraint. That is clearly a SQL-query tool, though the description never distinguishes it from the sibling istanbul_query_resource, so the agent must guess which one to use.

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

Usage Guidelines4/5

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

It states real preconditions (resource must be in CKAN_SQL_ALLOWED_RESOURCE_IDS) and exclusions (no writes, no arbitrary functions, no application DB), plus a directive that a complete bounded capture is required rather than partial counts. What is missing is explicit routing against the sibling query tool.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.