Voraussetzung
Sie brauchen das .NET 10 SDK. Danach installieren Sie die globalen Tools von nuget.org—ohne PAT:
dotnet tool install -g Ironbrain.MailCal.Cli
dotnet tool install -g Ironbrain.MailCal.Mcp
ironbrain-mailcal --versionBefehle danach: ironbrain-mailcal (CLI) und ironbrain-mailcal-mcp (MCP über stdio).
<div>
<h2 class="text-2xl font-bold tracking-tight text-zinc-900 dark:text-white">CLI und MCP</h2>
<p class="mt-3 text-zinc-600 dark:text-zinc-400">
Beide nutzen dieselbe Config. Die CLI eignet sich für Skripte, Cron und Bots, die aus der Shell starten. Der MCP-Server ist für Cursor und andere Clients, die Tools im Chat anbieten. Fähigkeiten und Konten sind gleich—nur der Transport unterscheidet sich.
</p>
</div>
<div>
<h2 class="text-2xl font-bold tracking-tight text-zinc-900 dark:text-white">Config-Pfad</h2>
<p class="mt-3 text-zinc-600 dark:text-zinc-400">
Standard: <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">~/.config/ironbrain/mailcal.json</code>.
Alternativ: Flag <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">--config</code> oder Umgebungsvariable <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">IRONBRAIN_MAILCAL_CONFIG</code>.
</p>
</div>
<div>
<h2 class="text-2xl font-bold tracking-tight text-zinc-900 dark:text-white">Multi-Account</h2>
<p class="mt-3 text-zinc-600 dark:text-zinc-400">
In der Config gibt es <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">defaultAccount</code> und eine Map <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">accounts</code>.
Ein Konto wählen Sie mit <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">--account</code> / <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">-a</code> oder über <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">IRONBRAIN_MAILCAL_ACCOUNT</code>.
</p>
</div>
<div>
<h2 class="text-2xl font-bold tracking-tight text-zinc-900 dark:text-white">SMTP-Send-Gate</h2>
<p class="mt-3 text-zinc-600 dark:text-zinc-400">
Für persönliche oder nur-lesende Konten setzen Sie <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">Email.Smtp.Enabled</code> auf <code class="rounded bg-zinc-200/80 dark:bg-zinc-800 px-1.5 py-0.5 text-sm">false</code>. Dann können Bots über dieses Konto nicht versenden.
</p>
</div>
</div>
Beispiel-Config (Platzhalter)
Form nur als Orientierung—Passwörter und Hostnamen durch Ihre Werte ersetzen. Keine echten Zugangsdaten hier ablegen.
{
"defaultAccount": "personal",
"accounts": {
"personal": {
"Email": {
"Imap": {
"Host": "mail.example.com",
"Port": 993,
"UseSsl": true,
"Username": "you@example.com",
"Password": "YOUR_IMAP_PASSWORD"
},
"Smtp": {
"Enabled": false,
"Host": "mail.example.com",
"Port": 587,
"Username": "you@example.com",
"Password": "YOUR_SMTP_PASSWORD"
}
},
"Calendar": {
"SourceUrl": "https://caldav.example.com/dav/calendars/user/you/",
"Username": "you@example.com",
"Password": "YOUR_CALDAV_PASSWORD"
}
},
"bot": {
"Email": {
"Imap": {
"Host": "mail.example.com",
"Port": 993,
"UseSsl": true,
"Username": "bot@example.com",
"Password": "YOUR_BOT_IMAP_PASSWORD"
},
"Smtp": {
"Enabled": true,
"Host": "mail.example.com",
"Port": 587,
"Username": "bot@example.com",
"Password": "YOUR_BOT_SMTP_PASSWORD"
}
},
"Calendar": {
"SourceUrl": "https://caldav.example.com/dav/calendars/user/bot/",
"Username": "bot@example.com",
"Password": "YOUR_BOT_CALDAV_PASSWORD"
}
}
}
}Smoke-Test
Nach der Config prüfen, ob Konten und Protokolle erreichbar sind:
ironbrain-mailcal account list
ironbrain-mailcal --account personal mail list --limit 5
ironbrain-mailcal --account <cal-account> cal calendars --include-shared