@marlinjai/email-mcp 1.4.1 → 1.4.3
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 +8 -6
- package/dist/index.js +17 -4
- package/dist/index.js.map +2 -2
- package/dist/setup/wizard.js +17 -4
- package/dist/setup/wizard.js.map +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -31,9 +31,11 @@ npx @marlinjai/email-mcp
|
|
|
31
31
|
1. Run the interactive setup wizard to add your email accounts:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
npx @marlinjai/email-mcp setup
|
|
34
|
+
npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
> **The `-p`/`--package` flag is required.** This package declares two binaries (`email-mcp` for the MCP server, `email-mcp-setup` for this wizard). Without `-p`, npx runs the bin matching the *package's own name* (`email-mcp`, the server) and silently passes `email-mcp-setup` to it as an ignored argument — the server then sits waiting for MCP protocol input on stdin forever, producing no output at all. It looks exactly like a hang. `-p` tells npx explicitly which package to resolve and which of its binaries to actually run.
|
|
38
|
+
|
|
37
39
|
The wizard will walk you through provider selection and authentication. After each account, it asks if you'd like to add another — so you can set up Gmail, Outlook, and iCloud all in one go.
|
|
38
40
|
|
|
39
41
|
2. Add the server to your MCP configuration (`.mcp.json`):
|
|
@@ -58,7 +60,7 @@ The wizard will walk you through provider selection and authentication. After ea
|
|
|
58
60
|
No configuration needed — the setup wizard handles everything using built-in OAuth credentials (PKCE):
|
|
59
61
|
|
|
60
62
|
```bash
|
|
61
|
-
npx @marlinjai/email-mcp setup
|
|
63
|
+
npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
|
|
62
64
|
# Select "Gmail" when prompted
|
|
63
65
|
# A browser window opens for Google authorization
|
|
64
66
|
# Grant the requested permissions and return to the terminal
|
|
@@ -71,13 +73,13 @@ npx @marlinjai/email-mcp setup
|
|
|
71
73
|
No configuration needed — the setup wizard handles everything using built-in OAuth credentials (PKCE):
|
|
72
74
|
|
|
73
75
|
```bash
|
|
74
|
-
npx @marlinjai/email-mcp setup
|
|
76
|
+
npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
|
|
75
77
|
# Select "Outlook" when prompted
|
|
76
78
|
# A browser window opens for Microsoft authorization
|
|
77
79
|
# Sign in and grant the requested permissions
|
|
78
80
|
```
|
|
79
81
|
|
|
80
|
-
> **Note:** If you prefer to use your own OAuth app, register one in the [Azure Portal](https://portal.azure.com/) with `Mail.ReadWrite`, `Mail.Send`, and `offline_access` permissions.
|
|
82
|
+
> **Note:** If you prefer to use your own OAuth app, register one in the [Azure Portal](https://portal.azure.com/) with `Mail.ReadWrite`, `Mail.Send`, `MailboxSettings.ReadWrite` (needed for `email_create_block_rule`), and `offline_access` permissions.
|
|
81
83
|
|
|
82
84
|
### iCloud
|
|
83
85
|
|
|
@@ -86,7 +88,7 @@ npx @marlinjai/email-mcp setup
|
|
|
86
88
|
3. Run the setup wizard:
|
|
87
89
|
|
|
88
90
|
```bash
|
|
89
|
-
npx @marlinjai/email-mcp setup
|
|
91
|
+
npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
|
|
90
92
|
# Select "iCloud" when prompted
|
|
91
93
|
# Enter your iCloud email address
|
|
92
94
|
# Enter the app-specific password you generated
|
|
@@ -97,7 +99,7 @@ npx @marlinjai/email-mcp setup
|
|
|
97
99
|
Run the setup wizard with your IMAP/SMTP server details:
|
|
98
100
|
|
|
99
101
|
```bash
|
|
100
|
-
npx @marlinjai/email-mcp setup
|
|
102
|
+
npx -y -p @marlinjai/email-mcp@latest email-mcp-setup
|
|
101
103
|
# Select "Other IMAP" when prompted
|
|
102
104
|
# Enter your IMAP host, port, and credentials
|
|
103
105
|
# Optionally enter SMTP host and port for sending
|
package/dist/index.js
CHANGED
|
@@ -7569,7 +7569,11 @@ var init_auth = __esm({
|
|
|
7569
7569
|
"use strict";
|
|
7570
7570
|
GMAIL_SCOPES = [
|
|
7571
7571
|
"https://mail.google.com/",
|
|
7572
|
-
"https://www.googleapis.com/auth/gmail.modify"
|
|
7572
|
+
"https://www.googleapis.com/auth/gmail.modify",
|
|
7573
|
+
// Mailbox content access (above) does NOT cover the Settings API —
|
|
7574
|
+
// Google treats them as separate permission domains. Needed for
|
|
7575
|
+
// users.settings.filters.* (email_create_block_rule/list/delete).
|
|
7576
|
+
"https://www.googleapis.com/auth/gmail.settings.basic"
|
|
7573
7577
|
];
|
|
7574
7578
|
GmailAuth = class {
|
|
7575
7579
|
clientId;
|
|
@@ -9338,13 +9342,19 @@ async function askChoice(message, choices) {
|
|
|
9338
9342
|
function askPassword(message) {
|
|
9339
9343
|
return new Promise((resolve) => {
|
|
9340
9344
|
output.write(`${message} `);
|
|
9341
|
-
|
|
9345
|
+
closePrompts();
|
|
9346
|
+
let rawModeOk = true;
|
|
9347
|
+
try {
|
|
9348
|
+
input.setRawMode(true);
|
|
9349
|
+
} catch {
|
|
9350
|
+
rawModeOk = false;
|
|
9351
|
+
}
|
|
9352
|
+
if (!rawModeOk) {
|
|
9342
9353
|
const rl = getInterface();
|
|
9343
9354
|
rl.question("").then(resolve);
|
|
9344
9355
|
return;
|
|
9345
9356
|
}
|
|
9346
9357
|
let value = "";
|
|
9347
|
-
input.setRawMode(true);
|
|
9348
9358
|
input.resume();
|
|
9349
9359
|
input.setEncoding("utf8");
|
|
9350
9360
|
const cleanup = () => {
|
|
@@ -9785,7 +9795,10 @@ var init_wizard = __esm({
|
|
|
9785
9795
|
console.error(`
|
|
9786
9796
|
Setup failed: ${err.message}`);
|
|
9787
9797
|
process.exit(1);
|
|
9788
|
-
}).finally(
|
|
9798
|
+
}).finally(() => {
|
|
9799
|
+
closePrompts();
|
|
9800
|
+
process.exit(0);
|
|
9801
|
+
});
|
|
9789
9802
|
}
|
|
9790
9803
|
});
|
|
9791
9804
|
|