@heznpc/imcp 0.1.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.ko.md +225 -57
- package/README.md +222 -30
- package/dist/calendar/prompts.d.ts +2 -0
- package/dist/calendar/prompts.js +43 -0
- package/dist/calendar/prompts.js.map +1 -0
- package/dist/calendar/scripts.d.ts +20 -0
- package/dist/calendar/scripts.js +283 -0
- package/dist/calendar/scripts.js.map +1 -0
- package/dist/calendar/tools.d.ts +3 -0
- package/dist/calendar/tools.js +252 -0
- package/dist/calendar/tools.js.map +1 -0
- package/dist/contacts/scripts.d.ts +22 -0
- package/dist/contacts/scripts.js +220 -0
- package/dist/contacts/scripts.js.map +1 -0
- package/dist/contacts/tools.d.ts +3 -0
- package/dist/contacts/tools.js +173 -0
- package/dist/contacts/tools.js.map +1 -0
- package/dist/cross/prompts.d.ts +2 -0
- package/dist/cross/prompts.js +177 -0
- package/dist/cross/prompts.js.map +1 -0
- package/dist/finder/scripts.d.ts +8 -0
- package/dist/finder/scripts.js +127 -0
- package/dist/finder/scripts.js.map +1 -0
- package/dist/finder/tools.d.ts +3 -0
- package/dist/finder/tools.js +134 -0
- package/dist/finder/tools.js.map +1 -0
- package/dist/index.js +38 -1
- package/dist/index.js.map +1 -1
- package/dist/intelligence/tools.d.ts +3 -0
- package/dist/intelligence/tools.js +74 -0
- package/dist/intelligence/tools.js.map +1 -0
- package/dist/mail/scripts.d.ts +9 -0
- package/dist/mail/scripts.js +214 -0
- package/dist/mail/scripts.js.map +1 -0
- package/dist/mail/tools.d.ts +3 -0
- package/dist/mail/tools.js +145 -0
- package/dist/mail/tools.js.map +1 -0
- package/dist/music/scripts.d.ts +9 -0
- package/dist/music/scripts.js +180 -0
- package/dist/music/scripts.js.map +1 -0
- package/dist/music/tools.d.ts +3 -0
- package/dist/music/tools.js +143 -0
- package/dist/music/tools.js.map +1 -0
- package/dist/notes/prompts.js +1 -6
- package/dist/notes/prompts.js.map +1 -1
- package/dist/notes/scripts.js +1 -11
- package/dist/notes/scripts.js.map +1 -1
- package/dist/notes/tools.js +1 -11
- package/dist/notes/tools.js.map +1 -1
- package/dist/photos/scripts.d.ts +7 -0
- package/dist/photos/scripts.js +142 -0
- package/dist/photos/scripts.js.map +1 -0
- package/dist/photos/tools.d.ts +3 -0
- package/dist/photos/tools.js +158 -0
- package/dist/photos/tools.js.map +1 -0
- package/dist/reminders/prompts.d.ts +2 -0
- package/dist/reminders/prompts.js +40 -0
- package/dist/reminders/prompts.js.map +1 -0
- package/dist/reminders/scripts.d.ts +21 -0
- package/dist/reminders/scripts.js +202 -0
- package/dist/reminders/scripts.js.map +1 -0
- package/dist/reminders/tools.d.ts +3 -0
- package/dist/reminders/tools.js +267 -0
- package/dist/reminders/tools.js.map +1 -0
- package/dist/safari/scripts.d.ts +8 -0
- package/dist/safari/scripts.js +120 -0
- package/dist/safari/scripts.js.map +1 -0
- package/dist/safari/tools.d.ts +3 -0
- package/dist/safari/tools.js +129 -0
- package/dist/safari/tools.js.map +1 -0
- package/dist/shared/esc.d.ts +10 -0
- package/dist/shared/esc.js +35 -0
- package/dist/shared/esc.js.map +1 -0
- package/dist/shared/jxa.js +1 -1
- package/dist/shared/jxa.js.map +1 -1
- package/dist/shared/prompt.d.ts +11 -0
- package/dist/shared/prompt.js +8 -0
- package/dist/shared/prompt.js.map +1 -0
- package/dist/shared/resources.d.ts +5 -0
- package/dist/shared/resources.js +81 -0
- package/dist/shared/resources.js.map +1 -0
- package/dist/shared/result.d.ts +15 -0
- package/dist/shared/result.js +14 -0
- package/dist/shared/result.js.map +1 -0
- package/dist/shared/setup.d.ts +2 -0
- package/dist/shared/setup.js +44 -0
- package/dist/shared/setup.js.map +1 -0
- package/dist/shared/swift.d.ts +2 -0
- package/dist/shared/swift.js +73 -0
- package/dist/shared/swift.js.map +1 -0
- package/dist/shortcuts/scripts.d.ts +4 -0
- package/dist/shortcuts/scripts.js +47 -0
- package/dist/shortcuts/scripts.js.map +1 -0
- package/dist/shortcuts/tools.d.ts +3 -0
- package/dist/shortcuts/tools.js +66 -0
- package/dist/shortcuts/tools.js.map +1 -0
- package/dist/system/scripts.d.ts +9 -0
- package/dist/system/scripts.js +124 -0
- package/dist/system/scripts.js.map +1 -0
- package/dist/system/tools.d.ts +3 -0
- package/dist/system/tools.js +179 -0
- package/dist/system/tools.js.map +1 -0
- package/package.json +39 -5
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { runJxa } from "../shared/jxa.js";
|
|
3
|
+
import { ok, err } from "../shared/result.js";
|
|
4
|
+
import { getClipboardScript, setClipboardScript, getVolumeScript, setVolumeScript, toggleDarkModeScript, getFrontmostAppScript, listRunningAppsScript, getScreenInfoScript, showNotificationScript, } from "./scripts.js";
|
|
5
|
+
export function registerSystemTools(server, _config) {
|
|
6
|
+
server.registerTool("get_clipboard", {
|
|
7
|
+
title: "Get Clipboard",
|
|
8
|
+
description: "Read the current text content of the system clipboard.",
|
|
9
|
+
inputSchema: {},
|
|
10
|
+
annotations: {
|
|
11
|
+
readOnlyHint: true,
|
|
12
|
+
destructiveHint: false,
|
|
13
|
+
idempotentHint: true,
|
|
14
|
+
openWorldHint: false,
|
|
15
|
+
},
|
|
16
|
+
}, async () => {
|
|
17
|
+
try {
|
|
18
|
+
return ok(await runJxa(getClipboardScript()));
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
return err(`Failed to get clipboard: ${e instanceof Error ? e.message : String(e)}`);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
server.registerTool("set_clipboard", {
|
|
25
|
+
title: "Set Clipboard",
|
|
26
|
+
description: "Write text to the system clipboard, replacing its current content.",
|
|
27
|
+
inputSchema: {
|
|
28
|
+
text: z.string().describe("Text to copy to the clipboard"),
|
|
29
|
+
},
|
|
30
|
+
annotations: {
|
|
31
|
+
readOnlyHint: false,
|
|
32
|
+
destructiveHint: false,
|
|
33
|
+
idempotentHint: true,
|
|
34
|
+
openWorldHint: false,
|
|
35
|
+
},
|
|
36
|
+
}, async ({ text }) => {
|
|
37
|
+
try {
|
|
38
|
+
return ok(await runJxa(setClipboardScript(text)));
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
return err(`Failed to set clipboard: ${e instanceof Error ? e.message : String(e)}`);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
server.registerTool("get_volume", {
|
|
45
|
+
title: "Get Volume",
|
|
46
|
+
description: "Get the current system output volume level and mute state.",
|
|
47
|
+
inputSchema: {},
|
|
48
|
+
annotations: {
|
|
49
|
+
readOnlyHint: true,
|
|
50
|
+
destructiveHint: false,
|
|
51
|
+
idempotentHint: true,
|
|
52
|
+
openWorldHint: false,
|
|
53
|
+
},
|
|
54
|
+
}, async () => {
|
|
55
|
+
try {
|
|
56
|
+
return ok(await runJxa(getVolumeScript()));
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
return err(`Failed to get volume: ${e instanceof Error ? e.message : String(e)}`);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
server.registerTool("set_volume", {
|
|
63
|
+
title: "Set Volume",
|
|
64
|
+
description: "Set the system output volume (0-100) and/or mute state.",
|
|
65
|
+
inputSchema: {
|
|
66
|
+
volume: z.number().min(0).max(100).optional().describe("Output volume level (0-100)"),
|
|
67
|
+
muted: z.boolean().optional().describe("Whether to mute output audio"),
|
|
68
|
+
},
|
|
69
|
+
annotations: {
|
|
70
|
+
readOnlyHint: false,
|
|
71
|
+
destructiveHint: false,
|
|
72
|
+
idempotentHint: true,
|
|
73
|
+
openWorldHint: false,
|
|
74
|
+
},
|
|
75
|
+
}, async ({ volume, muted }) => {
|
|
76
|
+
try {
|
|
77
|
+
return ok(await runJxa(setVolumeScript(volume, muted)));
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
return err(`Failed to set volume: ${e instanceof Error ? e.message : String(e)}`);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
server.registerTool("toggle_dark_mode", {
|
|
84
|
+
title: "Toggle Dark Mode",
|
|
85
|
+
description: "Toggle macOS appearance between dark mode and light mode.",
|
|
86
|
+
inputSchema: {},
|
|
87
|
+
annotations: {
|
|
88
|
+
readOnlyHint: false,
|
|
89
|
+
destructiveHint: false,
|
|
90
|
+
idempotentHint: false,
|
|
91
|
+
openWorldHint: false,
|
|
92
|
+
},
|
|
93
|
+
}, async () => {
|
|
94
|
+
try {
|
|
95
|
+
return ok(await runJxa(toggleDarkModeScript()));
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
return err(`Failed to toggle dark mode: ${e instanceof Error ? e.message : String(e)}`);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
server.registerTool("get_frontmost_app", {
|
|
102
|
+
title: "Get Frontmost App",
|
|
103
|
+
description: "Get the name, bundle identifier, and PID of the currently active (frontmost) application.",
|
|
104
|
+
inputSchema: {},
|
|
105
|
+
annotations: {
|
|
106
|
+
readOnlyHint: true,
|
|
107
|
+
destructiveHint: false,
|
|
108
|
+
idempotentHint: true,
|
|
109
|
+
openWorldHint: false,
|
|
110
|
+
},
|
|
111
|
+
}, async () => {
|
|
112
|
+
try {
|
|
113
|
+
return ok(await runJxa(getFrontmostAppScript()));
|
|
114
|
+
}
|
|
115
|
+
catch (e) {
|
|
116
|
+
return err(`Failed to get frontmost app: ${e instanceof Error ? e.message : String(e)}`);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
server.registerTool("list_running_apps", {
|
|
120
|
+
title: "List Running Apps",
|
|
121
|
+
description: "List all running applications with name, bundle identifier, PID, and visibility.",
|
|
122
|
+
inputSchema: {},
|
|
123
|
+
annotations: {
|
|
124
|
+
readOnlyHint: true,
|
|
125
|
+
destructiveHint: false,
|
|
126
|
+
idempotentHint: true,
|
|
127
|
+
openWorldHint: false,
|
|
128
|
+
},
|
|
129
|
+
}, async () => {
|
|
130
|
+
try {
|
|
131
|
+
return ok(await runJxa(listRunningAppsScript()));
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
return err(`Failed to list running apps: ${e instanceof Error ? e.message : String(e)}`);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
server.registerTool("get_screen_info", {
|
|
138
|
+
title: "Get Screen Info",
|
|
139
|
+
description: "Get display information including resolution, pixel dimensions, and Retina status.",
|
|
140
|
+
inputSchema: {},
|
|
141
|
+
annotations: {
|
|
142
|
+
readOnlyHint: true,
|
|
143
|
+
destructiveHint: false,
|
|
144
|
+
idempotentHint: true,
|
|
145
|
+
openWorldHint: false,
|
|
146
|
+
},
|
|
147
|
+
}, async () => {
|
|
148
|
+
try {
|
|
149
|
+
return ok(await runJxa(getScreenInfoScript()));
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
return err(`Failed to get screen info: ${e instanceof Error ? e.message : String(e)}`);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
server.registerTool("show_notification", {
|
|
156
|
+
title: "Show Notification",
|
|
157
|
+
description: "Display a macOS system notification with optional title, subtitle, and sound.",
|
|
158
|
+
inputSchema: {
|
|
159
|
+
message: z.string().describe("Notification body text"),
|
|
160
|
+
title: z.string().optional().describe("Notification title"),
|
|
161
|
+
subtitle: z.string().optional().describe("Notification subtitle"),
|
|
162
|
+
sound: z.string().optional().describe("Sound name to play (e.g. 'Frog', 'Glass', 'Hero')"),
|
|
163
|
+
},
|
|
164
|
+
annotations: {
|
|
165
|
+
readOnlyHint: false,
|
|
166
|
+
destructiveHint: false,
|
|
167
|
+
idempotentHint: false,
|
|
168
|
+
openWorldHint: false,
|
|
169
|
+
},
|
|
170
|
+
}, async ({ message, title, subtitle, sound }) => {
|
|
171
|
+
try {
|
|
172
|
+
return ok(await runJxa(showNotificationScript(message, title, subtitle, sound)));
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
return err(`Failed to show notification: ${e instanceof Error ? e.message : String(e)}`);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/system/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heznpc/imcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for Apple
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "MCP server for the entire Apple ecosystem — Notes, Reminders, Calendar, Contacts, Mail, Music, Finder, Safari, Photos, Shortcuts, System, and Apple Intelligence. Connect any AI to your Mac.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"model-context-protocol",
|
|
8
8
|
"apple",
|
|
9
9
|
"notes",
|
|
10
10
|
"apple-notes",
|
|
11
|
+
"reminders",
|
|
12
|
+
"apple-reminders",
|
|
13
|
+
"calendar",
|
|
14
|
+
"apple-calendar",
|
|
15
|
+
"apple-intelligence",
|
|
16
|
+
"contacts",
|
|
17
|
+
"apple-contacts",
|
|
18
|
+
"mail",
|
|
19
|
+
"apple-mail",
|
|
20
|
+
"music",
|
|
21
|
+
"apple-music",
|
|
22
|
+
"finder",
|
|
23
|
+
"safari",
|
|
24
|
+
"apple-safari",
|
|
25
|
+
"photos",
|
|
26
|
+
"apple-photos",
|
|
27
|
+
"shortcuts",
|
|
28
|
+
"siri-shortcuts",
|
|
29
|
+
"clipboard",
|
|
30
|
+
"dark-mode",
|
|
11
31
|
"claude",
|
|
12
32
|
"llm",
|
|
13
33
|
"ai",
|
|
@@ -35,19 +55,33 @@
|
|
|
35
55
|
],
|
|
36
56
|
"scripts": {
|
|
37
57
|
"build": "tsc",
|
|
58
|
+
"swift-build": "cd swift && swift build -c release",
|
|
38
59
|
"clean": "rm -rf dist",
|
|
39
|
-
"dev": "
|
|
60
|
+
"dev": "tsx src/index.ts",
|
|
61
|
+
"lint": "eslint src/",
|
|
40
62
|
"prepublishOnly": "npm run clean && npm run build",
|
|
63
|
+
"pretest": "npm run build",
|
|
41
64
|
"start": "node dist/index.js",
|
|
42
|
-
"
|
|
65
|
+
"test": "node --experimental-vm-modules node_modules/.bin/jest",
|
|
66
|
+
"typecheck": "tsc --noEmit",
|
|
67
|
+
"version:patch": "npm version patch --no-git-tag-version",
|
|
68
|
+
"version:minor": "npm version minor --no-git-tag-version",
|
|
69
|
+
"version:major": "npm version major --no-git-tag-version"
|
|
43
70
|
},
|
|
44
71
|
"dependencies": {
|
|
45
72
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
46
73
|
"zod": "^3.24.0"
|
|
47
74
|
},
|
|
48
75
|
"devDependencies": {
|
|
76
|
+
"@eslint/js": "^10.0.1",
|
|
77
|
+
"@jest/globals": "^29.7.0",
|
|
49
78
|
"@types/node": "^22.0.0",
|
|
50
|
-
"
|
|
79
|
+
"eslint": "^10.0.3",
|
|
80
|
+
"globals": "^16.0.0",
|
|
81
|
+
"jest": "^30.3.0",
|
|
82
|
+
"tsx": "^4.19.0",
|
|
83
|
+
"typescript": "^5.7.0",
|
|
84
|
+
"typescript-eslint": "^8.20.0"
|
|
51
85
|
},
|
|
52
86
|
"engines": {
|
|
53
87
|
"node": ">=18.0.0"
|