Skip to main content
Glama

get_filing_snapshot

Read-onlyIdempotent

Resolve one page_id to a viewable filing source (page PNG or SEC link) for citations. This is a citation tool, not a company tool: for a company overview use get_company_snapshot. page_id comes from search_filing_content hits and Nordic get_financial_statement cells; pass the bare id, not a clarifo://filing/... URI.

Never print the raw page_id (or a [page_id: ...] marker) to the user; cite it as a numbered link to citation_markdown's URL when available=true, as plain citation_label text when available=false (never invent a link to a page with no preview).

Args: page_id: Bare page id, e.g. "722df34e9f191a97518a8560755cb9e9_20". dpi: Render resolution for Nordic PNGs (default 150). include_text: Return the page's full indexed text under page_text. Search excerpts often stop mid-sentence; read the full text before stating what a policy says. adjacent_pages: With include_text, pages on each side (0-2). max_chars_per_page: Default 12000, max 30000 (truncated: true). highlight: The figure as printed on the page ("229,4") or a short verbatim quote; citation_markdown then opens the page with it highlighted. Use it for every figure-level citation. The result says highlight_status: exact (on the page), fuzzy (rounded, rescaled or nearly verbatim), not_found (not on this page: no highlight is drawn; say so) or unavailable (no stored text), with highlight_passage, the paragraph it is in. To show where a document's [n] citation comes from, pass its source_refs page_id and the cited sentence.

Returns available, kind (rendered_png | snapshot_endpoint | edgar_link | viewer_link), snapshot_url, company_name, year, document_type, page_number, citation_label, citation_markdown, source_policy; reason when unavailable. With include_text: page_text rows and page_text_coverage.missing (pages with no indexed text: say so rather than guess).

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": {
      "page_id": "<page_id>"
    },
    "name": "get_filing_snapshot"
  }
}

Input Schema

NameRequiredDescriptionDefault
dpiNo
page_idYes
highlightNo
include_textNo
adjacent_pagesNo
max_chars_per_pageNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description still adds substantial behavioral context: the four-valued highlight_status contract (exact/fuzzy/not_found/unavailable) and what to do in each case, the truncated flag at the char cap, page_text_coverage.missing handling, and a hard rule never to expose the raw page_id. These are operational rules an agent cannot infer from the annotations.

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 the disambiguation sentence before any detail, and the Args block maps cleanly to the six undocumented parameters. The trailing "Returns ..." enumeration repeats fields the output schema already carries, which is the only measurable redundancy; the rest is dense, actionable rule text.

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 6-parameter tool with no schema descriptions, the definition covers input sourcing, input formatting, the highlight matching contract, text-coverage gaps, and citation rendering rules, and it has an output schema so return-value enumeration is optional. Nothing material 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.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 6 parameters, so the description must carry the full burden and largely does: page_id format with a concrete example, dpi scope (Nordic PNGs), include_text purpose, adjacent_pages range (0-2) and its dependency on include_text, max_chars_per_page default and 30000 max with truncation behavior, and highlight format plus its intended use for figure-level citations.

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?

Opens with a specific verb and resource ("Resolve one page_id to a viewable filing source") and immediately scopes it as a citation tool, explicitly naming get_company_snapshot as the tool for the other intent. An agent can distinguish it from the many snapshot/company siblings without opening any 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?

States when to use it (citations), when not to (company overview → get_company_snapshot), and where the input comes from (search_filing_content hits, Nordic get_financial_statement cells), including the caveat to pass a bare id rather than a clarifo:// URI. It also prescribes downstream citation behavior for available=true vs available=false.

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.