Skip to main content
Glama

delete_media

Destructive

Delete a media item from the workspace media library.

This removes the Firestore record. The file in storage may still exist but will no longer appear in the media library. media_ids deletes up to 50 in one call, each answered in media; one still on a post answers media_in_use with its usedInPosts and the rest still go.

Args: media_id: The media item ID to delete. workspace_id: Workspace ID or name. Optional if user has only one workspace. media_ids: Several media items to delete, instead of media_id.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "delete_media"
  }
}

Input Schema

NameRequiredDescriptionDefault
contextNoThe user's underlying goal for this call, in one sentence without personal details. Used for product analytics only.
media_idNo
llm_modelNoThe model identifier of the calling assistant, or "unknown". Used for product analytics only.
media_idsNo
workspace_idNo
conversation_idNoPass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.

Output Schema

NameRequiredDescriptionDefault
_mcp_instructionsNoServer-issued metadata for this conversation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / media_id / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / media_id / default
      Added value: +null
    • removedInput schema / properties / media_id / type
      Removed value: -"string"
    • addedInput schema / properties / media_ids
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Media Ids"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "media_id"
      -]New value: +[]
  2. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "media_id",
      -  "context",
      -  "llm_model"
      -]New value: +[
      +  "media_id"
      +]
  3. First observed

TDQS

A4.3/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, and the description adds behavior annotations cannot: only the Firestore record is removed while the storage file may remain, results are returned per item in `media`, and items still attached to posts come back in `media_in_use` with `usedInPosts` while the rest still delete. That partial-failure semantic is the key operational detail.

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?

Front-loads the action and scope, then the storage caveat, then the batch and partial-failure semantics — every sentence earns its place. The Args block is conventional but compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the description references the return keys (`media`, `media_in_use`, `usedInPosts`), so return values are adequately covered. But deletion is irreversible and the description never warns of no-undo or any permission/confirmation requirement, leaving a meaningful gap for a destructive tool.

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 50%, and media_id/media_ids have no schema descriptions, so the Args section adds real meaning by making them mutually exclusive alternatives and capping batches at 50; workspace_id optionality is also clarified. It says nothing about the analytics-only parameters (context, llm_model) or conversation_id, though those are self-documented in 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?

States a specific verb and resource with scope: deletes a media item from the workspace media library, and distinguishes removing the Firestore record from the storage file persisting. It also names the batch variant, letting an agent separate it from add_media, list_media, and attach_media.

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?

Explains the single-vs-batch choice (media_ids deletes up to 50 instead of media_id) and that workspace_id is optional when the user has only one workspace. It stops short of naming an alternative tool or stating when-not to use it, e.g. detaching media from a post rather than deleting it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.