Skip to main content
Glama

create-note

Create new notes in Apple Notes with title, content, and optional tags using natural language commands.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYes
contentYes
tagsNo

Implementation Reference

  • MCP tool handler for 'create-note': calls AppleNotesManager.createNote and returns formatted success or error response.
    async ({ title, content, tags = [] }: CreateNoteParams) => { try { const note = notesManager.createNote(title, content, tags); if (!note) { return { content: [{ type: "text", text: "Failed to create note. Please check your Apple Notes configuration." }], isError: true }; } return { content: [{ type: "text", text: `✅ Note created successfully: "${note.title}"` }] }; } catch (error) { return { content: [{ type: "text", text: `Error creating note: ${error instanceof Error ? error.message : 'Unknown error'}` }], isError: true }; } }
  • Input schema for 'create-note' tool using Zod validators.
    const createNoteSchema = { title: z.string().min(1, "Title is required"), content: z.string().min(1, "Content is required"), tags: z.array(z.string()).optional() };
  • src/index.ts:34-65 (registration)
    Registration of the 'create-note' tool on the MCP server.
    "create-note", createNoteSchema, async ({ title, content, tags = [] }: CreateNoteParams) => { try { const note = notesManager.createNote(title, content, tags); if (!note) { return { content: [{ type: "text", text: "Failed to create note. Please check your Apple Notes configuration." }], isError: true }; } return { content: [{ type: "text", text: `✅ Note created successfully: "${note.title}"` }] }; } catch (error) { return { content: [{ type: "text", text: `Error creating note: ${error instanceof Error ? error.message : 'Unknown error'}` }], isError: true }; } } );
  • Core helper method in AppleNotesManager that executes AppleScript to create the note in Apple Notes app.
    createNote(title: string, content: string, tags: string[] = []): Note | null { const formattedContent = formatContent(content); const script = ` tell application "Notes" tell account "${this.ICLOUD_ACCOUNT}" make new note with properties {name:"${title}", body:"${formattedContent}"} end tell end tell `; const result = runAppleScript(script); if (!result.success) { console.error('Failed to create note:', result.error); return null; } return { id: Date.now().toString(), title, content, tags, created: new Date(), modified: new Date() }; }
  • Helper function to format note content for AppleScript compatibility.
    const formatContent = (content: string): string => { if (!content) return ''; // Define replacement patterns for text formatting const replacements: [string, RegExp][] = [ ['\n', /\n/g], ['\t', /\t/g], ['"', /"/g], // Escape quotes for AppleScript ]; return replacements.reduce( (text, [char, pattern]) => text.replace(pattern, char === '"' ? '\\"' : '<br>'), content ); };
Install Server

Other 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/Siddhant-K-code/mcp-apple-notes'

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