T

applescript-mcp

...
Created 12/1/2024byjoshrutkowski

Language:

TypeScript

Stars:

80

Forks:

16

applescript-mcp MCP Server

A Model Context Protocol server that enables LLM applications to interact with macOS through AppleScript. This server provides a standardized interface for AI applications to control system functions, manage files, handle notifications, and more.

Features

  • 🗓️ Calendar management (events, reminders)
  • 📋 Clipboard operations
  • 🔍 Finder integration
  • 🔔 System notifications
  • ⚙️ System controls (volume, dark mode, apps)
  • 📟 iTerm terminal integration

Planned Features

  • 📬 Mail (list emails, save attachments, summarize, send)
  • 🧭 Safari (open in Safari, save page content, get selected page/tab)
  • 💬 Messages (send, get, list)
  • ✅ Reminders (create, get)
  • 🗒️ Notes (create, get, list)

Prerequisites

  • macOS 10.15 or later
  • Node.js 18 or later

Available Categories

Calendar

CommandDescriptionParameters
addCreate calendar eventtitle, startDate, endDate
listList today's eventsNone

Clipboard

CommandDescriptionParameters
set_clipboardCopy to clipboardcontent
get_clipboardGet clipboard contentsNone
clear_clipboardClear clipboardNone

Finder

CommandDescriptionParameters
get_selected_filesGet selected filesNone
search_filesSearch for filesquery, location (optional)
quick_lookPreview filepath

Notifications

CommandDescriptionParameters
send_notificationShow notificationtitle, message, sound (optional)
toggle_do_not_disturbToggle DND modeNone

System

CommandDescriptionParameters
volumeSet system volumelevel (0-100)
get_frontmost_appGet active appNone
launch_appOpen applicationname
            | `quit_app` | Close application | `name`, `force` (optional) |

| toggle_dark_mode | Toggle dark mode | None |

iTerm

CommandDescriptionParameters
paste_clipboardPaste to iTermNone
runExecute commandcommand, newWindow (optional)

Development

Setup

# Install dependencies
npm install

# Build the server
npm run build

# Launch MCP Inspector
# See: https://modelcontextprotocol.io/docs/tools/inspector
npx @modelcontextprotocol/inspector node path/to/server/index.js args...

Adding New Functionality

1. Create Category File

Create src/categories/newcategory.ts:

import { ScriptCategory } from "../types/index.js";

export const newCategory: ScriptCategory = {
  name: "category_name",
  description: "Category description",
  scripts: [
    // Scripts will go here
  ]
};

2. Add Scripts

{
  name: "script_name",
  description: "What the script does",
  schema: {
    type: "object",
    properties: {
      paramName: {
        type: "string",
        description: "Parameter description"
      }
    },
    required: ["paramName"]
  },
  script: (args) => `
    tell application "App"
      // AppleScript code using ${args.paramName}
    end tell
  `
}

3. Register Category

Update src/index.ts:

import { newCategory } from "./categories/newcategory.js";
// ...
server.addCategory(newCategory);

Debugging

Using MCP Inspector

The MCP Inspector provides a web interface for testing and debugging your server:

npm run inspector

Logging

Enable debug logging by setting the environment variable:

DEBUG=applescript-mcp* npm start

Common Issues

  • Permission Errors: Check System Preferences > Security & Privacy
  • Script Failures: Test scripts directly in Script Editor.app
  • Communication Issues: Check stdio streams aren't being redirected

Resources

            - [AppleScript Language Guide](https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html)

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

MIT License - see LICENSE for details

Last updated: 3/1/2025

Publisher info

joshrutkowski's avatar

Josh Rutkowski

Software Development Engineer at Amazon

Amazon
Tempe, AZ
22
followers
7
following
8
repos

More MCP servers built with TypeScript

docbase-mcp-server

MCP Server Implementation for DocBase

By f4401
aapi-mcp-server

Advanced API MCP Server

By Asphere-xyz1
DBX-MCP-Server

MCP Server for Dropbox

By amgadabdelhafez1