Skip to main content
Glama
dsanchezp18

MapleStats MCP

Call a tool

call_tool
Read-onlyIdempotent

Run a specific read-only data tool by exact name and arguments to fetch Canadian open data, returning typed results and provenance.

Instructions

Run one data tool found through search_tools or plan_query.

Use for: executing a tool by exact name with arguments that match the inputSchema search_tools returned for it. Every reachable tool is read-only: it fetches public data from the upstream agency (StatCan, Bank of Canada, open-data portals) and changes nothing. Returns that tool's typed result, including a provenance block (source, URL, query time, freshness). Errors come back as MCP tool errors, not as data: an unknown or misspelled name raises 'Unknown tool' (search again for the exact name), invalid arguments raise a validation error naming the field, and upstream outages or empty matches raise a typed error explaining what to change. search_tools, call_tool and plan_query cannot be called through it; call them directly. Tool calls are subject to the server's timeout (MAPLE_TOOL_TIMEOUT_SECONDS, default 120).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesExact tool name as returned by search_tools or plan_query, e.g. 'boc_get_observations'.
argumentsNoObject matching that tool's inputSchema from search_tools. Omit or pass {} for a tool with no required parameters.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.1
    • changedInput schema / properties / arguments / description
      Previous value: -"Arguments to pass to the tool"New value: +"Object matching that tool's inputSchema from search_tools. Omit or pass {} for a tool with no required parameters."
    • changedInput schema / properties / name / description
      Previous value: -"The name of the tool to call"New value: +"Exact tool name as returned by search_tools or plan_query, e.g. 'boc_get_observations'."
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, openWorld=true, but the description adds real context beyond them: the provenance block in results (source, URL, query time, freshness), the error taxonomy (unknown tool vs. field-level validation error vs. upstream outage), the meta-tool nesting restriction, and the timeout governed by MAPLE_TOOL_TIMEOUT_SECONDS (default 120). A clearer statement of what happens to partially-succeeded calls or whether the timeout aborts mid-flight would push this to 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then organizes the rest under a clear 'Use for:' framing followed by returns and errors. It is slightly longer than needed — the meta-tool exclusion and the error enumerations each run a bit long — but every sentence carries actionable content and nothing is filler.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter dispatcher with no output schema, the description covers the full picture an agent needs: how to obtain valid input, what comes back (typed result plus provenance), how failures surface, the nesting restriction, and the timeout boundary. Nothing material is left unspecified.

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 description coverage is 100%, so baseline is 3, but the description adds operational meaning the schema cannot: the name value must be an exact string previously surfaced by search_tools/plan_query, and the arguments object is defined by the target tool's own schema rather than this one. The failure mode for a misspelled name is documented, which is genuinely useful for an argument whose valid domain is unbounded.

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 first sentence states a specific verb (run) and resource (one data tool obtained via search_tools or plan_query), immediately distinguishing it from both siblings. It also explicitly scopes what it cannot do (cannot invoke search_tools, call_tool, or plan_query), so an agent can route correctly without opening any schema.

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?

Explicit 'Use for:' guidance pairs with concrete preconditions ('by exact name with arguments that match the inputSchema search_tools returned'). Exclusions are named and the recovery path for the wrong-name case is spelled out ('search again for the exact name'), leaving nothing to inference.

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