a stdio mcp server for apple mail
1import { execFile } from "node:child_process";
2
3const TIMEOUT_MS = 15_000;
4const MAX_BUFFER = 10 * 1024 * 1024; // 10MB
5
6export function execAppleScript(script: string): Promise<string> {
7 return new Promise((resolve, reject) => {
8 execFile(
9 "osascript",
10 ["-e", script],
11 { timeout: TIMEOUT_MS, maxBuffer: MAX_BUFFER },
12 (err, stdout, stderr) => {
13 if (err) {
14 reject(new Error(`AppleScript failed: ${err.message}\n${stderr}`));
15 } else {
16 resolve(stdout);
17 }
18 },
19 );
20 });
21}