Skip to main content
Glama

get_ad_item_history

Read-onlyIdempotent

Get ONE ad listing item's action-log timeline — the sequence of events that acted on the product and its Koongo/channel state at each point, so you can explain WHY an item ended in its current state. Use this to see what happened to one ad listing over time. Returns {itemId, returned, entries:[{createdAt, event, eventLabel, message, messageLabel, operation, operationLabel, koongoStatus, channelStatus}]} newest first. eventLabel/messageLabel/operationLabel are the human-readable rendering the Koongo UI shows (event name, plain-language explanation, operation title); event/message/operation are the raw codes. Entries are process metadata only (no raw product values); an item with no recorded activity yet returns an empty list. item_id is the itemId from list_ad_items (the same id get_ad_item_report uses); pair the two to diagnose a failing product. ad_id is the integrationId from list_ads. project_id is OPTIONAL (project_id_required otherwise — then call list_projects).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "ad_id": "<ad_id>",
      "item_id": "<item_id>"
    },
    "name": "get_ad_item_history"
  }
}

Input Schema

NameRequiredDescriptionDefault
ad_idYesintegrationId of the ad (from list_ads).
limitNoMax timeline entries to return (default 20, max 50).
item_idYesThe listing itemId (from list_ad_items).
project_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavioral facts: results are newest-first, an item with no recorded activity returns an empty list, and entries contain process metadata only with no raw product values. It also explains the dual label/raw-code encoding so the agent knows both representations appear. Return format nuance beyond that (pagination via limit) is left to the schema.

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-loaded with the one-line purpose before the return shape and id sourcing, and every sentence carries information. It is dense but slightly overpacked in a single paragraph, with the parenthetical explanation of label fields adding length that could be tightened.

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 read-only diagnostic tool with no output schema, the description supplies the full return shape, field-level meaning, ordering, the empty-result edge case, and how to obtain each id. An agent has everything needed to call it and interpret the response without opening another tool.

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 coverage is 75%, with project_id having no schema description; the description compensates by naming it optional and pointing to list_projects on project_id_required. It also anchors both required ids to their sources (item_id from list_ad_items, ad_id = integrationId from list_ads), which adds provenance the schema only partially states. The limit parameter is left entirely to the schema.

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 ONE ad listing item's action-log timeline' — and immediately frames the scope as a single item's event sequence explaining why it reached its current state. That framing distinguishes it from get_ad_item_report (current state) and get_marketplace_item_history (the marketplace counterpart).

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?

Gives explicit usage context ('use this to see what happened to one ad listing over time', 'pair the two to diagnose a failing product') and resolves a real prerequisite by stating project_id is optional unless project_id_required, in which case call list_projects. It does not explicitly say when to prefer the sibling marketplace variant, but the ad-vs-marketplace split is implied by the resource name.

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.

Resources