Skip to main content
Glama
honeybluesky

mcp-my-apple-remembers

by honeybluesky

MCP Server - My Apple Remembers

A simple MCP server that recalls and saves memories from and to Apple Notes.

Docker Pulls License: MIT

Features

  • Memory Recall: Access notes, calendar events, messages, files and other information from your Mac

  • Memory Persistence: Save important information to Apple Notes for future reference

  • Minimal Setup: Just enable Remote Login on the target Mac

  • Universal Compatibility: Works with all macOS versions

Related MCP server: Beeper MCP Note Server

Control in your hand

You can use prompt to instruct how you want your memory to be save. For example:

You should always use Folder "baryhuang" on recall and save memory.

Installation

You can configure Claude Desktop to use the Docker image by adding the following to your Claude configuration:

{
  "mcpServers": {
    "my-apple-remembers": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-e",
        "MACOS_USERNAME=your_macos_username",
        "-e",
        "MACOS_PASSWORD=your_macos_password",
        "-e",
        "MACOS_HOST=localhost",
        "--rm",
        "buryhuang/mcp-my-apple-remembers:latest"
      ]
    }
  }
}

Developer Instructions

Clone the repo

# Clone the repository
git clone https://github.com/baryhuang/mcp-my-apple-remembers.git
cd mcp-my-apple-remembers

Building the Docker Image

# Build the Docker image
docker build -t mcp-my-apple-remembers .

Publishing Multi-Platform Docker Images

# Set up Docker buildx for multi-platform builds
docker buildx create --use

# Build and push the multi-platform image
docker buildx build --platform linux/amd64,linux/arm64 -t buryhuang/mcp-my-apple-remembers:latest --push .

Tools Specifications

my_apple_recall_memory

Run AppleScript commands on a remote macOS system to recall memories. This tool helps access Apple Notes, Calendar events, iMessages, chat history, files, and other information on your Mac.

my_apple_save_memory

Run AppleScript commands on a remote macOS system to save important information. This tool allows AI to persist relevant information to Apple Notes for future reference.

All tools require macOS SSH access, with host and password.

Security Note

Always use secure, authenticated connections when accessing remote macOS machines. This tool should only be used with servers you trust and have permission to access.

License

See the LICENSE file for details.

Available Tools

2 tools
my_apple_recall_memoryB

Run Apple Script on a remote MacOs machine. This call should be used to recall the apple notes, apple calendar, imessages, chat messages, files, context or any other information of a MacOs machine can have access to.

ParametersJSON Schema
NameRequiredDescriptionDefault
code_snippetYesAppleScript code to execute on the remote machine. Can be a single line or multi-line script. You should prefer multi-line scripts for complex operations.
timeoutNoCommand execution timeout in seconds (default: 60)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers limited behavioral details. It mentions remote execution and timeout (implied via parameter) but doesn't disclose critical traits like authentication requirements, error handling, security implications, or what 'recall' entails operationally. The description adds some context but leaves significant gaps for a tool with mutation potential.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise with two sentences that cover purpose and usage. It's front-loaded with the core function, though the second sentence could be more structured. No wasted words, but minor room for improvement in clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (remote execution, potential data access), no annotations, and no output schema, the description is incomplete. It lacks details on return values, error conditions, security constraints, and operational limits, making it inadequate for safe and effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain AppleScript syntax or provide examples). Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Run Apple Script on a remote MacOs machine' and specifies what it can recall (notes, calendar, messages, files, etc.). It distinguishes from the sibling 'my_apple_save_memory' by focusing on recall rather than save operations, though the distinction could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('This call should be used to recall...') but lacks explicit guidance on when to use this tool versus alternatives or prerequisites. It mentions the sibling tool name indirectly but doesn't provide clear when/when-not rules or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

my_apple_save_memoryB

Run Apple Script on a remote MacOs machine. This call should be used to save relevant information to the apple notes. You decide what information to save. You should always add a new notes with a timestamp as the title.

ParametersJSON Schema
NameRequiredDescriptionDefault
code_snippetYesAppleScript code to execute on the remote machine. Can be a single line or multi-line script. You should prefer multi-line scripts for complex operations.
timeoutNoCommand execution timeout in seconds (default: 60)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions executing on a remote machine and saving to Apple Notes, but doesn't cover important behavioral aspects like authentication requirements, error handling, what happens if the remote machine is unavailable, whether this is a synchronous or asynchronous operation, or potential side effects beyond note creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise with three sentences that each serve a purpose: stating the core function, specifying the intended use case, and providing implementation guidance. It's front-loaded with the main purpose. The third sentence could be more tightly integrated with the second for better flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that executes remote AppleScript with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, authentication requirements, or important behavioral constraints. The guidance about timestamps and note creation is helpful but insufficient for a remote execution tool with potential security and reliability implications.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions AppleScript and saving to notes, which aligns with the code_snippet parameter purpose, but provides no additional semantic context about parameter usage or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Run Apple Script on a remote MacOs machine' and specifies it's for saving information to Apple Notes. It distinguishes from the sibling tool 'my_apple_recall_memory' by focusing on saving rather than recalling. However, it doesn't explicitly contrast the two tools in the description text itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context: 'This call should be used to save relevant information to the apple notes' and gives implementation guidance about timestamps. However, it doesn't explicitly state when to use this tool versus alternatives or when not to use it. The sibling tool name suggests a recall function, but no explicit comparison is made.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.2/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one is for retrieving information from various macOS sources (recall), and the other is for saving information specifically to Apple Notes (save). There is no overlap or ambiguity between these functions.

Naming Consistency5/5

Both tools follow a consistent 'my_apple_verb_memory' pattern, using the same prefix and suffix structure. The verbs 'recall' and 'save' are descriptive and aligned in style.

Tool Count2/5

With only 2 tools, the server feels thin for its apparent scope of interacting with macOS data (notes, calendar, messages, files, etc.). A more comprehensive set would include tools for updating or deleting information, or handling other macOS apps beyond just Apple Notes.

Completeness2/5

The server is severely incomplete for macOS data management. It only covers recall (read) and save (create to notes), missing essential operations like update, delete, or interactions with other macOS apps (e.g., calendar events, messages). This will likely cause agent failures in broader workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

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/honeybluesky/my-apple-remembers'

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