Skip to main content
Glama

Edmonton Query

edmonton_query
Read-onlyIdempotent

Run a raw SoQL query against any Edmonton open-data resource (data.edmonton.ca) by its Socrata id (8-char like "ukww-xkmj"). Full SoQL: where/select/group/order/limit/offset. Use edmonton_datasets to find a resource id, or edmonton_recent for the common ones.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
groupNoSoQL $group (e.g. "incident_category").
limitNoMax rows (default 100, max 5000).
orderNoSoQL $order (e.g. "incident_datetime DESC").
whereNoSoQL $where filter (e.g. "incident_year=2025").
offsetNoRow offset for paging.
selectNoSoQL $select (e.g. "incident_category, count(*)").
_apiKeyNoOptional — your own Socrata app token for higher rate limits. Omit to use the keyless endpoint.
resource_idYesSocrata resource id, e.g. "ukww-xkmj" (police incidents).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds useful context about SoQL flexibility and the requirement of a Socrata id, enhancing awareness of tool behavior beyond annotations without contradicting them.

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?

Two concise sentences front-loaded with the core purpose, immediately followed by usage guidance and sibling references. No redundant words; every clause earns its place.

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 complex query tool with no output schema, the description sufficiently covers purpose, usage, and how to obtain required resource ids. It lacks details on return shape or error handling, but given the raw-query nature and rich input schema, it is reasonably complete.

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 coverage is 100%, and the description lists the main SoQL clauses (where/select/group/order/limit/offset) but does not add meaning beyond the schema's per-parameter descriptions. The mention of resource id format and examples in schema already cover parameter semantics, so baseline 3 is appropriate.

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?

Description clearly states it runs raw SoQL queries against Edmonton open-data resources, with specific verb 'Run a raw SoQL query' and resource identified by Socrata id. It distinguishes from siblings by noting edmonton_datasets (find ids) and edmonton_recent (common ones), making its purpose unambiguous.

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 guides when to use this tool versus alternatives: 'Use edmonton_datasets to find a resource id, or edmonton_recent for the common ones.' This provides clear direction on tool selection and prerequisite discovery.

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.

TDQS

A3.8/5.0
Disambiguation2/5

Several tool clusters have significantly overlapping scopes. ask_pipeworx and ask_pipeworx_beta are currently identical, and ask_pipeworx_grounded, deep_research, and validate_claim all return grounded answers with different levels of verification. The Polymarket family (bet_research, polymarket_edges, polymarket_arbitrage, polymarket_fill_risk) also has fuzzy boundaries that could cause misselection.

Naming Consistency4/5

The vast majority of tools follow a verb_noun snake_case pattern (ask_pipeworx, compare_entities, scan_dependency). A few nouns like entity_profile and recent_alerts deviate slightly, and the memory trio (remember, recall, forget) are single-word verbs, but the overall style is consistent and readable.

Tool Count2/5

34 tools is excessive for a server whose name suggests a focused Edmonton open-data scope; only 3 tools actually relate to Edmonton data. Even as a general data platform, the count exceeds the 25-tool threshold and includes many meta-tools (discover_tools, suggest_questions, pipeworx_feedback) that could be consolidated.

Completeness4/5

For the Edmonton open-data subset, search, query, and recent-records cover the core lifecycle well. The broader Pipeworx toolset is comprehensive (entity profiles, comparisons, claims, subscriptions, memory), with only minor gaps like a direct catalog-browsing tool for the 1393 sources.