All tools follow a 3-layer architecture: Server → Tools → Operations → AppleScript
Input: name (HTML title) + body (HTML content) + folder_path (optional, default: "Notes")
Output: note_id, name, status
Flow: Server → Tools → CreateNoteOperations → AppleScript
Steps: Validate HTML → Combine content → Create note in folder → Return note data
Input: note_id + note_name
Output: name, note_id, body, creation_date, modification_date, status
Flow: Server → Tools → ReadNoteOperations → AppleScript
Steps: Validate inputs → Build Core Data ID → Verify name match → Read note → Parse content
Input: note_id + note_name + new_name (HTML title) + new_body (HTML content)
Output: name, note_id, status
Flow: Server → Tools → UpdateNoteOperations → AppleScript
Steps: Validate HTML → Combine content → Verify name match → Update note → Parse result
Input: note_id + note_name
Output: name, note_id, status
Flow: Server → Tools → DeleteNoteOperations → AppleScript
Steps: Validate inputs → Build Core Data ID → Verify name match → Delete note → Parse result
Input: note_id + note_name + target_folder_path
Output: name, note_id, source_folder, target_folder, status, message
Flow: Server → Tools → MoveNoteOperations → AppleScript
Steps: Validate inputs → Build Core Data ID → Verify name match → Move note → Parse result
Input: None
Output: notes_list (name, note_id, folder), count
Flow: Server → Tools → ListNotesOperations → AppleScript
Steps: Get all notes → Parse note list → Format response with folder info
Input: folder_name + folder_path (optional, default: "")
Output: name, id, status
Flow: Server → Tools → CreateFolderOperations → AppleScript
Steps: Validate name → Check path exists → Create folder → Return folder data
Input: folder_id + folder_name
Output: name, folder_id, child_folders (name, id), notes (name, note_id), counts
Flow: Server → Tools → ReadFolderOperations → AppleScript
Steps: Validate inputs → Build Core Data ID → Verify name match → Get child folders & notes → Parse result
Input: folder_id + current_name + new_name
Output: folder_id, current_name, new_name, folder_path, status
Flow: Server → Tools → RenameFolderOperations → AppleScript
Steps: Validate inputs → Build Core Data ID → Verify name match → Rename folder → Parse result
Input: folder_id + folder_name
Output: name, folder_id, status
Flow: Server → Tools → DeleteFolderOperations → AppleScript
Steps: Validate inputs → Build Core Data ID → Verify name match → Delete folder → Parse result
Input: folder_id + folder_name + target_path (optional, default: "")
Output: name, folder_id, source_path, target_path, status
Flow: Server → Tools → MoveFolderOperations → AppleScript
Steps: Validate inputs → Build Core Data ID → Verify name match → Move folder → Parse result
Input: None
Output: folder_tree (hierarchical structure with IDs)
Flow: Server → Tools → FolderStructureOperations → AppleScript
Steps: Get all folders → Build hierarchy tree → Format tree structure
Input: keywords (comma-separated string)
Output: matching_notes (name, note_id, folder, keywords), count
Flow: Server → Tools → SearchNotesOperations → AppleScript
Steps: Parse keywords → Search all notes → Match keywords → Format results
Input: None
Output: complete_tree (folders + notes in hierarchical structure)
Flow: Server → Tools → NotesStructureOperations → AppleScript
Steps: Get all folders & notes → Build complete hierarchy → Format tree with notes
- Input: ID + name for verification
- Security: AppleScript verifies ID and name match
- Tools:
read_note,update_note,delete_note,move_note,read_folder,rename_folder,delete_folder,move_folder
- Input: Path-based or no parameters
- Security: Path validation and existence checks
- Tools:
create_note,create_folder,list_all_notes,list_folder_with_structure,list_notes_with_structure,search_notes