Skip to main content
Glama

post_qna_question

Destructive

Post a question to a course Q&A board by previewing it with dry_run=True, then confirming with dry_run=False to make it visible to the instructor.

Instructions

Post a new question to a course's Q&A board. IRREVERSIBLE and VISIBLE to the instructor once dry_run=False (posted as private/secret by default).

Call with dry_run=True (default) first, show the preview to the user, and only call again with dry_run=False after they explicitly confirm.

Input Schema

NameRequiredDescriptionDefault
dry_runNoIf True (default), only preview without posting. Call again with dry_run=False (same parameters) to actually post it.
subjectYesSubject/title of the Q&A question.
course_idYesPLATO/Moodle numeric course id, e.g. from list_courses.
content_textYesBody text of the Q&A question.

Output Schema

NameRequiredDescriptionDefault
dry_runYes
messageYes
previewYes
executedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds critical context beyond them: the action is IRREVERSIBLE, it becomes visible to the instructor only once dry_run=False, and posts are private/secret by default. The only gap is that it doesn't describe the return/preview shape, which is partly covered by the output schema.

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?

Two short sentences, with the irreversible/visible warning front-loaded and the dry_run protocol second. No filler or repetition of the schema.

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 destructive write tool, the description covers the risk profile, the default state, and the required confirmation workflow; return values are covered by the existing output schema. Nothing an agent needs to call it safely is missing.

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 100%, so all four parameters are documented structurally; the description adds value by framing dry_run as a confirm-then-repost safety switch rather than merely a preview flag. It does not restate subject/course_id, which is fine since the schema handles those.

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 verb and resource — 'Post a new question to a course's Q&A board' — which unambiguously distinguishes it from read-only siblings like list_qna and get_qna_detail. The audience and visibility ('visible to the instructor') are stated up front.

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?

Gives an explicit two-step protocol: call with dry_run=True first, show the preview, then only call with dry_run=False after explicit user confirmation. This is a when-to-use rule with a gating condition, not just context.

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