Skip to main content
Glama
Abdullah007bajwa

Excalidraw MCP Server

delete_element

Remove specific elements from Excalidraw diagrams by ID to clean up or edit visual content.

Instructions

Delete an Excalidraw element

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes

Implementation Reference

  • The switch case handler in the CallToolRequestSchema that executes the delete_element tool: parses the ID using Zod schema, verifies existence in the elements Map, deletes the element, and returns a JSON response indicating success.
    case 'delete_element': {
      const params = ElementIdSchema.parse(args);
      const { id } = params;
      
      if (!elements.has(id)) throw new Error(`Element with ID ${id} not found`);
      
      elements.delete(id);
      
      return {
        content: [{ type: 'text', text: JSON.stringify({ id, deleted: true }, null, 2) }]
      };
    }
  • src/index.js:145-154 (registration)
    Registration of the delete_element tool in the MCP server capabilities, including its description and input schema.
    delete_element: {
      description: 'Delete an Excalidraw element',
      inputSchema: {
        type: 'object',
        properties: {
          id: { type: 'string' }
        },
        required: ['id']
      }
    },
  • Zod schema (ElementIdSchema) used to validate and parse the input arguments (id) for the delete_element handler.
    const ElementIdSchema = z.object({
      id: z.string()
    });

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention whether deletion is permanent, whether it cascades to dependent elements, any authorization requirements, or potential side effects. The terse statement leaves critical behavioral aspects undisclosed.

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?

The description is one short sentence with no wasted words, making it highly concise and front-loaded. However, it is minimal to the point of missing valuable contextual information, so it earns a 4 rather than a 5.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is the only source of completeness. It fails to explain return values, behavior on non-existent elements, or any other operational details. For a deletion tool, this is a significant gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the 'id' parameter's format, meaning, or how to obtain it. The description adds no value beyond the raw schema field definition, leaving the agent without context for correctly populating the required parameter.

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 'Delete an Excalidraw element' uses a specific verb (delete) and resource (Excalidraw element), clearly distinguishing it from sibling tools like create_element, update_element, and query_elements. It is unambiguous and action-oriented.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It simply states the action without contextual cues, leaving the agent to infer usage purely from the tool name.

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