Skip to main content
Glama

waveguard_scan

Read-onlyIdempotent

Find outliers and anomalies in structured data — ideal as a second step after pulling records from Google Sheets, Airtable, Supabase, Notion databases, HubSpot, Financial APIs, GitHub, NPM, or any source that returns rows of JSON. Fully stateless: send known-good rows as training and suspect rows as test in ONE call. Returns per-row anomaly scores, confidence levels, and the top features explaining WHY each row was flagged.

Typical workflow: (1) Pull data from another tool (e.g. Google Sheets, Supabase query, HubSpot deals). (2) Pass the first N rows as training (normal baseline). (3) Pass remaining or new rows as test. (4) Report which rows are anomalous and why.

Works on JSON objects, numbers, text, arrays. No separate training step required.

Examples:

  • Spreadsheet QA: Pull 500 sales rows from Sheets → train on first 400 → test last 100 → flag outlier entries

  • Financial screening: Get ratios for 50 stocks from a financial API → find anomalous ones

  • CRM hygiene: Pull HubSpot deals → flag deals with unusual discount/value patterns

  • Dependency audit: Get NPM package metrics → flag packages with anomalous quality scores

  • Commit review: Pull GitHub commit metadata → flag unusual commit patterns

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
testYes1+ data points to check for anomalies — new entries, recent rows, or the subset you want validated. Same type/shape as training. Each sample is scored independently.
trainingYes2+ examples of NORMAL/expected data — the known-good baseline. Typically the bulk of rows from a spreadsheet, database query, or API response. All samples should be the same type/shape. More samples = better baseline (10-100 is ideal for tabular data).
field_levelNoPhysics field complexity. 0 = real scalar (default). 1 = complex field (phase-aware, 62-dim fingerprint).
sensitivityNoAnomaly threshold multiplier (default: 2.0). Lower = more sensitive. Higher = less sensitive. Range: 0.5 to 5.0.
encoder_typeNoData encoder type. Omit to auto-detect from data shape.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive hints. The description adds valuable behavioral details beyond these: 'Fully stateless,' 'send known-good rows as training and suspect rows as test in ONE call,' and what it returns ('per-row anomaly scores, confidence levels, and the top features explaining WHY'). This goes well beyond the annotation baseline.

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 moderately long but well-structured: a clear opening, a workflow list, and bullet-like examples. It effectively uses whitespace and front-loads the core purpose. Some repetition exists (e.g., mentioning 'one call' twice), but overall it is efficient and readable for the amount of context provided.

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?

Despite lacking an output schema, the description tells the agent exactly what to expect (per-row scores, confidence, top features). It covers purpose, usage workflow, integration examples, and key behavioral constraints. No critical gaps are apparent for a tool of this complexity, given the rich schema and annotations.

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?

Input schema coverage is 100% with every parameter described (training, test, field_level, sensitivity, encoder_type). The description adds conceptual context for the key parameters (e.g., what 'training' and 'test' mean and how they fit the workflow), but does not elaborate on all parameters. Since schema already does heavy lifting, the description supplements rather than replaces, earning a 4.

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 description clearly states the tool's purpose: 'Find outliers and anomalies in structured data' and positions it as a second step after data retrieval. It uses specific verbs and includes multiple concrete examples (Sheets, financial APIs, CRM) that make the tool's scope obvious and distinct from time-series-focused siblings like waveguard_scan_timeseries.

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?

The description provides explicit workflow steps ('Typical workflow: (1) Pull data... (2) Pass the first N rows...') and says it is 'ideal as a second step after pulling records' from various sources. However, it does not explicitly state when not to use this tool or mention alternatives for edge cases, so it falls short of a 5.

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

B3.4/5.0
Disambiguation3/5

Several tools occupy overlapping anomaly-detection territory (scan, scan_timeseries, price_manipulation, volume_check, token_risk, wallet_profile), which could cause misselection when an agent needs generic vs. specialized analysis. However, descriptions clarify data types and use cases, so the overlap is manageable.

Naming Consistency5/5

All tools share the consistent 'waveguard_' prefix with descriptive underscore-separated names (e.g., waveguard_cascade_risk, waveguard_volume_check). The occasional verb like 'scan' or 'compare' fits the overall pattern, making the set highly predictable.

Tool Count3/5

With 19 tools, the server is on the heavy side for a typical MCP but not extreme. The breadth reflects a comprehensive risk-analysis platform, though some specialized detectors (e.g., waveguard_price_manipulation vs. waveguard_scan_timeseries) could potentially be consolidated without losing functionality.

Completeness4/5

The tool surface covers the full analytical workflow: data ingestion (market_data), generic anomaly detection (scan, scan_timeseries), specialized crypto risk (token_risk, volume_check, wallet_profile), structural similarity (fingerprint, compare), and scenario/impact analysis (counterfactual, cascade_risk, mechanism_probe). Minor gaps like direct report generation exist but are not critical for the core purpose.

Resources