Skip to main content
Glama

create-note

Create and save notes directly in Apple Notes through iCloud integration. Input title, content, and optional tags to organize and manage your notes efficiently.

Input Schema

NameRequiredDescriptionDefault
contentYes
tagsNo
titleYes

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "content": { "minLength": 1, "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "title": { "minLength": 1, "type": "string" } }, "required": [ "title", "content" ], "type": "object" }

Implementation Reference

  • The MCP tool handler for 'create-note' that validates input, calls AppleNotesManager.createNote, and returns success/error messages.
    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 }; } }
  • Zod schema defining input parameters for the 'create-note' tool (title, content, optional tags).
    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:33-65 (registration)
    Registration of the 'create-note' tool on the MCP server using server.tool() with name, schema, and handler function.
    server.tool( "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 }; } } );
  • TypeScript interface defining the parameters for create-note (used in handler signature).
    export interface CreateNoteParams { title: string; content: string; tags?: string[]; }
  • Core helper method in AppleNotesManager that formats content and executes AppleScript to create a note in iCloud Apple Notes.
    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() }; }

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

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