Skip to main content
Glama

Get Blackboard course attachment

get_attachment
Read-only

Download a Blackboard course file (PDF, DOCX, PPTX, images) to this machine and get its local path. Files save locally under ~/.blackboard-mcp/downloads, with text excerpts for small text files. Read-only.

Instructions

Download a course file (PDF, DOCX, PPTX, images, ...) from Blackboard to this machine and return its local path. Files are saved under ~/.blackboard-mcp/downloads only when you call this tool; nothing is sent anywhere. Small text files also include a text excerpt. Read-only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
file_idNoSpecific file id when a content item has several attachments (see available_files in the result).
course_idYesBlackboard course id from list_courses, e.g. "_26184_1" (course code also accepted).
content_idYesBlackboard content id from get_course_content or get_assignments, e.g. "_3001_1".
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses where files are saved (~/.blackboard-mcp/downloads), emphasizes that nothing is sent anywhere, and notes that small text files include a text excerpt. It also states the side effect happens only when this tool is called. This is strong behavioral transparency for a download tool.

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?

The description is three sentences with no filler. The main action and return value are front-loaded, followed by useful side-effect and privacy details. The final 'Read-only.' is redundant with the annotation but does not harm clarity.

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, the description correctly explains the primary return value (local path) and the exception for small text files (text excerpt). It also covers the download location and privacy behavior. It does not describe error cases or exact output structure, but this is sufficient for an agent to select and invoke the tool correctly.

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 description coverage is 100%, and the schema already documents each parameter with source and example. The tool description adds little parameter-specific meaning beyond the return behavior. Baseline 3 is appropriate when the schema carries the parameter documentation burden.

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 ('Download'), a specific resource ('a course file from Blackboard'), and the key outcome ('return its local path'). This clearly distinguishes it from sibling tools that list courses or content but do not download files.

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 and schema provide clear context for when to use this tool: after obtaining course_id from list_courses and content_id from get_course_content or get_assignments. It explains the optional file_id for multi-attachment content items. It does not explicitly say when not to use it, but the file-download purpose is distinct enough among siblings.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alanwtom/blackboard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server