Skip to main content
Glama

update_drawing

Modify existing Excalidraw diagrams by providing new content to update specific drawings identified by their unique ID.

Instructions

Update an Excalidraw drawing by ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
contentYes

Implementation Reference

  • Core handler function that updates the drawing content in the JSON file and updates the metadata with new timestamp.
    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 server handler case that parses arguments using the schema and calls the 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 the input parameters: id (string) and content (string).
    export const UpdateDrawingSchema = z.object({ id: z.string().min(1), content: z.string().min(1), });
  • index.ts:73-76 (registration)
    Tool registration in the ListTools response, including name, description, and input schema.
    name: "update_drawing", description: "Update an Excalidraw drawing by ID", inputSchema: zodToJsonSchema(drawings.UpdateDrawingSchema), },

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