Skip to main content
Glama
nataliemona

Mode Analytics MCP Server

by nataliemona

search_reports

Find Mode Analytics reports by name or description across all spaces, with optional archived results and a result limit.

Instructions

Search for reports by name or description across all spaces.

Mode's REST API has no native report-search endpoint, so this fans out across every space and filters client-side (case-insensitive substring match on name and description). May be slow on large workspaces. Archived reports are skipped unless include_archived.

Args: query: Search term to match against report names and descriptions. limit: Max number of results to return (default 50). include_archived: Also return archived reports (each has an archived flag).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
include_archivedNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the fan-out implementation, case-insensitive substring matching, a performance warning (may be slow on large workspaces), and default filtering of archived reports. It omits auth/permission requirements and pagination behavior, so it is strong but not exhaustive.

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 purpose and the key caveat (fan-out, may be slow) are front-loaded before the parameter block, and each sentence carries information. The Args section is slightly redundant in structure but necessary given the empty schema descriptions.

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?

An output schema exists, so return values need not be explained, and the description covers the non-obvious implementation, performance, default filtering behavior, and every parameter. Nothing an agent needs to invoke this correctly is missing.

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 0%, so the description must compensate, and the Args block documents all three parameters, including the non-obvious details that limit defaults to 50, include_archived defaults to false, and archived results carry an `archived` flag. It adds real meaning over the bare schema titles.

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 opening sentence names a specific verb (Search) plus the resource (reports) and the match fields (name or description) and the scope (all spaces), which clearly separates it from list_reports and get_report. An agent can distinguish it from every sibling without opening a schema.

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 explains why the tool exists (no native search endpoint, so it fans out and filters client-side), which is genuine when-to-use context, and states the archived-reports exclusion. It stops short of naming a cheaper alternative such as list_reports for simple enumeration, so it is clear context without explicit alternatives.

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