Skip to main content
Glama

Fetch Analysis Result

fetch_analysis_result
Read-onlyIdempotent

Return the progress or result of an analysis started with initiate_analysis, by its analysis_id. Each call returns the current state once and does not wait. While status is in_progress, or narrative.status is pending or running, check again only when the person asks, and no sooner than retry_after_seconds. A failed status is an answer; relay error_message. A complete result is the saved report: the composite score and rating word, the evidence word (Full, Core or Low), each domain's score, grade word and contribution (cornerstone, major, supporting or contextual), its key_drivers (up to three, each with its evidence), lens and domain_coverage, and its written summaries (domain conclusions, synthesis, key strengths and challenges) at either depth once narrative.status is ready. Until then relay message: pending or running means they are still being written, and you may briefly summarize the scores and evidence supplied but never write a summary, cause or reason the result does not contain; failed means they could not be completed, and the scores and evidence stand. It omits the web reader's factor cards, charts and per-anchor Explain views. Offer report_url as Open saved report to inspect factor values, peer context and ranked contributors where supplied; sign in to the owning StockLens account. It can open before the written summaries finish, and opening it does not start another run. Say how much a domain counts only with its contribution word, never as a number or share. It does not accept a ticker and does not rank companies.

Input Schema

NameRequiredDescriptionDefault
analysis_idYesThe analysis_id returned by initiate_analysis

Output Schema

