Skip to main content
Glama
phuryn

AskOne: Live Q&A and Polls

Approve or hide a question

moderate_question
DestructiveIdempotent

Moderate live Q&A by approving waiting questions so the room sees them, or hiding pending ones; get IDs first. Returns the question's new status.

Instructions

Approve a waiting question so the room sees it, or hide it so nobody does (action=approve or hide). Hide accepts only waiting (pending) questions, so an approved question cannot be hidden here; approve accepts waiting questions and questions the AI hid. Use it in rooms with human or AI moderation, where new questions wait for review; get ids from get_room_questions. An AI-hidden question can be approved only by an id you already have, because reads never return hidden questions; a question a person hid cannot be restored. Returns the question's id and new status. Needs rooms:write.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYesSix-character room code, for example ABC234
actionYes
question_idYesQuestion id from get_room_questions

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.2.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover safety (destructive, idempotent, openWorld) but the description adds substantial behavior beyond them: hide accepts only pending questions, approve accepts waiting and AI-hidden questions, person-hidden questions are unrecoverable, hidden questions are never returned by reads, and it requires rooms:write.

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?

Dense and front-loaded, with the core action stated first and constraints following. It is on the long side, but nearly every clause carries a distinct state-transition or precondition fact rather than filler.

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 still names the return value ('the question's id and new status'), and it covers permissions, id sourcing, and state-transition edge cases. An agent has everything needed to invoke it correctly.

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 67% (code and question_id documented; action is not). The description compensates by defining the action enum values and their exact effects, plus the constraint that hide only works on pending questions - meaning beyond the 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 specific verb+resource ('Approve a waiting question... or hide it') and immediately disambiguates the two action modes. It is clearly distinguishable from siblings like get_room_questions or answer_question.

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?

It states the exact context ('rooms with human or AI moderation, where new questions wait for review'), rules for when hide vs approve applies, and routes the agent to get_room_questions for ids. Alternatives and preconditions are explicit.

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