mcp-macos 2.1.4 → 3.0.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/README.md +53 -230
- package/dist/config/index.d.ts +5 -32
- package/dist/config/index.js +5 -112
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +1 -144
- package/dist/config/schema.js +1 -34
- package/dist/config/schema.js.map +1 -1
- package/dist/index.d.ts +1 -6
- package/dist/index.js +5 -46
- package/dist/index.js.map +1 -1
- package/dist/utils/errorHandling.js +1 -1
- package/dist/utils/errorHandling.js.map +1 -1
- package/dist/validation/schemas.d.ts +2 -1
- package/dist/validation/schemas.js +3 -2
- package/dist/validation/schemas.js.map +1 -1
- package/package.json +5 -10
- package/dist/server/transports/http/auth.d.ts +0 -34
- package/dist/server/transports/http/auth.js +0 -148
- package/dist/server/transports/http/auth.js.map +0 -1
- package/dist/server/transports/http/health.d.ts +0 -35
- package/dist/server/transports/http/health.js +0 -93
- package/dist/server/transports/http/health.js.map +0 -1
- package/dist/server/transports/http/index.d.ts +0 -43
- package/dist/server/transports/http/index.js +0 -147
- package/dist/server/transports/http/index.js.map +0 -1
- package/dist/server/transports/http/middleware.d.ts +0 -53
- package/dist/server/transports/http/middleware.js +0 -133
- package/dist/server/transports/http/middleware.js.map +0 -1
package/dist/config/schema.d.ts
CHANGED
|
@@ -1,161 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Configuration schema
|
|
2
|
+
* @fileoverview Configuration schema for macos-mcp server
|
|
3
3
|
* @module config/schema
|
|
4
|
-
* @description Zod schemas for transport mode, HTTP settings, and Cloudflare Access configuration
|
|
5
4
|
*/
|
|
6
5
|
import { z } from 'zod/v3';
|
|
7
|
-
/**
|
|
8
|
-
* Cloudflare Access configuration schema for JWT verification
|
|
9
|
-
* Required when using Cloudflare Tunnel for secure remote access
|
|
10
|
-
*/
|
|
11
|
-
export declare const CloudflareAccessConfigSchema: z.ZodObject<{
|
|
12
|
-
/** Cloudflare Access team domain (e.g., "myteam.cloudflareaccess.com") */
|
|
13
|
-
teamDomain: z.ZodString;
|
|
14
|
-
/** Application Audience (AUD) tag from Cloudflare Access policy */
|
|
15
|
-
policyAUD: z.ZodString;
|
|
16
|
-
/** Optional list of allowed email addresses for additional verification */
|
|
17
|
-
allowedEmails: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
18
|
-
}, "strip", z.ZodTypeAny, {
|
|
19
|
-
teamDomain: string;
|
|
20
|
-
policyAUD: string;
|
|
21
|
-
allowedEmails?: string[] | undefined;
|
|
22
|
-
}, {
|
|
23
|
-
teamDomain: string;
|
|
24
|
-
policyAUD: string;
|
|
25
|
-
allowedEmails?: string[] | undefined;
|
|
26
|
-
}>;
|
|
27
|
-
/**
|
|
28
|
-
* HTTP transport configuration schema
|
|
29
|
-
*/
|
|
30
|
-
export declare const HttpConfigSchema: z.ZodObject<{
|
|
31
|
-
/** Whether HTTP transport is enabled */
|
|
32
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
33
|
-
/** Host to bind the HTTP server to */
|
|
34
|
-
host: z.ZodDefault<z.ZodString>;
|
|
35
|
-
/** Port for the HTTP server (1-65535) */
|
|
36
|
-
port: z.ZodDefault<z.ZodNumber>;
|
|
37
|
-
/** Cloudflare Access configuration for JWT verification */
|
|
38
|
-
cloudflareAccess: z.ZodOptional<z.ZodObject<{
|
|
39
|
-
/** Cloudflare Access team domain (e.g., "myteam.cloudflareaccess.com") */
|
|
40
|
-
teamDomain: z.ZodString;
|
|
41
|
-
/** Application Audience (AUD) tag from Cloudflare Access policy */
|
|
42
|
-
policyAUD: z.ZodString;
|
|
43
|
-
/** Optional list of allowed email addresses for additional verification */
|
|
44
|
-
allowedEmails: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
45
|
-
}, "strip", z.ZodTypeAny, {
|
|
46
|
-
teamDomain: string;
|
|
47
|
-
policyAUD: string;
|
|
48
|
-
allowedEmails?: string[] | undefined;
|
|
49
|
-
}, {
|
|
50
|
-
teamDomain: string;
|
|
51
|
-
policyAUD: string;
|
|
52
|
-
allowedEmails?: string[] | undefined;
|
|
53
|
-
}>>;
|
|
54
|
-
}, "strip", z.ZodTypeAny, {
|
|
55
|
-
enabled: boolean;
|
|
56
|
-
host: string;
|
|
57
|
-
port: number;
|
|
58
|
-
cloudflareAccess?: {
|
|
59
|
-
teamDomain: string;
|
|
60
|
-
policyAUD: string;
|
|
61
|
-
allowedEmails?: string[] | undefined;
|
|
62
|
-
} | undefined;
|
|
63
|
-
}, {
|
|
64
|
-
enabled?: boolean | undefined;
|
|
65
|
-
host?: string | undefined;
|
|
66
|
-
port?: number | undefined;
|
|
67
|
-
cloudflareAccess?: {
|
|
68
|
-
teamDomain: string;
|
|
69
|
-
policyAUD: string;
|
|
70
|
-
allowedEmails?: string[] | undefined;
|
|
71
|
-
} | undefined;
|
|
72
|
-
}>;
|
|
73
|
-
/**
|
|
74
|
-
* Full server configuration schema
|
|
75
|
-
*/
|
|
76
6
|
export declare const ServerConfigSchema: z.ZodObject<{
|
|
77
7
|
/** Server name (auto-populated from package.json) */
|
|
78
8
|
name: z.ZodString;
|
|
79
9
|
/** Server version (auto-populated from package.json) */
|
|
80
10
|
version: z.ZodString;
|
|
81
|
-
/** Transport mode: stdio (default), http, or both */
|
|
82
|
-
transport: z.ZodDefault<z.ZodEnum<["stdio", "http", "both"]>>;
|
|
83
|
-
/** HTTP transport configuration (required when transport includes http) */
|
|
84
|
-
http: z.ZodOptional<z.ZodObject<{
|
|
85
|
-
/** Whether HTTP transport is enabled */
|
|
86
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
87
|
-
/** Host to bind the HTTP server to */
|
|
88
|
-
host: z.ZodDefault<z.ZodString>;
|
|
89
|
-
/** Port for the HTTP server (1-65535) */
|
|
90
|
-
port: z.ZodDefault<z.ZodNumber>;
|
|
91
|
-
/** Cloudflare Access configuration for JWT verification */
|
|
92
|
-
cloudflareAccess: z.ZodOptional<z.ZodObject<{
|
|
93
|
-
/** Cloudflare Access team domain (e.g., "myteam.cloudflareaccess.com") */
|
|
94
|
-
teamDomain: z.ZodString;
|
|
95
|
-
/** Application Audience (AUD) tag from Cloudflare Access policy */
|
|
96
|
-
policyAUD: z.ZodString;
|
|
97
|
-
/** Optional list of allowed email addresses for additional verification */
|
|
98
|
-
allowedEmails: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
99
|
-
}, "strip", z.ZodTypeAny, {
|
|
100
|
-
teamDomain: string;
|
|
101
|
-
policyAUD: string;
|
|
102
|
-
allowedEmails?: string[] | undefined;
|
|
103
|
-
}, {
|
|
104
|
-
teamDomain: string;
|
|
105
|
-
policyAUD: string;
|
|
106
|
-
allowedEmails?: string[] | undefined;
|
|
107
|
-
}>>;
|
|
108
|
-
}, "strip", z.ZodTypeAny, {
|
|
109
|
-
enabled: boolean;
|
|
110
|
-
host: string;
|
|
111
|
-
port: number;
|
|
112
|
-
cloudflareAccess?: {
|
|
113
|
-
teamDomain: string;
|
|
114
|
-
policyAUD: string;
|
|
115
|
-
allowedEmails?: string[] | undefined;
|
|
116
|
-
} | undefined;
|
|
117
|
-
}, {
|
|
118
|
-
enabled?: boolean | undefined;
|
|
119
|
-
host?: string | undefined;
|
|
120
|
-
port?: number | undefined;
|
|
121
|
-
cloudflareAccess?: {
|
|
122
|
-
teamDomain: string;
|
|
123
|
-
policyAUD: string;
|
|
124
|
-
allowedEmails?: string[] | undefined;
|
|
125
|
-
} | undefined;
|
|
126
|
-
}>>;
|
|
127
11
|
}, "strip", z.ZodTypeAny, {
|
|
128
12
|
name: string;
|
|
129
13
|
version: string;
|
|
130
|
-
transport: "stdio" | "http" | "both";
|
|
131
|
-
http?: {
|
|
132
|
-
enabled: boolean;
|
|
133
|
-
host: string;
|
|
134
|
-
port: number;
|
|
135
|
-
cloudflareAccess?: {
|
|
136
|
-
teamDomain: string;
|
|
137
|
-
policyAUD: string;
|
|
138
|
-
allowedEmails?: string[] | undefined;
|
|
139
|
-
} | undefined;
|
|
140
|
-
} | undefined;
|
|
141
14
|
}, {
|
|
142
15
|
name: string;
|
|
143
16
|
version: string;
|
|
144
|
-
http?: {
|
|
145
|
-
enabled?: boolean | undefined;
|
|
146
|
-
host?: string | undefined;
|
|
147
|
-
port?: number | undefined;
|
|
148
|
-
cloudflareAccess?: {
|
|
149
|
-
teamDomain: string;
|
|
150
|
-
policyAUD: string;
|
|
151
|
-
allowedEmails?: string[] | undefined;
|
|
152
|
-
} | undefined;
|
|
153
|
-
} | undefined;
|
|
154
|
-
transport?: "stdio" | "http" | "both" | undefined;
|
|
155
17
|
}>;
|
|
156
|
-
/** Cloudflare Access configuration type */
|
|
157
|
-
export type CloudflareAccessConfig = z.infer<typeof CloudflareAccessConfigSchema>;
|
|
158
|
-
/** HTTP transport configuration type */
|
|
159
|
-
export type HttpConfig = z.infer<typeof HttpConfigSchema>;
|
|
160
|
-
/** Full server configuration type */
|
|
161
18
|
export type FullServerConfig = z.infer<typeof ServerConfigSchema>;
|
package/dist/config/schema.js
CHANGED
|
@@ -1,45 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Configuration schema
|
|
2
|
+
* @fileoverview Configuration schema for macos-mcp server
|
|
3
3
|
* @module config/schema
|
|
4
|
-
* @description Zod schemas for transport mode, HTTP settings, and Cloudflare Access configuration
|
|
5
4
|
*/
|
|
6
5
|
import { z } from 'zod/v3';
|
|
7
|
-
/**
|
|
8
|
-
* Cloudflare Access configuration schema for JWT verification
|
|
9
|
-
* Required when using Cloudflare Tunnel for secure remote access
|
|
10
|
-
*/
|
|
11
|
-
export const CloudflareAccessConfigSchema = z.object({
|
|
12
|
-
/** Cloudflare Access team domain (e.g., "myteam.cloudflareaccess.com") */
|
|
13
|
-
teamDomain: z.string().min(1, 'Team domain is required'),
|
|
14
|
-
/** Application Audience (AUD) tag from Cloudflare Access policy */
|
|
15
|
-
policyAUD: z.string().min(1, 'Policy AUD is required'),
|
|
16
|
-
/** Optional list of allowed email addresses for additional verification */
|
|
17
|
-
allowedEmails: z.array(z.string().email('Invalid email format')).optional(),
|
|
18
|
-
});
|
|
19
|
-
/**
|
|
20
|
-
* HTTP transport configuration schema
|
|
21
|
-
*/
|
|
22
|
-
export const HttpConfigSchema = z.object({
|
|
23
|
-
/** Whether HTTP transport is enabled */
|
|
24
|
-
enabled: z.boolean().default(false),
|
|
25
|
-
/** Host to bind the HTTP server to */
|
|
26
|
-
host: z.string().default('127.0.0.1'),
|
|
27
|
-
/** Port for the HTTP server (1-65535) */
|
|
28
|
-
port: z.number().int().min(1).max(65535).default(3847),
|
|
29
|
-
/** Cloudflare Access configuration for JWT verification */
|
|
30
|
-
cloudflareAccess: CloudflareAccessConfigSchema.optional(),
|
|
31
|
-
});
|
|
32
|
-
/**
|
|
33
|
-
* Full server configuration schema
|
|
34
|
-
*/
|
|
35
6
|
export const ServerConfigSchema = z.object({
|
|
36
7
|
/** Server name (auto-populated from package.json) */
|
|
37
8
|
name: z.string(),
|
|
38
9
|
/** Server version (auto-populated from package.json) */
|
|
39
10
|
version: z.string(),
|
|
40
|
-
/** Transport mode: stdio (default), http, or both */
|
|
41
|
-
transport: z.enum(['stdio', 'http', 'both']).default('stdio'),
|
|
42
|
-
/** HTTP transport configuration (required when transport includes http) */
|
|
43
|
-
http: HttpConfigSchema.optional(),
|
|
44
11
|
});
|
|
45
12
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,qDAAqD;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,wDAAwD;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* index.ts
|
|
4
|
-
* Entry point for the macOS MCP server
|
|
5
|
-
*
|
|
6
|
-
* Supports multiple transport modes:
|
|
7
|
-
* - stdio: Standard input/output (default, for Claude Desktop)
|
|
8
|
-
* - http: HTTP/SSE transport (for remote access via Cloudflare Tunnel)
|
|
9
|
-
* - both: Run both transports simultaneously
|
|
4
|
+
* Entry point for the macOS MCP server (stdio transport)
|
|
10
5
|
*/
|
|
11
6
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -1,61 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* index.ts
|
|
4
|
-
* Entry point for the macOS MCP server
|
|
5
|
-
*
|
|
6
|
-
* Supports multiple transport modes:
|
|
7
|
-
* - stdio: Standard input/output (default, for Claude Desktop)
|
|
8
|
-
* - http: HTTP/SSE transport (for remote access via Cloudflare Tunnel)
|
|
9
|
-
* - both: Run both transports simultaneously
|
|
4
|
+
* Entry point for the macOS MCP server (stdio transport)
|
|
10
5
|
*/
|
|
11
6
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
12
7
|
import { loadConfig } from './config/index.js';
|
|
13
8
|
import { createServer } from './server/server.js';
|
|
14
9
|
import { contactResolver } from './utils/contactResolver.js';
|
|
15
|
-
/** Active HTTP transport instance for cleanup */
|
|
16
|
-
let httpTransport = null;
|
|
17
|
-
/**
|
|
18
|
-
* Graceful shutdown handler
|
|
19
|
-
* Stops HTTP server if running and exits cleanly
|
|
20
|
-
*/
|
|
21
|
-
async function shutdown() {
|
|
22
|
-
process.stderr.write(`${JSON.stringify({ timestamp: new Date().toISOString(), event: 'shutdown_initiated' })}\n`);
|
|
23
|
-
if (httpTransport) {
|
|
24
|
-
await httpTransport.stop();
|
|
25
|
-
}
|
|
26
|
-
process.exit(0);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Main entry point
|
|
30
|
-
* Loads configuration and starts appropriate transport(s)
|
|
31
|
-
*/
|
|
32
10
|
async function main() {
|
|
33
11
|
const config = loadConfig();
|
|
34
12
|
const server = createServer(config);
|
|
35
|
-
// Warm contact cache before connecting
|
|
36
|
-
// Fire-and-forget: cache builds concurrently
|
|
37
|
-
// before the first enrichment request arrives.
|
|
13
|
+
// Warm contact cache before connecting transport.
|
|
14
|
+
// Fire-and-forget: cache builds concurrently with stdio handshake.
|
|
38
15
|
void contactResolver.warmCache();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
process.on('SIGTERM', () => void shutdown());
|
|
42
|
-
// Start stdio transport if configured
|
|
43
|
-
if (config.transport === 'stdio' || config.transport === 'both') {
|
|
44
|
-
const stdioTransport = new StdioServerTransport();
|
|
45
|
-
await server.connect(stdioTransport);
|
|
46
|
-
}
|
|
47
|
-
// Start HTTP transport if configured
|
|
48
|
-
if (config.transport === 'http' || config.transport === 'both') {
|
|
49
|
-
if (!config.http?.enabled) {
|
|
50
|
-
throw new Error('HTTP transport requested but http.enabled is false');
|
|
51
|
-
}
|
|
52
|
-
// Dynamic import to avoid loading express when not needed
|
|
53
|
-
const { createHttpTransport } = await import('./server/transports/http/index.js');
|
|
54
|
-
httpTransport = createHttpTransport(server, config, config.http);
|
|
55
|
-
await httpTransport.start();
|
|
56
|
-
}
|
|
16
|
+
const transport = new StdioServerTransport();
|
|
17
|
+
await server.connect(transport);
|
|
57
18
|
}
|
|
58
|
-
// Handle --check flag for preflight validation
|
|
59
19
|
if (process.argv.includes('--check')) {
|
|
60
20
|
import('./utils/preflight.js').then(async ({ runPreflight, formatResults }) => {
|
|
61
21
|
const results = await runPreflight();
|
|
@@ -65,7 +25,6 @@ if (process.argv.includes('--check')) {
|
|
|
65
25
|
});
|
|
66
26
|
}
|
|
67
27
|
else {
|
|
68
|
-
// Start the application
|
|
69
28
|
main().catch((error) => {
|
|
70
29
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
71
30
|
process.stderr.write(`${JSON.stringify({ timestamp: new Date().toISOString(), error: 'fatal', message: errorMessage })}\n`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAyB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAqB,UAAU,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,kDAAkD;IAClD,mEAAmE;IACnE,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;IAEjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACrC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CACjC,KAAK,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CACF,CAAC;AACJ,CAAC;KAAM,CAAC;IACN,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9B,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,IAAI,CACtG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -31,7 +31,7 @@ export function createCliPermissionHint(domain) {
|
|
|
31
31
|
* Includes the System Settings deep-link URL for FDA.
|
|
32
32
|
*/
|
|
33
33
|
export function createFdaHint(dbName) {
|
|
34
|
-
return `Grant Full Disk Access to your terminal app (or the actual node binary
|
|
34
|
+
return `Grant Full Disk Access to your terminal app (or the actual node binary if running headless) in System Settings > Privacy & Security > Full Disk Access. Open settings: ${SYSTEM_SETTINGS.FULL_DISK_ACCESS} (${dbName} database)`;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Creates a user-friendly error message for known JXA failure modes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../src/utils/errorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,EACR,4EAA4E;IAC9E,gBAAgB,EACd,0EAA0E;IAC5E,SAAS,EACP,2EAA2E;IAC7E,SAAS,EACP,2EAA2E;IAC7E,QAAQ,EACN,0EAA0E;CACpE,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAiC;IAEjC,MAAM,WAAW,GACf,MAAM,KAAK,WAAW;QACpB,CAAC,CAAC,eAAe,CAAC,SAAS;QAC3B,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACnE,OAAO,SAAS,OAAO,qDAAqD,OAAO,oBAAoB,WAAW,EAAE,CAAC;AACvH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../src/utils/errorHandling.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,8 @@ export declare const SafeSearchSchema: z.ZodOptional<z.ZodString>;
|
|
|
16
16
|
export declare const SafeDateSchema: z.ZodOptional<z.ZodString>;
|
|
17
17
|
export declare const SafeUrlSchema: z.ZodOptional<z.ZodString>;
|
|
18
18
|
export declare const SafeIdSchema: z.ZodString;
|
|
19
|
-
/** Mail IDs are SQLite ROWIDs — always numeric. Defense-in-depth against JXA injection.
|
|
19
|
+
/** Mail IDs are SQLite ROWIDs — always numeric. Defense-in-depth against JXA injection.
|
|
20
|
+
* Coerces number inputs to strings (LLMs sometimes send numeric IDs as JSON numbers). */
|
|
20
21
|
export declare const SafeMailIdSchema: z.ZodString;
|
|
21
22
|
/**
|
|
22
23
|
* Tool-specific validation schemas
|
|
@@ -85,8 +85,9 @@ const BaseReminderFields = {
|
|
|
85
85
|
targetList: SafeListNameSchema,
|
|
86
86
|
};
|
|
87
87
|
export const SafeIdSchema = z.string().min(1, 'ID cannot be empty');
|
|
88
|
-
/** Mail IDs are SQLite ROWIDs — always numeric. Defense-in-depth against JXA injection.
|
|
89
|
-
|
|
88
|
+
/** Mail IDs are SQLite ROWIDs — always numeric. Defense-in-depth against JXA injection.
|
|
89
|
+
* Coerces number inputs to strings (LLMs sometimes send numeric IDs as JSON numbers). */
|
|
90
|
+
export const SafeMailIdSchema = z.coerce
|
|
90
91
|
.string()
|
|
91
92
|
.min(1, 'Mail ID cannot be empty')
|
|
92
93
|
.regex(/^\d+$/, 'Mail ID must be numeric');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/validation/schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/validation/schemas.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-macos",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MCP server
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "MCP server for Reminders, Calendar, Notes, Mail, Messages, and Contacts on macOS.",
|
|
5
5
|
"author": "Kyle Jensen",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Frad Lee <https://frad.me>"
|
|
@@ -55,20 +55,18 @@
|
|
|
55
55
|
"test": "NODE_NO_WARNINGS=1 jest",
|
|
56
56
|
"test:e2e": "pnpm build && node --import tsx/esm --test --test-concurrency=1 tests/e2e/functional.test.mts",
|
|
57
57
|
"test:e2e:functional": "pnpm build && node --import tsx/esm --test --test-concurrency=1 tests/e2e/functional.test.mts",
|
|
58
|
-
"test:e2e:http": "pnpm build && node --import tsx/esm --test --test-concurrency=1 tests/e2e/http-transport.test.mts",
|
|
59
58
|
"test:e2e:all": "pnpm build && node --import tsx/esm --test --test-concurrency=1 tests/e2e/*.test.mts",
|
|
60
59
|
"lint": "pnpm exec biome check --write --unsafe && pnpm exec tsc --noEmit --project tsconfig.json",
|
|
61
60
|
"postinstall": "node -e \"process.platform === 'darwin' && require('child_process').execSync('node scripts/build-swift.mjs', {stdio: 'inherit'})\"",
|
|
62
|
-
"
|
|
61
|
+
"prepare": "git config core.hooksPath scripts/hooks",
|
|
62
|
+
"prepublishOnly": "pnpm build && pnpm test",
|
|
63
|
+
"release:preview": "npx semantic-release --dry-run"
|
|
63
64
|
},
|
|
64
65
|
"engines": {
|
|
65
66
|
"node": ">=20.0.0"
|
|
66
67
|
},
|
|
67
68
|
"dependencies": {
|
|
68
69
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
69
|
-
"express": "^5.2.1",
|
|
70
|
-
"express-rate-limit": "^8.2.1",
|
|
71
|
-
"jose": "^6.1.3",
|
|
72
70
|
"zod": "^4.3.6"
|
|
73
71
|
},
|
|
74
72
|
"devDependencies": {
|
|
@@ -76,16 +74,13 @@
|
|
|
76
74
|
"@biomejs/biome": "2.3.15",
|
|
77
75
|
"@semantic-release/changelog": "^6.0.3",
|
|
78
76
|
"@semantic-release/git": "^10.0.1",
|
|
79
|
-
"@types/express": "^5.0.6",
|
|
80
77
|
"@types/jest": "^30.0.0",
|
|
81
78
|
"@types/node": "^25.2.3",
|
|
82
|
-
"@types/supertest": "^6.0.3",
|
|
83
79
|
"babel-jest": "^30.2.0",
|
|
84
80
|
"tsx": "^4.21.0",
|
|
85
81
|
"babel-plugin-transform-import-meta": "^2.3.3",
|
|
86
82
|
"jest": "^30.2.0",
|
|
87
83
|
"semantic-release": "^25.0.3",
|
|
88
|
-
"supertest": "^7.2.2",
|
|
89
84
|
"ts-jest": "^29.4.6",
|
|
90
85
|
"typescript": "^5.9.3"
|
|
91
86
|
},
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Cloudflare Access JWT verification for HTTP transport
|
|
3
|
-
* @module server/transports/http/auth
|
|
4
|
-
* @description Verifies JWTs from Cloudflare Access for defense-in-depth security
|
|
5
|
-
*/
|
|
6
|
-
import type { NextFunction, Request, Response } from 'express';
|
|
7
|
-
import type { CloudflareAccessConfig } from '../../../config/index.js';
|
|
8
|
-
/** JWT verification result */
|
|
9
|
-
interface JwtVerificationResult {
|
|
10
|
-
valid: boolean;
|
|
11
|
-
email?: string;
|
|
12
|
-
error?: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Verifies a Cloudflare Access JWT
|
|
16
|
-
*
|
|
17
|
-
* @param token - JWT from Cf-Access-Jwt-Assertion header
|
|
18
|
-
* @param config - Cloudflare Access configuration
|
|
19
|
-
* @returns Verification result
|
|
20
|
-
*/
|
|
21
|
-
export declare function verifyCloudflareAccessJwt(token: string, config: CloudflareAccessConfig): Promise<JwtVerificationResult>;
|
|
22
|
-
/**
|
|
23
|
-
* Express middleware that verifies Cloudflare Access JWTs
|
|
24
|
-
* Returns 401 if no valid JWT is present
|
|
25
|
-
*
|
|
26
|
-
* @param config - Cloudflare Access configuration
|
|
27
|
-
* @returns Express middleware function
|
|
28
|
-
*/
|
|
29
|
-
export declare function createAuthMiddleware(config: CloudflareAccessConfig): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Clears the JWKS cache (useful for testing)
|
|
32
|
-
*/
|
|
33
|
-
export declare function clearJwksCache(): void;
|
|
34
|
-
export {};
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Cloudflare Access JWT verification for HTTP transport
|
|
3
|
-
* @module server/transports/http/auth
|
|
4
|
-
* @description Verifies JWTs from Cloudflare Access for defense-in-depth security
|
|
5
|
-
*/
|
|
6
|
-
import * as jose from 'jose';
|
|
7
|
-
/** JWKS cache TTL in milliseconds (1 hour) */
|
|
8
|
-
const JWKS_CACHE_TTL = 60 * 60 * 1000;
|
|
9
|
-
/** JWKS cache keyed by team domain */
|
|
10
|
-
const jwksCache = new Map();
|
|
11
|
-
/**
|
|
12
|
-
* Gets the JWKS URL for a Cloudflare Access team domain
|
|
13
|
-
* @param teamDomain - Cloudflare Access team domain
|
|
14
|
-
* @returns JWKS URL
|
|
15
|
-
*/
|
|
16
|
-
function getJwksUrl(teamDomain) {
|
|
17
|
-
// Normalize domain - remove protocol if present and ensure .cloudflareaccess.com suffix
|
|
18
|
-
let domain = teamDomain.replace(/^https?:\/\//, '');
|
|
19
|
-
// If just the team name is provided, add the full domain
|
|
20
|
-
if (!domain.includes('.')) {
|
|
21
|
-
domain = `${domain}.cloudflareaccess.com`;
|
|
22
|
-
}
|
|
23
|
-
return `https://${domain}/cdn-cgi/access/certs`;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Gets or creates a cached JWKS getter for the team domain
|
|
27
|
-
* @param teamDomain - Cloudflare Access team domain
|
|
28
|
-
* @returns JWKS getter function
|
|
29
|
-
*/
|
|
30
|
-
async function getJwks(teamDomain) {
|
|
31
|
-
const cached = jwksCache.get(teamDomain);
|
|
32
|
-
if (cached && cached.expiresAt > Date.now()) {
|
|
33
|
-
return cached.jwks;
|
|
34
|
-
}
|
|
35
|
-
const jwksUrl = getJwksUrl(teamDomain);
|
|
36
|
-
const jwks = jose.createRemoteJWKSet(new URL(jwksUrl));
|
|
37
|
-
jwksCache.set(teamDomain, {
|
|
38
|
-
jwks,
|
|
39
|
-
expiresAt: Date.now() + JWKS_CACHE_TTL,
|
|
40
|
-
});
|
|
41
|
-
return jwks;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Verifies a Cloudflare Access JWT
|
|
45
|
-
*
|
|
46
|
-
* @param token - JWT from Cf-Access-Jwt-Assertion header
|
|
47
|
-
* @param config - Cloudflare Access configuration
|
|
48
|
-
* @returns Verification result
|
|
49
|
-
*/
|
|
50
|
-
export async function verifyCloudflareAccessJwt(token, config) {
|
|
51
|
-
try {
|
|
52
|
-
const jwks = await getJwks(config.teamDomain);
|
|
53
|
-
// Normalize team domain for issuer validation
|
|
54
|
-
let normalizedDomain = config.teamDomain.replace(/^https?:\/\//, '');
|
|
55
|
-
if (!normalizedDomain.includes('.')) {
|
|
56
|
-
normalizedDomain = `${normalizedDomain}.cloudflareaccess.com`;
|
|
57
|
-
}
|
|
58
|
-
const expectedIssuer = `https://${normalizedDomain}`;
|
|
59
|
-
const { payload } = await jose.jwtVerify(token, jwks, {
|
|
60
|
-
audience: config.policyAUD,
|
|
61
|
-
issuer: expectedIssuer,
|
|
62
|
-
});
|
|
63
|
-
// Extract email from payload
|
|
64
|
-
const email = typeof payload.email === 'string' ? payload.email : undefined;
|
|
65
|
-
// Validate email against allowed list if configured
|
|
66
|
-
if (config.allowedEmails && config.allowedEmails.length > 0) {
|
|
67
|
-
if (!email) {
|
|
68
|
-
return {
|
|
69
|
-
valid: false,
|
|
70
|
-
error: 'JWT missing email claim',
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
if (!config.allowedEmails.includes(email)) {
|
|
74
|
-
return {
|
|
75
|
-
valid: false,
|
|
76
|
-
error: `Email ${email} not in allowed list`,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
valid: true,
|
|
82
|
-
email,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
if (error instanceof jose.errors.JWTExpired) {
|
|
87
|
-
return {
|
|
88
|
-
valid: false,
|
|
89
|
-
error: 'JWT has expired',
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
if (error instanceof jose.errors.JWTClaimValidationFailed) {
|
|
93
|
-
return {
|
|
94
|
-
valid: false,
|
|
95
|
-
error: `JWT claim validation failed: ${error.message}`,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
if (error instanceof jose.errors.JWSSignatureVerificationFailed) {
|
|
99
|
-
return {
|
|
100
|
-
valid: false,
|
|
101
|
-
error: 'JWT signature verification failed',
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
105
|
-
return {
|
|
106
|
-
valid: false,
|
|
107
|
-
error: `JWT verification failed: ${errorMessage}`,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Express middleware that verifies Cloudflare Access JWTs
|
|
113
|
-
* Returns 401 if no valid JWT is present
|
|
114
|
-
*
|
|
115
|
-
* @param config - Cloudflare Access configuration
|
|
116
|
-
* @returns Express middleware function
|
|
117
|
-
*/
|
|
118
|
-
export function createAuthMiddleware(config) {
|
|
119
|
-
return async (req, res, next) => {
|
|
120
|
-
// Get JWT from Cloudflare Access header
|
|
121
|
-
const token = req.headers['cf-access-jwt-assertion'];
|
|
122
|
-
if (!token || typeof token !== 'string') {
|
|
123
|
-
res.status(401).json({
|
|
124
|
-
error: 'Unauthorized',
|
|
125
|
-
message: 'Missing Cf-Access-Jwt-Assertion header',
|
|
126
|
-
});
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
const result = await verifyCloudflareAccessJwt(token, config);
|
|
130
|
-
if (!result.valid) {
|
|
131
|
-
res.status(401).json({
|
|
132
|
-
error: 'Unauthorized',
|
|
133
|
-
message: result.error ?? 'JWT verification failed',
|
|
134
|
-
});
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
// Attach verified email to request for logging
|
|
138
|
-
req.cfAccessEmail = result.email;
|
|
139
|
-
next();
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Clears the JWKS cache (useful for testing)
|
|
144
|
-
*/
|
|
145
|
-
export function clearJwksCache() {
|
|
146
|
-
jwksCache.clear();
|
|
147
|
-
}
|
|
148
|
-
//# sourceMappingURL=auth.js.map
|