Sandbox
@peakmojo/applescript-mcp

AppleScript MCP server for Mac control

This server exposes AppleScript through MCP so an agent can open apps, search files, read data, send messages, and run shell commands on macOS. It is meant to stay small and simple, with both Python and Node.js ways to launch it.

464 stars58 forksPythonUpdated 6mo ago
Who it's for

Builders who want their agent to control macOS apps and files through AppleScript.

What it delivers

You can ask an agent to do Mac tasks like calendar, notes, files, and app control instead of switching to each app yourself.

What it does

Run AppleScript through MCP

Executes AppleScript code from an MCP client to interact with macOS.

Control common Mac apps and data

Works with Notes, Calendar, Contacts, Messages, Apple Music, Safari, and system state like battery and disk space.

Search files and manage local files

Uses Spotlight or Finder to find files, read and write contents, and create folders.

Run shell commands and remote Mac access

Supports shell command execution and remote execution over SSH from Docker or another host.

Dual Python and Node.js packaging

Can be run from `npx` or from Python with `uvx` or `uv` for local development.

How to get it

  1. 1For local development, clone the repo and use uv to run from source
    brew install uv
    git clone https://github.com/peakmojo/applescript-mcp.git
  2. 2Run
    brew install uv
    uv sync --dev

README

AppleScript MCP Server (Dual access: python and node.js)

npm version License: MIT

Overview

A Model Context Protocol (MCP) server that lets you run AppleScript code to interact with Mac. This MCP is intentionally designed to be simple, straightforward, intuitive, and require minimal setup.

I can't believe how simple and powerful it is. The core code is <100 line of code.

AppleScript Server MCP server

https://github.com/user-attachments/assets/b85e63ba-fb26-4918-8e6d-2377254ee388

Features

  • Run AppleScript to access Mac applications and data
  • Interact with Notes, Calendar, Contacts, Messages, and more
  • Search for files using Spotlight or Finder
  • Read/write file contents and execute shell commands
  • Remote execution support via SSH

Example Prompts

Create a reminder for me to call John tomorrow at 10am
Add a new meeting to my calendar for Friday from 2-3pm titled "Team Review"
Create a new note titled "Meeting Minutes" with today's date
Show me all files in my Downloads folder from the past week
What's my current battery percentage?
Show me the most recent unread emails in my inbox
List all the currently running applications on my Mac
Play my "Focus" playlist in Apple Music
Take a screenshot of my entire screen and save it to my Desktop
Find John Smith in my contacts and show me his phone number
Create a folder on my Desktop named "Project Files"
Open Safari and navigate to apple.com
Tell me how much free space I have on my main drive
List all my upcoming calendar events for this week

Usage with Claude Desktop

Node.js

{
  "mcpServers": {
    "applescript_execute": {
      "command": "npx",
      "args": [
        "@peakmojo/applescript-mcp"
      ]
    }
  }
}

Python (uvx)

No clone needed — run directly from the git repo:

{
  "mcpServers": {
    "applescript_execute": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/peakmojo/applescript-mcp",
        "mcp-server-applescript"
      ]
    }
  }
}

Python (local development)

For local development, clone the repo and use uv to run from source:

brew install uv
git clone https://github.com/peakmojo/applescript-mcp.git
{
  "mcpServers": {
    "applescript_execute": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/repo",
        "run",
        "mcp-server-applescript"
      ]
    }
  }
}

Development

Setup

brew install uv
uv sync --dev

Run all checks (in parallel)

uv run check

This runs linting, formatting, type checking, and tests with 100% coverage — all in parallel.

Individual commands

uv run lint        # ruff linter
uv run format      # ruff auto-format
uv run typecheck   # pyrefly type checker
uv run test        # pytest with 100% coverage enforcement

Docker Usage

When running in a Docker container, you can use the special hostname host.docker.internal to connect to your Mac host:

Configuration

{
  "mcpServers": {
    "applescript_execute": {
      "command": "npx",
      "args": [
        "@peakmojo/applescript-mcp",
        "--remoteHost", "host.docker.internal",
        "--remoteUser", "yourusername",
        "--remotePassword", "yourpassword"
      ]
    }
  }
}

This allows your Docker container to execute AppleScript on the Mac host system. Make sure:

  1. SSH is enabled on your Mac (System Settings → Sharing → Remote Login)
  2. Your user has proper permissions
  3. The correct credentials are provided in the config

Files in the repo

Repository payload12 top-level entries
  • .github
  • src
  • tests
  • .gitignore
  • CLAUDE.md
  • LICENSE
  • package-lock.json
  • package.json
  • pyproject.toml
  • README.md
  • server.js
  • uv.lock

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k