Skip to main content
Glama

Read a course file as text

bb_read_file
Read-only

Extract text from lecture notes and handouts in Blackboard, including linked Google Docs/Slides/Sheets and PDFs page-by-page. Read course files without flooding context.

Instructions

Downloads a file attached to a content item and extracts its text. Also resolves content items that merely LINK to a Google Slides/Docs/Sheets document (common for lecture decks) by fetching the provider export, so reading works the same either way. PDFs are returned a page-window at a time (use fromPage to continue), so a long document will not flood the context. Handles PDF, HTML, and plain-text/code/CSV; Office formats download but cannot be extracted. This is the tool to use to actually read lecture notes or a handout.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formatNoFor externally-linked documents (Google Slides/Docs/Sheets), the export format: txt (default, cheapest), pdf, pptx, docx, csv, xlsx.
courseIdYesCourse id, e.g. "_12345_1".
fileNameNoWhen the item has several files, pick by name substring.
fromPageNoFirst PDF page. Default 1.
maxCharsNoCharacter ceiling for the returned window. Default 20000.
maxPagesNoPDF pages per call. Default 15.
contentIdYesContent item id holding the file.
charOffsetNoFor non-paginated formats, continue from this character offset.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses page-window streaming for PDFs, Google provider exports, accepted formats, and the important limitation that Office formats download but cannot be extracted. This gives an agent concrete expectations for context usage and failures.

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

Conciseness5/5

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

Five succinct, high-signal sentences: purpose, Google-link special case, PDF windowing, format coverage, and final usage mandate. Every sentence earns its place, and the key user recommendation is saved for the last sentence for impact.

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?

The description is complete for a read-only extraction tool: it covers behavior, limitations, format support, and practical use in lectures. Given the detailed annotations and 100% schema coverage, no critical context is missing for an agent.

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 description itself does not deeply elaborate on each parameter, instead referencing the schema-level terms like fromPage. It adds minor contextual value by explaining the purpose of windows and offset-style continuation, but it does not materially improve upon the already-complete 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 opens with a clear verb–resource pair ('Downloads a file attached to a content item and extracts its text') and adds a distinctive secondary capability: resolving Google Slides/Docs/Sheets links into readable text. It closes with an explicit usage statement ('This is the tool to use to actually read lecture notes or a handout'), and the format coverage details distinguish it from sibling tools like bb_download_file.

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?

The description explicitly recommends when to use the tool ('This is the tool to use to actually read lecture notes or a handout') and provides conditional guidance for PDFs and Google-linked documents. It does not explicitly name when-not-to-use scenarios or compare against siblings like bb_download_file, so it stops just short of the clearest possible when/when-not guidance.

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