@gnidreve/classic-imap-smtp-mcp 0.3.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.md +341 -0
- package/dist/main.js +2924 -0
- package/dist/main.js.map +1 -0
- package/llms.txt +262 -0
- package/package.json +71 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gnidreve
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
# classic-imap-smtp-mcp
|
|
2
|
+
|
|
3
|
+
> Ein vollständiger IMAP/SMTP-MCP-Server für AI-Assistenten. Alles, was ein guter Mailclient kann — und nichts darüber hinaus.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/classic-imap-smtp-mcp)
|
|
6
|
+
[](https://www.npmjs.com/package/classic-imap-smtp-mcp)
|
|
7
|
+
[](https://github.com/Gnidreve/classic-imap-smtp-mcp/actions)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Was ist classic-imap-smtp-mcp?
|
|
12
|
+
|
|
13
|
+
classic-imap-smtp-mcp ist ein lokal laufender [MCP](https://modelcontextprotocol.io)-Server, der jeden IMAP/SMTP-Mail-Account an einen AI-Assistenten anbindet. Es macht *genau das*, was ein Mailclient macht — Mails lesen, suchen, senden, antworten, weiterleiten, verschieben, markieren, Folder verwalten — und nichts darüber hinaus.
|
|
14
|
+
|
|
15
|
+
**Was classic-imap-smtp-mcp nicht macht** (bewusst):
|
|
16
|
+
- Kein OAuth2 — dieser MCP implementiert klassisches IMAP/SMTP mit User/Pass-Authentifizierung (App-Passwords). Für OAuth-Provider wie Gmail-OAuth-only-Setups oder Microsoft 365 nutze einen dafür gebauten MCP daneben.
|
|
17
|
+
- Keine Kalender-Integration
|
|
18
|
+
- Keine AI-Triage oder Auto-Kategorisierung im Server
|
|
19
|
+
- Keine Webhooks, keine Desktop-Notifications
|
|
20
|
+
- Kein Scheduler für zukünftige Mails
|
|
21
|
+
- Kein eingebauter SMTP-Server, keine Mail-Speicherung
|
|
22
|
+
|
|
23
|
+
Wenn du sowas brauchst, kombiniere classic-imap-smtp-mcp mit anderen MCPs. Genau dafür wurde MCP gebaut.
|
|
24
|
+
|
|
25
|
+
## Warum classic-imap-smtp-mcp?
|
|
26
|
+
|
|
27
|
+
Vergleich der relevanten IMAP/SMTP-MCPs am Markt:
|
|
28
|
+
|
|
29
|
+
| | classic-imap-smtp-mcp | ai-zerolab | AIWerk | codefuturist | yunfeizhu |
|
|
30
|
+
|---|---|---|---|---|---|
|
|
31
|
+
| Volle Mailclient-Tools | ✅ | ❌ | ⚠️ | ✅ | ❌ |
|
|
32
|
+
| Folder-Listing | ✅ | ❌ | ✅ | ✅ | ❌ |
|
|
33
|
+
| Folder-CRUD | ✅ | ❌ | ❌ | ✅ | ❌ |
|
|
34
|
+
| Move zwischen Foldern | ✅ | ❌ | ✅ | ✅ | ❌ |
|
|
35
|
+
| Flag-Management | ✅ | ❌ | ✅ | ✅ | ❌ |
|
|
36
|
+
| Dediziertes Reply-Tool | ✅ | ❌ | ✅ | ✅ | ✅ |
|
|
37
|
+
| APPEND (Drafts speichern) | ✅ | ❌ | ❌ | ✅ | ❌ |
|
|
38
|
+
| Multi-Account | ✅ | ✅ | ❌ | ✅ | ❌ |
|
|
39
|
+
| CLI-Feature-Toggles | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
40
|
+
| `npx`/`uvx` Distribution | ✅ | ✅ | ⚠️ | ✅ | ✅ |
|
|
41
|
+
| Permissive Lizenz | MIT | ✅ | ⚠️ | ❌ LGPL | ✅ |
|
|
42
|
+
| Scope nur Mail | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
43
|
+
|
|
44
|
+
## Installation
|
|
45
|
+
|
|
46
|
+
In deiner MCP-Client-Config:
|
|
47
|
+
|
|
48
|
+
**Claude Desktop** — `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) bzw. `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"mcpServers": {
|
|
53
|
+
"mail": {
|
|
54
|
+
"command": "npx",
|
|
55
|
+
"args": ["-y", "classic-imap-smtp-mcp"],
|
|
56
|
+
"env": {
|
|
57
|
+
"CLASSIC_IMAP_SMTP_IMAP_HOST": "imap.example.com",
|
|
58
|
+
"CLASSIC_IMAP_SMTP_IMAP_PORT": "993",
|
|
59
|
+
"CLASSIC_IMAP_SMTP_SMTP_HOST": "smtp.example.com",
|
|
60
|
+
"CLASSIC_IMAP_SMTP_SMTP_PORT": "465",
|
|
61
|
+
"CLASSIC_IMAP_SMTP_USER": "you@example.com",
|
|
62
|
+
"CLASSIC_IMAP_SMTP_PASS": "your-app-password"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Claude Code:**
|
|
70
|
+
```bash
|
|
71
|
+
claude mcp add mail \
|
|
72
|
+
-e CLASSIC_IMAP_SMTP_IMAP_HOST=imap.example.com \
|
|
73
|
+
-e CLASSIC_IMAP_SMTP_SMTP_HOST=smtp.example.com \
|
|
74
|
+
-e CLASSIC_IMAP_SMTP_USER=you@example.com \
|
|
75
|
+
-e CLASSIC_IMAP_SMTP_PASS=your-app-password \
|
|
76
|
+
-- npx -y classic-imap-smtp-mcp
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Cursor / Windsurf / VS Code**: analog. Snippets in [`docs/clients.md`](docs/clients.md).
|
|
80
|
+
|
|
81
|
+
Für Multi-Account-Setup siehe [Konfiguration](#konfiguration).
|
|
82
|
+
|
|
83
|
+
## Tools
|
|
84
|
+
|
|
85
|
+
classic-imap-smtp-mcp registriert je nach Modus und Toggles zwischen 16 (`--readonly`) und 36 (Default) Tools.
|
|
86
|
+
|
|
87
|
+
### IMAP — Lesen (12 Tools)
|
|
88
|
+
|
|
89
|
+
| Tool | Was es macht |
|
|
90
|
+
|---|---|
|
|
91
|
+
| `imap_list_mailboxes` | Folder enumerieren, mit Special-Use-Flags (RFC 6154) |
|
|
92
|
+
| `imap_status_mailbox` | Counts (unread, total, recent) ohne SELECT |
|
|
93
|
+
| `imap_list_messages` | Paginierte Liste in einem Folder (UID, Envelope, Flags, Size) |
|
|
94
|
+
| `imap_get_message` | Vollständige Mail inkl. geparsem Body + Attachment-Metadaten |
|
|
95
|
+
| `imap_get_message_headers` | Nur Header |
|
|
96
|
+
| `imap_get_message_raw` | RFC-822 raw source |
|
|
97
|
+
| `imap_get_messages_bulk` | Bis N UIDs in einem Call |
|
|
98
|
+
| `imap_search` | Vollständiger SEARCH-Builder (alle RFC-3501-Kriterien) |
|
|
99
|
+
| `imap_download_attachment` | Gezielt eine Attachment-Part extrahieren |
|
|
100
|
+
| `imap_get_thread` | Konversation via In-Reply-To/References rekonstruieren |
|
|
101
|
+
| `imap_get_quota` | RFC-2087 QUOTA |
|
|
102
|
+
| `imap_check_capabilities` | CAPABILITY-Liste des Servers |
|
|
103
|
+
|
|
104
|
+
### IMAP — Schreiben (8 Tools)
|
|
105
|
+
|
|
106
|
+
| Tool | Was es macht |
|
|
107
|
+
|---|---|
|
|
108
|
+
| `imap_mark_message` | STORE Flags setzen/entfernen (\Seen, \Flagged, \Answered, \Deleted, Keywords) |
|
|
109
|
+
| `imap_bulk_mark` | Bulk-STORE |
|
|
110
|
+
| `imap_move_message` | MOVE (RFC 6851), Fallback COPY+EXPUNGE |
|
|
111
|
+
| `imap_copy_message` | COPY |
|
|
112
|
+
| `imap_bulk_move` | Bulk-MOVE |
|
|
113
|
+
| `imap_append_message` | APPEND (Drafts speichern, Mails importieren) |
|
|
114
|
+
| `imap_expunge` | EXPUNGE |
|
|
115
|
+
| `imap_delete_message` | STORE \Deleted + optional EXPUNGE |
|
|
116
|
+
|
|
117
|
+
### IMAP — Folder-Management (5 Tools)
|
|
118
|
+
|
|
119
|
+
| Tool | Was es macht |
|
|
120
|
+
|---|---|
|
|
121
|
+
| `imap_create_mailbox` | Neuen Folder anlegen |
|
|
122
|
+
| `imap_delete_mailbox` | Folder löschen |
|
|
123
|
+
| `imap_rename_mailbox` | Folder umbenennen |
|
|
124
|
+
| `imap_subscribe_mailbox` | SUBSCRIBE |
|
|
125
|
+
| `imap_unsubscribe_mailbox` | UNSUBSCRIBE |
|
|
126
|
+
|
|
127
|
+
### SMTP (5 Tools)
|
|
128
|
+
|
|
129
|
+
| Tool | Was es macht |
|
|
130
|
+
|---|---|
|
|
131
|
+
| `smtp_send` | Senden mit allen Optionen (to/cc/bcc, text+html, attachments, inline-images, custom headers). Legt nach Versand automatisch eine Kopie im Sent-Folder ab (`save_to_sent`, Default an). |
|
|
132
|
+
| `smtp_reply` | Senden mit korrekter In-Reply-To/References-Kette (nimmt Original-UID + Folder). Sent-Ablage wie `smtp_send`. |
|
|
133
|
+
| `smtp_forward` | Senden mit Original quoted oder als Attachment. Sent-Ablage wie `smtp_send`. |
|
|
134
|
+
| `smtp_verify_connection` | Connection-Health-Check |
|
|
135
|
+
| `smtp_send_raw` | Vor-formatierte RFC-822 senden (Power-User). Sent-Ablage wie `smtp_send`. |
|
|
136
|
+
|
|
137
|
+
**Sent-Ablage:** SMTP verschickt eine Mail nur — es legt nichts in deinem "Gesendet"-Ordner ab. Mailclients lösen das, indem sie nach dem Versand selbst eine Kopie per IMAP in den Sent-Folder schreiben. Genau das machen die Sende-Tools automatisch (`save_to_sent`, Default `true`). Der Sent-Folder wird über das IMAP-Special-Use-Flag `\Sent` gefunden (Fallback auf gängige Namen, oder explizit via `sent_mailbox`). Wichtig: Versand und Ablage sind getrennt — gelingt der Versand, aber die Ablage scheitert (z. B. Sent-Folder fehlt), ist die Mail trotzdem raus; das Tool meldet Erfolg mit `saved_to_sent: false` plus Hinweis. Einen **Postausgang/Outbox mit Retry gibt es bewusst nicht** — ein fehlgeschlagener Versand wird sofort als Fehler gemeldet, nicht in eine Warteschlange geparkt (siehe stateless-Designprinzip).
|
|
138
|
+
|
|
139
|
+
### Account-Management (4 Tools)
|
|
140
|
+
|
|
141
|
+
| Tool | Was es macht |
|
|
142
|
+
|---|---|
|
|
143
|
+
| `account_list` | Konfigurierte Accounts auflisten (Credentials masked) |
|
|
144
|
+
| `account_add` | Neuen Account zur Config hinzufügen |
|
|
145
|
+
| `account_update` | Bestehenden Account modifizieren (z. B. neues App-Password) |
|
|
146
|
+
| `account_delete` | Account aus Config entfernen |
|
|
147
|
+
|
|
148
|
+
### Meta — Server-Introspektion (2 Tools)
|
|
149
|
+
|
|
150
|
+
| Tool | Was es macht |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `meta_health` | IMAP + SMTP Erreichbarkeit, Latenz, Capabilities |
|
|
153
|
+
| `meta_server_info` | Aktive Tools, aktiver Modus, Version |
|
|
154
|
+
|
|
155
|
+
**Gesamt: 36 Tools.** Für jeden bietet `classic-imap-smtp-mcp --help` und die JSON-Schemas im MCP-Inspector vollständige Param-Doku. Die Rückgabe-Struktur jedes Tools ist in [`output-shapes.md`](output-shapes.md) festgelegt, die abhakbare Implementierungs-Liste in [`tools-checklist.md`](tools-checklist.md).
|
|
156
|
+
|
|
157
|
+
## Konfiguration
|
|
158
|
+
|
|
159
|
+
### Methode 1: Env-Vars (Single Account)
|
|
160
|
+
|
|
161
|
+
Einfachster Weg. Reicht für 90 % der User.
|
|
162
|
+
|
|
163
|
+
| Variable | Pflicht | Default | Beschreibung |
|
|
164
|
+
|---|---|---|---|
|
|
165
|
+
| `CLASSIC_IMAP_SMTP_USER` | ✅ | — | Mail-Adresse / IMAP-Login |
|
|
166
|
+
| `CLASSIC_IMAP_SMTP_PASS` | ✅ | — | Passwort oder App-Password |
|
|
167
|
+
| `CLASSIC_IMAP_SMTP_IMAP_HOST` | ✅ | — | IMAP-Hostname |
|
|
168
|
+
| `CLASSIC_IMAP_SMTP_IMAP_PORT` | | `993` | IMAP-Port |
|
|
169
|
+
| `CLASSIC_IMAP_SMTP_IMAP_TLS` | | `true` | TLS (`true` = implicit, `starttls` = STARTTLS, `false` = plain) |
|
|
170
|
+
| `CLASSIC_IMAP_SMTP_SMTP_HOST` | ✅ | — | SMTP-Hostname |
|
|
171
|
+
| `CLASSIC_IMAP_SMTP_SMTP_PORT` | | `465` | SMTP-Port |
|
|
172
|
+
| `CLASSIC_IMAP_SMTP_SMTP_TLS` | | `true` | TLS-Mode (analog) |
|
|
173
|
+
| `CLASSIC_IMAP_SMTP_FROM_NAME` | | — | Display-Name beim Senden |
|
|
174
|
+
| `CLASSIC_IMAP_SMTP_VERIFY_TLS` | | `true` | Zertifikat verifizieren |
|
|
175
|
+
|
|
176
|
+
Für Gmail, Outlook, iCloud, Fastmail, Posteo, mailbox.org, GMX, web.de, Yahoo, ProtonMail-Bridge reicht es, `CLASSIC_IMAP_SMTP_USER` + `CLASSIC_IMAP_SMTP_PASS` zu setzen — Host/Port werden automatisch erkannt.
|
|
177
|
+
|
|
178
|
+
### Methode 2: Config-File (Multi-Account)
|
|
179
|
+
|
|
180
|
+
Pfad (XDG-konform):
|
|
181
|
+
- Linux/macOS: `~/.config/classic-imap-smtp-mcp/config.toml`
|
|
182
|
+
- Windows: `%APPDATA%\classic-imap-smtp-mcp\config.toml`
|
|
183
|
+
|
|
184
|
+
```toml
|
|
185
|
+
default_account = "personal"
|
|
186
|
+
|
|
187
|
+
[[accounts]]
|
|
188
|
+
name = "personal"
|
|
189
|
+
user = "you@gmail.com"
|
|
190
|
+
pass = "your-app-password"
|
|
191
|
+
from_name = "Your Name"
|
|
192
|
+
# Host/Port via Provider-Auto-Detect
|
|
193
|
+
|
|
194
|
+
[[accounts]]
|
|
195
|
+
name = "work"
|
|
196
|
+
user = "you@company.com"
|
|
197
|
+
pass = "another-app-password"
|
|
198
|
+
imap_host = "imap.company.com"
|
|
199
|
+
imap_port = 993
|
|
200
|
+
smtp_host = "smtp.company.com"
|
|
201
|
+
smtp_port = 587
|
|
202
|
+
smtp_tls = "starttls"
|
|
203
|
+
from_name = "You at Work"
|
|
204
|
+
|
|
205
|
+
[[accounts]]
|
|
206
|
+
name = "selfhosted"
|
|
207
|
+
user = "me@mybox.tld"
|
|
208
|
+
pass = "supersecret"
|
|
209
|
+
imap_host = "mail.mybox.tld"
|
|
210
|
+
smtp_host = "mail.mybox.tld"
|
|
211
|
+
verify_tls = false # selbst-signierte Zertifikate
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Bei mehreren Accounts akzeptiert jedes Tool einen optionalen `account`-Parameter. Ohne Parameter wird der Default genutzt.
|
|
215
|
+
|
|
216
|
+
### Methode 3: Mischbetrieb
|
|
217
|
+
|
|
218
|
+
Env-Vars überschreiben Config-File-Werte. Praktisch für CI/Container-Umgebungen mit Basis-Config aus File + sensible Werte aus Env.
|
|
219
|
+
|
|
220
|
+
## Feature-Flags & Tool-Auswahl
|
|
221
|
+
|
|
222
|
+
classic-imap-smtp-mcp registriert Tools **konditional zur Server-Start-Zeit**. Was nicht registriert ist, kann der Client nicht sehen — saubere Capability-Boundary. Alle Schalter sind **CLI-Args** (keine Env-Vars).
|
|
223
|
+
|
|
224
|
+
### Die vier Feature-Flags (grob)
|
|
225
|
+
|
|
226
|
+
| Flag | Wirkung |
|
|
227
|
+
|---|---|
|
|
228
|
+
| `--safe` | Löschen aus: `imap_delete_message`, `imap_expunge`, `imap_delete_mailbox` weg. Senden, Verschieben, Markieren, Drafts bleiben. |
|
|
229
|
+
| `--readonly` | Nur Lesezugriffe: alle schreibenden IMAP-Operationen (STORE, MOVE, COPY, APPEND, Folder-CRUD) **und** SMTP-Send weg. `smtp_verify_connection` und `account_list` bleiben. |
|
|
230
|
+
| `--no-imap` | Alle IMAP-Tools weg. |
|
|
231
|
+
| `--no-smtp` | Alle SMTP-Tools weg. |
|
|
232
|
+
|
|
233
|
+
`--safe` und `--readonly` sind kombinierbar (`--readonly` ist strenger und gewinnt). `--no-imap` **und** `--no-smtp` zusammen ergeben einen leeren Server — das bricht beim Start mit Fehler ab (fast sicher ein Konfig-Versehen).
|
|
234
|
+
|
|
235
|
+
### Feingranulare Auswahl (Expertenmodus)
|
|
236
|
+
|
|
237
|
+
Zwei Flags mit **Präfix-Wildcards** für chirurgische Kontrolle:
|
|
238
|
+
|
|
239
|
+
| Flag | Wirkung |
|
|
240
|
+
|---|---|
|
|
241
|
+
| `--allow-tools=<csv>` | Tools explizit freigeben — **überschreibt die Feature-Flags**. Holt gezielt zurück, was eine grobe Geste weggeschaltet hat. |
|
|
242
|
+
| `--deny-tools=<csv>` | Tools explizit wegnehmen — **gewinnt über alles**, auch über `--allow-tools`. |
|
|
243
|
+
|
|
244
|
+
Wildcards matchen per Präfix: `imap_*`, `smtp_*`, `account_*`, `meta_*`, oder feiner `imap_delete_*`, `imap_bulk_*`, `imap_get_*`.
|
|
245
|
+
|
|
246
|
+
**Kaskade (grob → fein, fein gewinnt):**
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
1. Feature-Flags bilden die Basis-Menge
|
|
250
|
+
2. --allow-tools überschreibt sie (kann Tools zurückholen)
|
|
251
|
+
3. --deny-tools hat das letzte Wort
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Beispiele:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Nur lesen, aber Senden trotzdem erlauben
|
|
258
|
+
npx classic-imap-smtp-mcp --readonly --allow-tools=smtp_send
|
|
259
|
+
|
|
260
|
+
# SMTP komplett aus, nur smtp_send zurückholen
|
|
261
|
+
npx classic-imap-smtp-mcp --no-smtp --allow-tools=smtp_send
|
|
262
|
+
|
|
263
|
+
# Alles, aber kein Account-Management
|
|
264
|
+
npx classic-imap-smtp-mcp --deny-tools=account_*
|
|
265
|
+
|
|
266
|
+
# Alle IMAP-Tools außer den Lösch-Varianten
|
|
267
|
+
npx classic-imap-smtp-mcp --allow-tools=imap_* --deny-tools=imap_delete_*
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## CLI
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
classic-imap-smtp-mcp [options]
|
|
274
|
+
|
|
275
|
+
Run as MCP server over stdio (default subcommand).
|
|
276
|
+
|
|
277
|
+
Options:
|
|
278
|
+
--safe Lösch-Tools deaktivieren (delete/expunge/delete-mailbox)
|
|
279
|
+
--readonly Nur Lesezugriffe (kein Schreiben, kein SMTP-Send)
|
|
280
|
+
--no-imap Alle IMAP-Tools deaktivieren
|
|
281
|
+
--no-smtp Alle SMTP-Tools deaktivieren
|
|
282
|
+
--allow-tools=<list> Tools explizit freigeben, überschreibt Feature-Flags (CSV, Präfix-Wildcards)
|
|
283
|
+
--deny-tools=<list> Tools explizit wegnehmen, gewinnt über alles (CSV, Präfix-Wildcards)
|
|
284
|
+
--account=<name> Default-Account-Override
|
|
285
|
+
--config=<path> Alternativer Config-Pfad
|
|
286
|
+
--log-level=<level> trace|debug|info|warn|error (default: info)
|
|
287
|
+
--log-format=<fmt> json|pretty (default: json)
|
|
288
|
+
-h, --help Hilfe anzeigen
|
|
289
|
+
-V, --version Version anzeigen
|
|
290
|
+
|
|
291
|
+
Subcommands:
|
|
292
|
+
init Template-Config nach XDG-Pfad schreiben
|
|
293
|
+
test [account] IMAP+SMTP-Verbindung testen
|
|
294
|
+
list-tools Welche Tools würden mit den aktuellen Flags registriert? (Dry-Run)
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Sicherheit
|
|
298
|
+
|
|
299
|
+
- Alle Verbindungen via TLS (implicit oder STARTTLS, je Config)
|
|
300
|
+
- Passwörter werden niemals geloggt
|
|
301
|
+
- Empfehlung: **App-Passwords** statt Account-Passwörter (Gmail, Outlook, iCloud unterstützen das)
|
|
302
|
+
- Config-File sollte `0600` permission haben (classic-imap-smtp-mcp warnt bei zu offenen Permissions)
|
|
303
|
+
- Attachment-Downloads sind auf eine konfigurierbare Maximalgröße begrenzt
|
|
304
|
+
- `CLASSIC_IMAP_SMTP_VERIFY_TLS=false` ist nur für selbst-signierte interne Server gedacht — wird im Log markiert
|
|
305
|
+
|
|
306
|
+
## Roadmap
|
|
307
|
+
|
|
308
|
+
Siehe [`phases.md`](phases.md) für den vollständigen Phasen-Plan.
|
|
309
|
+
|
|
310
|
+
- **v1.0** — Stable IMAP/SMTP mit allen 36 Tools, klassische Auth
|
|
311
|
+
- **v1.x** — OS-Keychain-Integration für Credentials
|
|
312
|
+
- **v2.0** — IMAP IDLE als streaming long-running tool (falls Client-Support reift)
|
|
313
|
+
- **v2.x** — Docker-First-Distribution
|
|
314
|
+
|
|
315
|
+
**Out of scope — permanent:** OAuth2, Calendar/ICS, AI-Triage, Scheduling, Notifications (siehe ["Was classic-imap-smtp-mcp nicht macht"](#was-ist-classic-imap-smtp-mcp) oben). Diese Grenzen sind bewusst und bleiben über alle Versionen bestehen.
|
|
316
|
+
|
|
317
|
+
## Mitwirken
|
|
318
|
+
|
|
319
|
+
PRs willkommen. Siehe [`AGENTS.md`](AGENTS.md) für Architektur und Konventionen (gilt für menschliche Contributors gleichermaßen), [`CONTRIBUTING.md`](CONTRIBUTING.md) für Workflow.
|
|
320
|
+
|
|
321
|
+
Wenn du an classic-imap-smtp-mcp **mit** einem AI-Assistenten arbeitest, lade `AGENTS.md` als erstes in den Context — das Repo ist darauf ausgelegt.
|
|
322
|
+
|
|
323
|
+
## Dokumentation in diesem Repo
|
|
324
|
+
|
|
325
|
+
| Datei | Zielgruppe | Inhalt |
|
|
326
|
+
|---|---|---|
|
|
327
|
+
| `README.md` (diese Datei) | Menschen | Übersicht, Install, Tool-Katalog, Config |
|
|
328
|
+
| [`llms.txt`](llms.txt) | Konsumierende LLMs | Maschinenoptimierte Install-/Setup-/Tool-Doku |
|
|
329
|
+
| [`AGENTS.md`](AGENTS.md) | Coding-Agents (Claude Code, Cursor, Codex) | Architektur, Konventionen, Build, Vorgaben |
|
|
330
|
+
| [`tools-checklist.md`](tools-checklist.md) | Implementierer | Abhakbare Liste aller 36 Tools mit Status, RFC-Refs, Definition of Done |
|
|
331
|
+
| [`output-shapes.md`](output-shapes.md) | Implementierer | Verbindliche Output-Struktur jedes Tools |
|
|
332
|
+
| [`phases.md`](phases.md) | Projekt-Mitwirkende | Entwicklungsphasen 0–5 |
|
|
333
|
+
| [`phase-0-marktanalyse.md`](phase-0-marktanalyse.md) | Projekt-Mitwirkende | Warum dieses Projekt existiert |
|
|
334
|
+
| [`phase-1-fragerunde.md`](phase-1-fragerunde.md) | Projekt-Mitwirkende | Designentscheidungen Phase 1 |
|
|
335
|
+
| `CONTRIBUTING.md` | Contributors | Dev-Workflow, Branching, PR-Regeln |
|
|
336
|
+
| `SECURITY.md` | Security-Reporter | Vulnerability-Reporting |
|
|
337
|
+
| `CHANGELOG.md` | Alle | Release-Notes |
|
|
338
|
+
|
|
339
|
+
## Lizenz
|
|
340
|
+
|
|
341
|
+
MIT License — siehe [`LICENSE`](LICENSE).
|