Skip to main content
Glama
@littlebigbrain/mcp

@littlebigbrain/mcp

lbb_files

Read-only

List and read graph files, including parsed PDF pages with line text and coordinates, filtered by name or parse status.

Instructions

Files of the graph, read only. A file is a document the graph holds (its bytes and a Document entity). A file a workflow run wrote (a generated file, with an origin and an expires_at) has no Document and no Document IRI. It expires unless a person keeps it, so the list shows it only after that, and it is never evidence for a fact. The documents.parse workflow (lbb_workflows) reads the text layer of each PDF into pages with every line and its box. list shows 50 files a call, newest upload first, with their sha256, name, size, Document IRI and parse (status parsed, unsupported or failed, page_count); when more follow, next names the after of the next call (with the same filters). parse_status keeps the files of one parse status; waiting is a file not parsed yet. name keeps the files whose name holds a text, in any case. A filtered list reads the Documents of the published generation and names its commit (as_of_commit_seq). A file uploaded, renamed or parsed a moment ago can be missing from it until publication. 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.

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": {
      "action": "<action>"
    },
    "name": "lbb_files"
  }
}

Input 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.
nameNolist: only the files whose name holds this text, in any case. pages: the file's exact name, when you do not have its sha256.
afterNolist: the next 50 files, from a previous call's next (pass the same parse_status and name).
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.
parse_statusNolist: only the files of this parse status; waiting is a file not parsed yet.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.16.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / from / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / line_offset / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / to / maximum
      Added value: +9007199254740991
  2. Changed3 schema fields changedv0.15.1
    • addedInput schema / properties / after
      Added value: +{
      +  "description": "list: the next 50 files, from a previous call's next (pass the same parse_status and name).",
      +  "type": "string"
      +}
    • changedInput schema / properties / name / description
      Previous value: -"pages: the file's exact name, when you do not have its sha256."New value: +"list: only the files whose name holds this text, in any case. pages: the file's exact name, when you do not have its sha256."
    • addedInput schema / properties / parse_status
      Added value: +{
      +  "description": "list: only the files of this parse status; waiting is a file not parsed yet.",
      +  "enum": [
      +    "parsed",
      +    "waiting",
      +    "unsupported",
      +    "failed"
      +  ],
      +  "type": "string"
      +}
  3. Addedv0.14.0

TDQS

A4.6/5.0
Behavior5/5

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

Beyond readOnlyHint=true, the description discloses publication lag ('a moment ago can be missing from it until publication'), generation/commit snapshot semantics (as_of_commit_seq), generated-file expiration and non-evidentiary status, pagination page-size limits, and the file_not_parsed error response. This is genuinely rich behavioral context an agent cannot get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and sentences largely earn their place, but the block is dense and sprawling, mixing list semantics, pages semantics, and snapshot caveats with little structural separation. It is information-heavy to the point of being hard to scan.

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 compensates fully: it names the list return fields (sha256, name, size, Document IRI, parse status/page_count), the exact pages line format, pagination continuation fields, and error behavior. An agent has everything needed to call both actions correctly.

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 coverage is already 92%, but the description still adds substantial meaning: from is 0-based and equals the page of a region/DocEntry/DocMention, to defaults to from+1, the line-format and p<page>-l<line> id scheme with normalized boxes, contains ignores case, max_lines default 200, and how next maps to after/from/line_offset. It meaningfully supplements the schema rather than repeating it.

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 opens with a precise verb+resource ('Files of the graph, read only') and then defines what a file is, distinguishing document-backed files from workflow-generated files. It clearly delineates the two actions (list vs pages) so an agent knows exactly what each does, and it names lbb_workflows as the parse producer, giving sibling context.

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?

Usage is spelled out per action: 'list shows 50 files a call, newest upload first' and 'pages reads parsed pages of one file'. Filters (parse_status, name), pagination conditions, and the generated-file expiration rule are described. There is no explicit 'use X instead of Y' routing against siblings, keeping it below a 5.

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