io.github.henilcalagiya/mcp-apple-notes
Allows interaction with Apple Notes on macOS, providing tools for creating, reading, updating, deleting notes, managing folders, and searching notes with HTML formatting support.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.henilcalagiya/mcp-apple-notesShow me all notes in the project folder"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Apple Notes MCP Server
Powerful tools for automating Apple Notes using Model Context Protocol (MCP)
mcp-name: io.github.henilcalagiya/mcp-apple-notes
Overview
Apple Notes MCP Server provides seamless integration of Apple Notes with any MCP-compatible client. It enables full note automation — including creating, reading, updating, and deleting notes — through a simple and secure AppleScript API layer.
Related MCP server: MCP Apple Notes
Features
Full CRUD support for Apple Notes (Create, Read, Update, Delete)
Works with Continue.dev, Claude Desktop, Perplexity, and other MCP clients
Native AppleScript integration for reliable macOS automation
Comprehensive tools for Apple Notes automation
Automatic installation via
uvxor manual setupFastMCP implementation with modern decorator-based API
Requirements
macOS - Required for AppleScript support
Python 3.10+ - Required for MCP SDK compatibility
Apple Notes application - Must be installed and accessible
MCP-compatible client (e.g., Continue.dev, Claude Desktop)
Quick Start
Step 1: Install uv (if not already installed)
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows (PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Alternative (pip):
pip install uvStep 2: Add MCP Configuration
Add this configuration to your MCP client:
For Perplexity, Cursor, Continue.dev, Claude Desktop:
{
"mcpServers": {
"apple-notes": {
"command": "uvx",
"args": ["mcp-apple-notes@latest"]
}
}
}🎉 That's it! Your MCP client will automatically install and run the package when needed.
Note: Ensure your MCP client has permission to access Apple Notes and execute AppleScript commands in System Preferences → Security & Privacy → Privacy → Accessibility.
Available Tools
Note Management (6 tools)
create_note- Create notes with HTML contentread_note- Read notes by ID with verificationupdate_note- Update notes by ID with HTML contentdelete_note- Delete notes by ID with verificationmove_note- Move notes between folderslist_all_notes- List all notes across all folders
Folder Management (5 tools)
create_folder- Create folders with path supportread_folder- Read folder details by IDrename_folder- Rename folders by IDdelete_folder- Delete folders by IDmove_folder- Move folders between locations
Search & Structure (3 tools)
search_notes- Search notes by keywordslist_folder_with_structure- Show folder hierarchylist_notes_with_structure- Show folders + notes hierarchy
Content Support
HTML Formatting: <h1-h6>, <b><i><u>, <p><div><br>, <ul><ol><li>, <table>, <a>
Special Features:
Unicode and emoji support (🚀, ✅, 📝)
Nested folder paths (up to 5 levels)
Automatic character escaping
Rich content with headers, lists, tables
Architecture
The server follows the MCP protocol specification and is built with a modular architecture:
AppleScript Layer - Handles direct interaction with Apple Notes
Tools Layer - Wraps AppleScript operations for MCP tools
FastMCP Server Layer - Implements MCP protocol using decorators
Troubleshooting
Common Issues
"No module named 'mcp'" Error
Use
uvxfor automatic installationEnsure
uvis installed and in PATH
AppleScript Permission Denied
Grant permission to your terminal/MCP client in System Preferences → Security & Privacy → Privacy → Accessibility
Notes Not Found
Ensure Apple Notes app is installed and accessible
Check that notes exist in the default location
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Henil C Alagiya
GitHub: @henilcalagiya
LinkedIn: Henil C Alagiya
Support & Contributions:
🐛 Report Issues: GitHub Issues
💬 Questions: Reach out on LinkedIn
🤝 Contributions: Pull requests welcome!
Available Tools
14 toolscreate_folderA
Create a folder in Apple Notes.
Features:
Creates folders at root level or nested paths (up to 5 levels deep)
Unicode and emoji support for international characters
Duplicate name detection and comprehensive validation
iCloud account support
Only creates folder if parent path exists
Validation:
Max 128 characters, no special chars: < > : " | ? *
Parent paths must exist, prevents duplicates
Will throw error if parent path doesn't exist
| Name | Required | Description | Default |
|---|---|---|---|
| folder_name | Yes | Name of the folder to create (1-128 chars, no < > : " | ? *) | |
| folder_path | No | Optional nested path (e.g., 'Work/Projects'). If empty, creates at root level. Max 5 levels deep. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral traits. It covers duplication detection, validation rules (128 chars, no special chars), nesting depth limit, and error handling when parent path doesn't exist, leaving no ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with bullet points, and front-loaded with the core purpose. Each sentence adds necessary information without redundancy, making it efficient for agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters, no annotations, and an output schema (which presumably describes return structure), the description fully covers creation behavior, constraints, validation, and error scenarios, leaving no gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds value by explaining the nesting behavior (e.g., 'Optional nested path... Max 5 levels deep') and repeating key validation, which aids understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a folder in Apple Notes' and lists features that differentiate it from sibling tools like move_folder, rename_folder, etc. It specifies root-level and nested path creation, which is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (create folders at root or nested) and includes validation rules and error conditions. While it doesn't explicitly state when not to use or cite alternatives, the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_noteA
Create a new note with specified name and content.
Supported HTML: , , , , , Best Practices: Use semantic HTML, add tags for spacing, avoid CSS styles Folders: Root level or nested paths (up to 5 levels deep) Limitations: No special chars in name, no complex CSS/JS
Example: name: "Project Report" body: "Status: In ProgressTask 1"
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Note title wrapped in <h1> tags (e.g., '<h1>My Note Title</h1>') | |
| body | Yes | Note body content with appropriate HTML formatting (e.g., '<p>Content here</p>'). For proper spacing between two sections, use <br>. | |
| folder_path | No | Target folder path (e.g., 'Work' or 'Work/Projects/2024'). Defaults to 'Notes' | Notes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It discloses supported HTML tags, folder depth limits, and name character restrictions, but does not mention idempotency, overwrite behavior, or error handling. The output schema exists, so return values are not required in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with headings and contains useful examples, but it is somewhat lengthy. While every part adds value, it could be more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, output schema present), the description covers creation details, HTML formatting, folder paths, and limitations. It lacks clarity on duplicate behavior and permissions, but overall is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing clear parameter meanings. The description adds value by elaborating on HTML support, example usage, folder path default and nesting limits, which goes beyond the schema's baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a new note with specified name and content,' clearly distinguishing it from sibling tools like update_note (update) and create_folder (create a folder, not a note). It also provides specifics about HTML support and folder structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers best practices (e.g., using semantic HTML, adding <br> for spacing, avoiding CSS) and explains folder path limitations. While it doesn't explicitly list when not to use, the context from sibling tools and the clear purpose make usage guidelines adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_folderA
Delete a folder in Apple Notes by ID with AppleScript verification.
Security Features:
Verifies folder exists with the given ID
Confirms folder name matches before deletion
Uses primary key ID for precise identification
AppleScript handles ID and name verification automatically
Provides detailed error messages for troubleshooting
Output:
Folder name, ID, deletion status and method information
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Primary key ID of the folder to delete (e.g., 'p2330') | |
| folder_name | Yes | Name of the folder to verify and delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses several behavioral traits: verification of folder existence and name matching, use of AppleScript, and detailed error messages. However, it does not specify whether deletion is permanent or moves to trash, what happens if the folder is not empty, or potential platform dependencies (AppleScript). With no annotations, this leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but includes redundant bullet points (e.g., AppleScript verification mentioned twice). It could be more streamlined while retaining key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description states the output includes folder name, ID, deletion status, and method info, which is adequate for a simple mutation tool. However, missing details about edge cases (e.g., non-existent folder, non-empty folder) and platform constraints limit completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema by explaining that folder_name is used for verification and folder_id for precise identification. This contextualizes both parameters beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a folder in Apple Notes by ID, using AppleScript verification. It specifies the verb 'delete' and the resource 'folder in Apple Notes', and distinguishes from siblings like rename_folder or move_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting a folder but does not provide explicit guidance on when to use this tool versus alternatives (e.g., delete_note). It lacks context on prerequisites or situations where deletion might be inappropriate, such as non-empty folders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_noteA
Delete a note by its primary key ID with AppleScript verification.
Security Features:
Verifies note exists with the given ID
Confirms note name matches before deletion
Uses primary key ID for precise identification
AppleScript handles ID and name verification automatically
Provides detailed error messages for troubleshooting
Output:
Note name, ID, deletion status and method information
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | Primary key ID of the note to delete (e.g., 'p1308') | |
| note_name | Yes | Name of the note to verify and delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses security features like existence and name verification, AppleScript handling, and error messages. This adds transparency beyond the basic 'delete' operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise with structured sections for security features and output. It front-loads the primary action. Some redundancy exists in listing security features twice, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (delete with verification) and the presence of an output schema (not shown but indicated), the description covers the main behavior, parameters, safety checks, and output details. Minor gaps like edge cases or prerequisites are absent but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions like 'Primary key ID of the note to delete (e.g., 'p1308')' and 'Name of the note to verify and delete'. The description adds context about verification but does not significantly extend parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete a note by its primary key ID' and specifies the resource (note) and method (AppleScript verification). It distinguishes from siblings like 'delete_folder' and 'update_note' by focusing on deletion with verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when you need to delete a note) but does not explicitly state when not to use or provide alternatives from the sibling list. No guidance on prerequisites or context like ownership or permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_notesA
List all notes across all folders with their names and IDs.
Features:
Lists ALL notes from ALL folders in Apple Notes
Shows note names, IDs, and folder locations
Includes notes from Recently Deleted folder
Provides comprehensive system overview
Output Format:
Numbered list of all notes
Note names with emoji indicators
Note IDs for reference
Folder location for each note
Returns: Complete list of all notes across all folders in Apple Notes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses inclusion of 'Recently Deleted folder' but does not mention whether the operation is read-only, requires authentication, or has performance implications. Basic behavioral details are present but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with separate sections for features, output format, and returns. It is concise but has minor redundancy (e.g., 'List all notes across all folders' appears twice).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description is complete. It explains behavior, scope, and return format, covering all necessary context for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage (vacuously). Baseline for no parameters is 4, and the description adds no parameter information because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all notes across all folders with their names and IDs', using a specific verb ('list') and resource ('notes across all folders'). It distinguishes from sibling tools like 'list_notes_with_structure' and 'search_notes' by emphasizing comprehensive scope including 'Recently Deleted folder'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for a 'comprehensive system overview' but does not explicitly state when to use this tool versus alternatives. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_folder_with_structureA
List the complete folder structure with hierarchical tree format.
Features:
Shows all folders in hierarchical tree format
Displays folder nesting levels with visual indicators
Works with root level and nested folder structures
Output Format:
Tree structure with ├── and └── indicators
Clear hierarchy visualization
Folder names with proper indentation
Returns: Hierarchical tree structure of all folders in Apple Notes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It describes output format (tree with ├── and └──), nesting levels, and that it works with root and nested structures. This adds meaningful behavioral context beyond a simple 'list folders'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for features, output format, and returns. It is somewhat verbose (repeats 'tree structure'), but the organization aids readability. Could be trimmed slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description explains the output format in detail. It covers what the tool does and key features. For a read-only listing tool, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%. The baseline for 0 parameters is 4. The description adds value by explaining the tool's behavior, which is not parameter-dependent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the complete folder structure in a hierarchical tree format. The name itself is descriptive, and the description emphasizes the tree visualisation, distinguishing it from sibling tools like 'read_folder' which likely shows a single folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description describes features but does not explicitly state when to use this tool over alternatives. It implies usage for viewing hierarchy, but lacks explicit guidance on when not to use it (e.g., for individual folder details).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notes_with_structureA
List the complete folder structure with notes included in hierarchical tree format.
Features:
Shows all folders and notes in hierarchical tree format
Displays folder nesting levels with visual indicators
Lists notes within each folder
Works with root level and nested folder structures
Output Format:
Tree structure with ├── and └── indicators
Folder names with proper indentation
Notes listed under their respective folders
Returns: Hierarchical tree structure of all folders and notes in Apple Notes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It explains the output format and that it lists all folders and notes, but does not mention if it's read-only, performance implications, or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear purpose, bullet features, output format, and return statement. Every sentence is useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an output schema available, the description is fairly complete. It covers purpose and output format, but could mention read-only nature or any constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the baseline is 4. The description does not need to explain parameters, and it adds value by describing the output format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists the complete folder structure with notes in a hierarchical tree format, distinguishing it from siblings like list_all_notes (flat list) and list_folder_with_structure (single folder).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description outlines features but does not explicitly state when to use this tool versus alternatives like list_all_notes or list_folder_with_structure. Usage context is implied but not directly given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_folderA
Move a folder from one location to another in Apple Notes by ID with AppleScript verification.
Features:
Moves folders by ID with AppleScript verification
Comprehensive validation and duplicate detection
Unicode and emoji support for folder names
Works with root level and nested paths
Validation:
Validates target path exists
Prevents duplicate names in target location
Enforces 5-level nesting depth limit
AppleScript verifies ID and name match the same folder
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Primary key ID of the folder to move (e.g., 'p2330') | |
| folder_name | Yes | Name of the folder to verify and move | |
| target_path | No | Target path where to move the folder (e.g., 'Archive'). If empty, moves to root level. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description fully discloses behavioral traits including AppleScript verification, validation, duplicate detection, Unicode support, and nesting depth limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with headings and bullet points, front-loaded main action. Slight redundancy between features and validation lists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, features, validation rules, and compatibility details. Output schema handles return values, so no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds verification context but does not significantly enhance parameter understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves a folder by ID with AppleScript verification, distinguishing it from sibling tools like rename_folder or move_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for moving folders with specific features, but lacks explicit when-not-to-use or alternative comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_noteA
Move a note from one folder to another in Apple Notes by ID with AppleScript verification.
Features:
Moves notes between root folders and nested paths (up to 5 levels deep)
Comprehensive validation and error handling
Supports all folder path types (root, simple, nested)
Maintains note content and metadata during move
AppleScript verifies ID and name match before moving
Requirements:
Note must exist with the given ID and name
Target folder path must exist
AppleScript handles all verification automatically
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | Primary key ID of the note to move (e.g., 'p1308') | |
| note_name | Yes | Name of the note to verify and move | |
| target_folder_path | Yes | Target folder path where to move the note (e.g., 'Archive' or 'Work/Completed') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses AppleScript verification, validation, and maintenance of note content/metadata. It also mentions support for nested paths and error handling. However, it does not explicitly confirm if the operation is a move vs. copy+delete, though 'maintains content and metadata' implies non-destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with bullet points and a clear first sentence, but it is longer than necessary (10 lines). Some information, like 'AppleScript verifies ID and name match before moving,' is repeated in both features and requirements. It could be more concise while retaining key points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's purpose, requirements, and verification process. It lists essential requirements (note existence, target folder existence). It does not cover failure scenarios or edge cases, but overall it provides sufficient context for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all parameters with descriptions, achieving 100% coverage. The description adds value by explaining that note_id and note_name are used for verification, and target_folder_path supports nested folders up to 5 levels deep. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Move a note from one folder to another in Apple Notes by ID with AppleScript verification.' It specifies the verb (move), resource (note), and key method (by ID). This directly distinguishes it from sibling tools like move_folder, which operates on a different resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives. It implies usage for moving notes with verification but lacks exclusions or references to siblings. The context signals and sibling list suggest differentiation by resource, but no direct guidance is provided in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_folderA
Read a folder by its primary key ID with AppleScript verification.
Security Features:
Verifies folder exists with the given ID and name
Uses primary key ID for precise identification
Returns detailed folder information with contents
Output:
Folder metadata (name, ID, creation/modification dates)
Direct child folders (names and IDs)
Notes in the folder (names and IDs)
Summary counts
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Primary key ID of the folder to read (e.g., 'p2330') | |
| folder_name | Yes | Name of the folder to verify and read |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes verification process and output structure in detail, but lacks explicit statement that it is read-only (no side effects). Given no annotations, this is strong but not perfect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured into sections, every sentence adds value, no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, security, output structure; could mention relation to siblings like list_folder_with_structure, but adequate for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3; description adds purpose for both parameters (verification, precise ID) and why both are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (read) and resource (folder), specifies use of primary key ID and verification, distinct from siblings like list_folder_with_structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for reading a specific folder with verification, but no explicit when-to-use vs alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_noteA
Read a note by its primary key ID with AppleScript verification.
Security Features:
Verifies note exists with the given ID and name
Uses primary key ID for precise identification
Returns full note content with metadata
Output:
Note name, ID, folder, creation/modification dates
Full note content (title + body)
Status and read method information
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | Primary key ID of the note to read (e.g., 'p1308') | |
| note_name | Yes | Name of the note to verify and read |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses verification via AppleScript and outlines the return fields, adding value beyond the schema. However, it does not specify error behavior, permissions, or side effects from the verification step, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with headings and a concise bullet list, making it easy to scan. It avoids unnecessary fluff, though the bullet list could be integrated into prose for even more brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 required params, no enums), the description covers the core functionality and output fields. It lists relevant metadata and content. However, it does not elaborate on the 'AppleScript verification' process, which could affect understanding of reliability or platform constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the input schema already documents both parameters. The description reinforces the verification role of 'note_name' and the primary key usage of 'note_id', but adds minimal additional semantic value beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Read' and resource 'note', with distinguishing details like 'primary key ID' and 'AppleScript verification'. It differentiates from sibling tools such as 'read_folder' or 'search_notes' by emphasizing ID-based access and verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus alternatives like 'search_notes' or 'list_all_notes'. It does not mention when not to use it or provide context on prerequisites, such as needing to know the note ID beforehand.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_folderA
Rename a folder in Apple Notes by ID with enhanced name verification.
Features:
Renames folders by ID with double name verification
Comprehensive validation and duplicate detection
Unicode and emoji support for folder names
Works with root level and nested paths
Validation:
Max 128 characters, no special chars: < > : " | ? *
Prevents duplicate names in same location
New name cannot be same as current name
Verifies folder ID matches current name (double verification)
Gets actual folder name by ID for additional security
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Primary key ID of the folder to rename (e.g., 'p2330') | |
| current_name | Yes | Current name of the folder to verify and rename | |
| new_name | Yes | New name for the folder (1-128 chars, no < > : " | ? *) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavioral traits. It covers validation rules, double verification, and Unicode support but omits mutation effects, success/failure responses, or security implications. The disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections and bullet points, front-loading the main purpose. Each sentence adds value, though there is minor redundancy (e.g., 'double name verification' appears twice). Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters and an output schema, the description covers validation rules, verification steps, and constraints. It explains how rename differs from siblings, but could mention output or error handling for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the baseline is 3. The description adds context (e.g., double verification) but mostly repeats schema details like character constraints for new_name. It provides marginal extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Rename a folder in Apple Notes by ID with enhanced name verification,' specifying the verb 'rename' and the resource 'folder' with a distinct scope. It distinguishes from sibling tools like move_folder and delete_folder by focusing on renaming with verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through validation rules and features but does not explicitly state when to use this tool versus alternatives like create_folder or move_folder. It lacks guidance on preconditions or exclusions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_notesA
Search for notes containing the specified keywords.
Features:
Searches through all notes in Apple Notes
Finds notes containing any of the specified keywords
Case-insensitive search in note content
Returns note details with matched keywords
Output Format:
Numbered list of matching notes
Note names, IDs, and folder locations
Matched keywords for each note
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Comma-separated keywords to search for in note content |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses case-insensitive search, searches all notes, returns names, IDs, folders, and matched keywords. No annotations provided, so description carries burden; it is fairly transparent but could mention performance or scope limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with clear bullet points and sections for features and output format. No unnecessary words, well front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, features, output format sufficiently for a simple search tool. Does not mention result limits or whether trashed notes are excluded, but given output schema exists for return values, completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds that keywords are comma-separated and explains how they are used to search content, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it searches for notes by keywords, with specific verb 'search' and resource 'notes'. Distinguishes from sibling CRUD and listing tools by focusing on content search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes when to use (searching notes by keywords) and features like case-insensitivity. Does not explicitly state when not to use or compare with alternatives like list_all_notes, but implied usage is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_noteA
Update an existing note by its primary key ID with AppleScript verification.
Required: note_id, note_name, new_name, and new_body parameters Supported HTML: , , , , , Best Practices: Use semantic HTML, add tags for spacing, avoid CSS styles Security: AppleScript verifies ID and name match before updating
Example: note_id: "p1234" note_name: "Current Note Title" new_name: "Updated Report" new_body: "Status: CompleteDone"
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes | Primary key ID of the note to update (e.g., 'p1234') | |
| note_name | Yes | Current name of the note to verify and update | |
| new_name | Yes | New note title wrapped in <h1> tags (e.g., '<h1>Updated Title</h1>') | |
| new_body | Yes | New note body content with appropriate HTML formatting (e.g., '<p>Updated content</p>') For proper spacing between two sections, use <br>. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds behavioral context: AppleScript verifies ID and name match before updating. However, it lacks details on error handling, idempotency, or side effects, which are important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear first sentence, then grouped information on requirements, HTML support, best practices, security, and an example. While slightly verbose, it front-loads key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description covers the tool's purpose, input constraints, HTML formatting, and security verification. For a tool with 4 parameters and specific formatting needs, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value beyond the schema by specifying requirements (required), providing an example with concrete values, and explaining HTML formatting rules. This helps the agent understand correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing note by its primary key ID with AppleScript verification', specifying the verb (update), resource (note), and distinctive verification step. It distinguishes from sibling tools like create_note and delete_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists required parameters and provides an example, making the usage context clear. It implicitly differentiates from siblings by focusing on updating, but does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
v0.1.2- First observed
create_folder - First observed
create_note - First observed
delete_folder - First observed
delete_note - First observed
list_all_notes - First observed
list_folder_with_structure - First observed
list_notes_with_structure - First observed
move_folder - First observed
move_note - First observed
read_folder - First observed
read_note - First observed
rename_folder - First observed
search_notes - First observed
update_note
TDQS
Each tool targets a distinct resource (folder or note) with a specific action (create, read, update, delete, list, move, search, rename). The few overlapping listing tools have clearly different output formats (plain list vs. hierarchical structure).
All tool names follow a consistent verb_noun pattern in snake_case, such as create_folder, list_notes_with_structure, move_note. There are no variations or mixed conventions.
14 tools is well-scoped for an Apple Notes management server. It covers all core operations (CRUD, listing, searching, moving, renaming) for both folders and notes without unnecessary bloat or omissions.
The tool surface provides complete lifecycle management for folders and notes: create, read, update, delete, list, search, move, rename. No obvious missing operations for the domain of note-taking.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Notes, files, GitHub, and Drive through one MCP connection.
Notes, files, GitHub, and Drive through one MCP connection.
Notes, files, GitHub, and Drive through one MCP connection.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables interaction with Apple Notes on macOS through AppleScript, allowing users to list, search, read, create, update, and delete notes across accounts and folders.71-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, read, create, and append Apple Notes using MCP tools, supporting bulk folder reads and tag search.17MIT
- AlicenseAqualityDmaintenanceEnables AI clients to search, read, create, update, move, and delete Apple Notes on macOS via AppleScript automation.104332MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for macOS that enables creating, reading, and searching Apple Notes programmatically through tools like find, get by title or ID, and create.433MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/henilcalagiya/mcp-apple-notes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server