Add your description here
Project description
MCP macOS Control Server
This repository hosts an experimental Model Context Protocol (MCP) server that exposes macOS automation features to large language models. The implementation is written in Python using FastMCP and wraps AppleScript automation scripts so MCP clients can invoke common Apple application actions.
Status
- ✅ Mail: listing accounts and mailboxes, fetching latest/unread/search results, and sending email through Apple Mail are available via dedicated MCP tools.
- ⏳ Planned: Notes, Messages, Reminders, Contacts, Calendar and other macOS apps will follow the same structure—each with its own tool module and AppleScript scripts.
Project layout
src/mcp_macos/
├── __init__.py # FastMCP hub registering application sub-servers
├── scripts/ # AppleScript sources (grouped by application)
├── tools/ # FastMCP sub-servers (one per application)
└── utils/applescript.py # Helpers to load and execute AppleScript files
Each tool module calls into the corresponding scripts to keep AppleScript logic separate from Python orchestration. The hub imports each app-specific FastMCP server using import_server, so clients see a single manifest with prefixed tool names.
Getting started
- Install dependencies (requires Python 3.12):
uv sync - Run the MCP hub:
uv run fastmcp dev src/mcp_macos/__init__.py
or execute the packaged entry point:uv run mcp-macos
When connecting through an MCP client (e.g., Claude Desktop), ensure the Apple applications you control have granted automation permissions to your terminal or host app.
Adding new applications
- Create
src/mcp_macos/scripts/<app>/with AppleScript files for each action. - Implement
src/mcp_macos/tools/<app>.pywith FastMCP tools that call those scripts. - Import the new sub-server in
src/mcp_macos/__init__.py.
Follow the Mail module as a reference; it demonstrates parsing AppleScript output into JSON-friendly data structures that MCP clients can consume reliably.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_macos-0.1.0.tar.gz.
File metadata
- Download URL: mcp_macos-0.1.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e9c7619cefe837a2d440d7340746ce6febfda204b2c1584f988ecf319926b79
|
|
| MD5 |
a04f6a253eb4fcc24fe25a3138809aeb
|
|
| BLAKE2b-256 |
df4456cbcb78b09040f84bef20e928fecc9cfc35f51f6cbbe79d740dbb2b4eb7
|
File details
Details for the file mcp_macos-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_macos-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96b9cae4ae88c89daf47ff831b0db9e04a14da2bfd1365aa76b770fd79a7d19d
|
|
| MD5 |
b666d8ec9f418a62e2b8f8c7a78343b2
|
|
| BLAKE2b-256 |
b96e562b2cede32a657271a2ac58119a614161e51a6524b4017a1b2f4530e975
|