Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
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.
Builders who want their agent to control macOS apps and files through AppleScript.
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
- 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
- 2Run
brew install uv uv sync --dev
README
AppleScript MCP Server (Dual access: python and node.js)
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.
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:
- SSH is enabled on your Mac (System Settings → Sharing → Remote Login)
- Your user has proper permissions
- The correct credentials are provided in the config
Files in the repo
- .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 itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More connectors
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.

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code
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.
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.
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.