Skip to main content
Glama
competlab

competlab-mcp-server

by competlab

get_pricing_run_detail

Read-only

Retrieve full competitor-by-competitor pricing data for a specific historical Pricing Intelligence run by runId. Check pricingDataAvailable before quoting rows; empty runs return run_not_summarized.

Instructions

Get full competitor-by-competitor data for a specific historical Pricing Intelligence run. Use runId values from get_pricing_history. Same reading rule as get_pricing_dashboard. Every tracked competitor appears — rows we could not measure carry a pricingDataAvailable reason and a null content rather than being omitted, so branch on it before quoting any pricing fact about that row.A run that finished but produced no summary answers 404 run_not_summarized. That is different from run_not_found: the run exists, it simply has nothing to report. Say the run produced no data; do not describe it as missing, and do not fill it in with zeros.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
runIdYesRun ID (from get_pricing_history)
projectIdYesProject ID (from list_projects)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv4.0.1
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observedv1.0.0

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint annotation by disclosing row-level behavior (every tracked competitor appears, unmeasured rows carry a pricingDataAvailable reason and null content) and precise error semantics (404 run_not_summarized means the run exists but has no data). It even instructs how to phrase results for that case, which is unusual and valuable for a read tool.

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?

Purpose is front-loaded and every sentence carries information (provenance, row semantics, error semantics, output phrasing). It is dense and slightly cluttered with run-on sentences and a missing space ('row.A run'), but nothing is wasted.

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?

With no output schema, the description carries the return-shape burden itself: it explains that all competitors appear, how unmeasured rows look, and how to interpret the not-summarized error. Combined with the readOnly annotation, an agent has everything needed to call and interpret it correctly.

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 100 percent and both params are documented inline (runId from get_pricing_history, projectId from list_projects). The description reinforces the runId source but adds no new syntax or format detail, so the baseline of 3 applies.

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?

States a specific verb and resource ('Get full competitor-by-competitor data for a specific historical Pricing Intelligence run'), clearly distinguishing it from get_pricing_history (list) and get_pricing_dashboard (dashboard). An agent can tell exactly what this returns without opening the 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?

Tells the agent where runId comes from (get_pricing_history) and cites a reading rule shared with get_pricing_dashboard, plus explicit error-handling guidance (404 run_not_summarized vs run_not_found). It lacks an explicit 'use this instead of X when Y' routing statement relative to dashboard/history siblings, but the context is clear.

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