Skip to main content
Glama

update_drawing

Modify an existing Excalidraw drawing by specifying its ID and providing updated content. Ideal for refining or editing visual diagrams dynamically.

Instructions

Update an Excalidraw drawing by ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYes
idYes

Implementation Reference

  • Core handler function implementing the logic to update a drawing's content and metadata by ID.
    export async function updateDrawing(id: string, content: string): Promise<{ id: string, name: string }> { await ensureStorageDir(); // Get the drawing file path const filePath = path.join(STORAGE_DIR, `${id}.json`); const metadataPath = path.join(STORAGE_DIR, `${id}.meta.json`); try { // Check if the drawing exists await fs.access(filePath); // Read the metadata const metadataStr = await fs.readFile(metadataPath, 'utf-8'); const metadata = JSON.parse(metadataStr); // Update the drawing content await fs.writeFile(filePath, content, 'utf-8'); // Update the metadata metadata.updatedAt = new Date().toISOString(); await fs.writeFile(metadataPath, JSON.stringify(metadata, null, 2), 'utf-8'); return { id, name: metadata.name }; } catch (error) { throw new ExcalidrawResourceNotFoundError(`Drawing with ID ${id} not found`); } }
  • MCP CallToolRequest handler case for update_drawing, validating input and calling the core updateDrawing function.
    case "update_drawing": { const args = drawings.UpdateDrawingSchema.parse(request.params.arguments); const result = await drawings.updateDrawing(args.id, args.content); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; }
  • Zod schema defining input for update_drawing: id and content.
    export const UpdateDrawingSchema = z.object({ id: z.string().min(1), content: z.string().min(1), });
  • index.ts:72-76 (registration)
    Tool registration in the ListTools response, including name, description, and schema.
    { name: "update_drawing", description: "Update an Excalidraw drawing by ID", inputSchema: zodToJsonSchema(drawings.UpdateDrawingSchema), },

Other Tools

Related 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/i-tozer/excalidraw-mcp'

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