Skip to main content
Glama
littlebigbrains

@littlebigbrain/mcp

lbb_files

Read-only

Files of the graph, read only. A file is a document the graph holds (its bytes and a Document entity); the documents.parse workflow (lbb_workflows) reads the text layer of each PDF into pages with every line and its box.

Instructions

Files of the graph, read only. A file is a document the graph holds (its bytes and a Document entity); the documents.parse workflow (lbb_workflows) reads the text layer of each PDF into pages with every line and its box. list shows the files with their sha256, name, size, Document IRI and parse (status parsed, unsupported or failed, page_count). pages reads parsed pages of one file (sha256, or name for an exact file name): from is the first 0-based page index (the page of a region and of a DocEntry or DocMention), to the page after the last one (default from+1). Each line comes as <line id> [x0,y0,x1,y1] <text>: the id is p-l, both from 1, and the box is normalized to the page (0 to 1, origin top left). contains keeps the lines that hold a text; max_lines caps the lines (default 200). When lines were left out, next names the from and line_offset of the next call. A file not parsed yet answers file_not_parsed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNopages: the page index after the last one. Default from+1; at most 50 pages per call.
fromNopages: the first page index, 0-based. Default 0.
nameNopages: the file's exact name, when you do not have its sha256.
graphNoGraph to target; defaults to the connection's graph
actionYes
detailNoResponse detail level. Defaults to compact.
sha256Nopages: the file's SHA-256 (64 hex characters).
containsNopages: only the lines whose text holds this, ignoring case.
max_linesNopages: the most lines to return. Default 200.
line_offsetNopages: lines of the first page to skip, from a previous call's next.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.14.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, and the description corroborates this ("read only") while adding real behavioral context: the parse-status values (parsed/unsupported/failed), the file_not_parsed error condition, and the pagination contract via next (from + line_offset). It does not describe the parsed-text return shape in full, but the error and continuation behavior are meaningfully disclosed beyond 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?

It front-loads the resource definition and read-only nature before the action details, and every sentence carries information an agent needs (line-id format, box normalization, pagination). It is dense and slightly overpacked for a single paragraph, but there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 10 parameters, the description compensates by spelling out the list fields and the line output format (`<line id> [x0,y0,x1,y1] <text>` with normalized boxes) plus the file_not_parsed error. The main omissions are the meaning of the detail levels and a fuller description of the pages envelope, but the inputs and returns are otherwise adequately covered.

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 already high (90%), so the baseline is 3, but the description adds genuine semantics on top: from is the 0-based first page, to is the page after the last with default from+1, contains matches case-insensitively, max_lines defaults to 200, and next feeds back into from/line_offset. The only gap is the detail enum (compact/standard/full), which the description never explains.

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 resource and scope ("Files of the graph, read only") and defines what a file is (bytes + a Document entity), then names the two actions, list and pages. It also positions the tool against its sibling by pointing to the documents.parse workflow in lbb_workflows, so an agent can tell what this tool owns versus what the workflow tool does.

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 clear context for each action: list enumerates files with their parse status, pages reads the parsed pages of one file, and it warns that a file not parsed yet answers file_not_parsed. It routes the agent to lbb_workflows for the parse step, but there is no explicit when-not-to-use versus siblings like lbb_query or lbb_inspect.

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