Skip to main content
Glama
competlab

competlab-mcp-server

by competlab

get_briefing_history

Read-only

List a project's past Strategic Briefing editions newest-first — date, status and one-line verdict per edition — to find which runId to open next.

Instructions

List this project's past Strategic Briefing editions, newest first. Returns one cheap metadata row each — runId, publication date, edition number, status, and that edition's one-line headline verdict — and NEVER briefing content. Use it to find WHICH edition to open ('what did we say in April', 'how has the read changed'), then call get_briefing_edition with that runId. For the project's current state use get_briefing, not this. Runs that failed or are still generating are included too, with a null date and headline — so a gap between two editions is explained rather than left unexplained. This is also the correct fallback when get_briefing reports status 'running' or 'failed': the newest readable edition is the most recent row here with status 'done'. Check pagination.hasMore to fetch additional pages.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-indexed, default: 1)
limitNoItems per page (default: 20, max: 100)
projectIdYesProject ID (from list_projects)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv4.0.1
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / page / maximum
      Added value: +9007199254740991
  2. Addedv3.0.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, but the description goes well beyond: it discloses the payload shape ('one cheap metadata row each — runId, publication date, edition number, status, headline verdict'), guarantees it 'NEVER' returns briefing content, and explains that failed/generating runs appear with null date and headline so gaps are interpretable. That is rich, non-obvious behavior an agent could not infer.

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 purpose and scope, then routing and fallback guidance; every sentence carries usable information. It is longer than strictly necessary and the fallback rationale is somewhat repeated, but there is little waste.

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-value burden and does so: it enumerates the metadata fields, states what is never returned, explains null-date rows for failed/running editions, and points to pagination.hasMore. Nothing an agent needs to call this correctly is missing.

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% (projectId, page, limit all documented in-schema), so the baseline is 3. The description adds only a pointer to pagination.hasMore rather than clarifying any parameter's format or defaults, so it does not meaningfully exceed 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 ('List this project's past Strategic Briefing editions, newest first') and explicitly delimits scope from siblings: it names get_briefing_edition as the follow-up and get_briefing as the tool for current state. An agent can distinguish it from every nearby 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use with concrete examples ('what did we say in April', 'how has the read changed'), a named follow-up tool with its argument (get_briefing_edition with that runId), an explicit exclusion ('For the project's current state use get_briefing, not this'), and a fallback rule when get_briefing reports 'running' or 'failed'.

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