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
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| tags | No | ||
| title | Yes |
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
- src/index.ts:36-64 (handler)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 }; } }
- src/index.ts:18-22 (schema)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 }; } } );
- src/types.ts:17-21 (schema)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() }; }