delete_planning_attendee
Remove a teacher from a meeting or planning event by providing the attendee's ID.
Instructions
Remove a teacher from a meeting or planning event.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the planning attendee to delete |
Implementation Reference
- src/tools/planning_attendees.ts:42-50 (handler)The handler function that executes the delete_planning_attendee tool logic. It accepts { id } from the input, calls apiDelete to DELETE /planning/attendees/{id}, logs the response, and returns a formatted delete result.
async ({ id }) => { try { const record = await apiDelete<EduframeRecord>(`/planning/attendees/${id}`); void logResponse("delete_planning_attendee", { id }, record); return formatDelete(record, "planning attendee"); } catch (error) { return formatError(error); } }, - The input schema for delete_planning_attendee: requires id (positive integer) with description 'ID of the planning attendee to delete' and annotations marking it as destructive and idempotent.
{ description: "Remove a teacher from a meeting or planning event.", annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true }, inputSchema: { id: z.number().int().positive().describe("ID of the planning attendee to delete") }, }, - src/tools/planning_attendees.ts:35-51 (registration)The server.registerTool call that registers 'delete_planning_attendee' with its schema, annotations, and handler.
server.registerTool( "delete_planning_attendee", { description: "Remove a teacher from a meeting or planning event.", annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true }, inputSchema: { id: z.number().int().positive().describe("ID of the planning attendee to delete") }, }, async ({ id }) => { try { const record = await apiDelete<EduframeRecord>(`/planning/attendees/${id}`); void logResponse("delete_planning_attendee", { id }, record); return formatDelete(record, "planning attendee"); } catch (error) { return formatError(error); } }, ); - src/tools/index.ts:128-130 (registration)The registerAllTools function iterates over all tool registrations including registerPlanningAttendeeTools which registers delete_planning_attendee.
export function registerAllTools(server: McpServer): void { for (const register of tools) { register(server); - src/api.ts:219-229 (helper)The apiDelete helper used by the handler to perform the DELETE HTTP request to /planning/attendees/{id}.
export async function apiDelete<T>(path: string): Promise<T> { const { token } = getConfig(); const url = buildUrl(path); const response = await fetch(url.toString(), { method: "DELETE", headers: buildHeaders(token), }); return handleResponse<T>(response); }