NameRequiredDescriptionDefault
scopeYes
resultNo
statusYes
messageNoA sentence to relay as given, present when the written summaries of a complete result are not ready: they are still being written, or could not be completed.
narrativeNoThe state of the written summaries (the domain conclusions, the synthesis, and the key strengths and challenges) of a complete result.
report_urlNoOpen this saved report for factor values, peer context and ranked contributors through Explain where supplied. Sign in to the owning StockLens account. Reading it does not start another analysis. Present with every complete result, which has passed ownership checks; the report can open before its written summaries finish.
analysis_idYes
base_digestNoIdentifies the saved scores and evidence of a complete result. It stays the same when the written summaries arrive.
progress_pctNo
error_messageNo
retry_after_secondsNo
deterministic_ready_atNoWhen the scores and evidence were saved, ahead of the written summaries (ISO 8601). Absent when the report was saved together with its summaries.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / result / properties / key_drivers / items / properties / peer_group
      Added value: +{
      +  "type": [
      +    "null",
      +    "string"
      +  ]
      +}
  2. Changed11 schema fields changed
    • addedOutput schema / properties / base_digest
      Added value: +{
      +  "description": "Identifies the saved scores and evidence of a complete result. It stays the same when the written summaries arrive.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / deterministic_ready_at
      Added value: +{
      +  "description": "When the scores and evidence were saved, ahead of the written summaries (ISO 8601). Absent when the report was saved together with its summaries.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "description": "A sentence to relay as given, present when the written summaries of a complete result are not ready: they are still being written, or could not be completed.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / narrative
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The state of the written summaries (the domain conclusions, the synthesis, and the key strengths and challenges) of a complete result.",
      +  "properties": {
      +    "error_code": {
      +      "description": "Why the written summaries failed, as a diagnostic code.",
      +      "enum": [
      +        "DEADLINE_EXCEEDED",
      +        "DELIVERY_BUDGET_EXHAUSTED",
      +        "PROVIDER_UNAVAILABLE",
      +        "PROVIDER_REJECTED",
      +        "INVALID_NARRATIVE",
      +        "UNSUPPORTED_CONSUMER",
      +        "CORRUPT_PAYLOAD",
      +        "INTERNAL_FAILURE"
      +      ],
      +      "type": "string"
      +    },
      +    "failed_at": {
      +      "description": "When the written summaries failed (ISO 8601).",
      +      "type": "string"
      +    },
      +    "ready_at": {
      +      "description": "When the written summaries became ready (ISO 8601).",
      +      "type": "string"
      +    },
      +    "revision": {
      +      "description": "Rises with every change of the summaries' state; a higher revision is the newer answer.",
      +      "type": "integer"
      +    },
      +    "status": {
      +      "description": "pending or running: still being written, and not in this result. ready: in this result. failed: could not be completed; the scores and evidence are unaffected.",
      +      "enum": [
      +        "pending",
      +        "running",
      +        "ready",
      +        "failed"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "revision"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
    • changedOutput schema / properties / report_url / description
      Previous value: -"Open this saved report for factor values, peer context and ranked contributors through Explain where supplied. Sign in to the owning StockLens account. Reading it does not start another analysis. Only present after the completed result passes ownership checks."New value: +"Open this saved report for factor values, peer context and ranked contributors through Explain where supplied. Sign in to the owning StockLens account. Reading it does not start another analysis. Present with every complete result, which has passed ownership checks; the report can open before its written summaries finish."
    • addedOutput schema / properties / result / properties / currency
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / domain_coverage
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "not_scored": {
      +      "items": {
      +        "enum": [
      +          "Fundamental",
      +          "Technical",
      +          "Risk",
      +          "Sentiment",
      +          "Macro"
      +        ],
      +        "type": "string"
      +      },
      +      "type": [
      +        "null",
      +        "array"
      +      ]
      +    },
      +    "sentiment_sources_note": {
      +      "description": "The Sentiment evidence this reading did not use and why, as one sentence to relay as given, for example: Evidence not read in this analysis: earnings calls (none found recently).",
      +      "type": "string"
      +    }
      +  },
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
    • changedOutput schema / properties / result / properties / domains / items / properties / analysis / type
      Previous value: -"string"New value: +[
      +  "null",
      +  "string"
      +]
    • changedOutput schema / properties / result / properties / domains / items / required
      Previous value: -[
      -  "domain",
      -  "score",
      -  "grade",
      -  "analysis"
      -]New value: +[
      +  "domain",
      +  "score",
      +  "grade"
      +]
    • addedOutput schema / properties / result / properties / key_drivers
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "context": {
      +        "type": [
      +          "null",
      +          "string"
      +        ]
      +      },
      +      "domain": {
      +        "type": [
      +          "null",
      +          "string"
      +        ]
      +      },
      +      "kind": {
      +        "enum": [
      +          "SUPPORTIVE",
      +          "HEADWIND",
      +          "MIXED",
      +          "COVERAGE_GAP",
      +          "NEUTRAL_NOT_MATERIAL"
      +        ],
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "metric": {
      +        "type": [
      +          "null",
      +          "string"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "label"
      +    ],
      +    "type": "object"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / lens
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "label": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "label"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / report_url
      Added value: +{
      +  "description": "Open this saved report for factor values, peer context and ranked contributors through Explain where supplied. Sign in to the owning StockLens account. Reading it does not start another analysis. Only present after the completed result passes ownership checks.",
      +  "type": "string"
      +}
  4. Changed2 schema fields changed
    • addedOutput schema / properties / result / properties / filing_facts
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "fact_type": {
      +        "type": "string"
      +      },
      +      "filing_date": {
      +        "type": "string"
      +      },
      +      "form_type": {
      +        "type": "string"
      +      },
      +      "quote": {
      +        "type": "string"
      +      },
      +      "reading": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "fact_type",
      +      "reading",
      +      "form_type",
      +      "filing_date",
      +      "quote"
      +    ],
      +    "type": "object"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / filing_facts_note
      Added value: +{
      +  "type": "string"
      +}
  5. Changed5 schema fields changed
    • removedOutput schema / properties / result / properties / domains / items / properties / confidence
      Removed value: -{
      -  "type": [
      -    "null",
      -    "number"
      -  ]
      -}
    • removedOutput schema / properties / result / properties / domains / items / properties / news_key_articles / items / properties / rating
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / result / properties / domains / items / properties / news_key_articles / items / properties / tone
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / result / properties / domains / items / properties / news_key_articles / items / required
      Previous value: -[
      -  "title",
      -  "publisher",
      -  "url",
      -  "published_at",
      -  "rating",
      -  "conviction"
      -]New value: +[
      +  "title",
      +  "publisher",
      +  "url",
      +  "published_at",
      +  "tone",
      +  "conviction"
      +]
    • addedOutput schema / properties / result / properties / evidence
      Added value: +{
      +  "type": "string"
      +}
  6. Changed2 schema fields changed
    • addedOutput schema / properties / result / properties / domains / items / properties / contribution
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / result / properties / domains / items / properties / weight
      Removed value: -{
      -  "type": [
      -    "null",
      -    "number"
      -  ]
      -}
  7. Changed2 schema fields changed
    • addedOutput schema / properties / scope
      Added value: +{
      +  "enum": [
      +    "single_analysis_result"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "analysis_id",
      -  "status"
      -]New value: +[
      +  "analysis_id",
      +  "status",
      +  "scope"
      +]
  8. Changed4 schema fields changed
    • addedOutput schema / properties / result / properties / domains / items / properties / confidence
      Added value: +{
      +  "type": [
      +    "null",
      +    "number"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / domains / items / properties / insider_key_metrics
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "label": {
      +        "type": "string"
      +      },
      +      "value": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "label",
      +      "value"
      +    ],
      +    "type": "object"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / domains / items / properties / news_key_articles
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "conviction": {
      +        "type": "number"
      +      },
      +      "published_at": {
      +        "type": "string"
      +      },
      +      "publisher": {
      +        "type": "string"
      +      },
      +      "rating": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "title",
      +      "publisher",
      +      "url",
      +      "published_at",
      +      "rating",
      +      "conviction"
      +    ],
      +    "type": "object"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / domains / items / properties / weight
      Added value: +{
      +  "type": [
      +    "null",
      +    "number"
      +  ]
      +}
  9. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent and non-destructive, but the description adds critical behavior: non-blocking polling semantics, status-dependent interpretation, error_message relay, saved-report completeness, partial narrative behavior, report_url sign-in requirements, and explicit limits on what it omits and does not do.

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?

It is front-loaded with the core behavior and every section is operationally relevant, but it is a very long single paragraph for a one-parameter tool. The density is justified by the agent guidance, though some phrasing 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?

Given a single required parameter, rich annotations, and an output schema, the description is more than complete. It explains how to interpret status transitions, how to relay incomplete results, what report_url means, and what the tool does not cover.

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 coverage is 100% and the single analysis_id parameter is already documented as the value returned by initiate_analysis. The description reinforces its origin but adds no additional format, constraints, or edge-case meaning beyond 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?

The description states a specific verb and resource: return the progress or result of an analysis started with initiate_analysis, by analysis_id. It also distinguishes scope by saying it does not accept a ticker and does not rank companies, separating it from sibling discovery/ranking tools.

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?

It gives explicit usage conditions: each call returns current state once and does not wait, check again only when the person asks and no sooner than retry_after_seconds, and a failed status is an answer. It also names the originating sibling, initiate_analysis, making the start-then-poll workflow clear.

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