Skip to main content
Glama
Siddhant-K-code

Apple Notes MCP Server

get-note-content

Retrieve content from Apple Notes by specifying a note title, enabling quick access to stored information through the Apple Notes MCP Server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYes

Implementation Reference

  • Core handler logic for retrieving note content via AppleScript execution on Apple Notes app.
    getNoteContent(title: string): string {
      const sanitizedTitle = title.replace(/"/g, '\\"');
      const script = `
        tell application "Notes"
          tell account "${this.ICLOUD_ACCOUNT}"
            get body of note "${sanitizedTitle}"
          end tell
        end tell
      `;
    
      const result = runAppleScript(script);
      if (!result.success) {
        console.error('Failed to get note content:', result.error);
        return '';
      }
    
      return result.output;
    }
  • src/index.ts:95-117 (registration)
    Registers the 'get-note-content' tool with the MCP server, providing schema and thin wrapper handler that delegates to AppleNotesManager.
    server.tool(
      "get-note-content",
      getNoteSchema,
      async ({ title }: GetNoteParams) => {
        try {
          const content = notesManager.getNoteContent(title);
          return {
            content: [{
              type: "text",
              text: content || "Note not found"
            }]
          };
        } catch (error) {
          return {
            content: [{
              type: "text",
              text: `Error retrieving note content: ${error instanceof Error ? error.message : 'Unknown error'}`
            }],
            isError: true
          };
        }
      }
    );
  • Zod schema for validating input parameters (title) of the get-note-content tool.
    const getNoteSchema = {
      title: z.string().min(1, "Note title is required")
    };
  • TypeScript interface defining the input parameters for the get-note-content tool handler.
    export interface GetNoteParams {
      title: string;
    }
  • Utility function that executes AppleScript commands using osascript, used by the note content retrieval logic.
    export function runAppleScript(script: string): AppleScriptResult {
      try {
        // Trim and sanitize the script
        const sanitizedScript = script.trim().replace(/[\r\n]+/g, ' ');
    
        // Execute the AppleScript command
        const output = execSync(`osascript -e '${sanitizedScript}'`, {
          encoding: 'utf8',
          timeout: 10000 // 10 second timeout
        });
    
        return {
          success: true,
          output: output.trim()
        };
      } catch (error) {
        console.error('AppleScript execution failed:', error);
    
        return {
          success: false,
          output: '',
          error: error instanceof Error
            ? error.message
            : 'Unknown error occurred while executing AppleScript'
        };
      }
    }
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