FieldCure.Mcp.Outbox
2.1.2
{ "servers": { "FieldCure.Mcp.Outbox": { "type": "stdio", "command": "dnx", "args": ["FieldCure.Mcp.Outbox@2.1.2", "--yes"] } } }
.vscode/mcp.json settings file.
dotnet tool install --global FieldCure.Mcp.Outbox --version 2.1.2
dotnet new tool-manifest
dotnet tool install --local FieldCure.Mcp.Outbox --version 2.1.2
#tool dotnet:?package=FieldCure.Mcp.Outbox&version=2.1.2
nuke :add-package FieldCure.Mcp.Outbox --version 2.1.2
FieldCure.Mcp.Outbox
Multi-channel messaging MCP server — send messages through Slack, Telegram, Email (Gmail, Naver, Microsoft Graph API), KakaoTalk, and Discord with a single send_message tool. One install, one interface, multiple channels.
Install
dotnet tool install -g FieldCure.Mcp.Outbox
Quick Start
# Add a Slack channel
fieldcure-mcp-outbox add slack
# Add a Gmail channel
fieldcure-mcp-outbox add gmail
# Start MCP server
fieldcure-mcp-outbox
Claude Desktop
{
"mcpServers": {
"outbox": {
"command": "fieldcure-mcp-outbox"
}
}
}
Tools (4)
| Tool | Description | Confirmation |
|---|---|---|
list_channels |
List all configured messaging channels | — |
add_channel |
Add a new channel (opens setup console) | — |
send_message |
Send a message through a channel | Required |
remove_channel |
Remove a channel and its data | Required |
Channels
| Channel | Protocol | Setup |
|---|---|---|
| Slack | Web API (chat.postMessage) |
Bot Token |
| Telegram | Client API (WTelegramClient) | API ID + Hash + SMS |
| Gmail | SMTP (smtp.gmail.com:587) | App password |
| Naver | SMTP (smtp.naver.com:465) | App password |
| Microsoft | Graph API (/me/sendMail) |
OAuth 2.0 |
| Custom SMTP | User-defined SMTP server | Username + password |
| KakaoTalk | Kakao REST API | OAuth 2.0 |
| Discord | Webhook API | Webhook URL |
Credential Storage
Credentials are resolved in this order:
- In-memory cache (from prior elicitation or env var pickup in the current session)
- Environment variable
OUTBOX_{CHANNEL_ID}_{FIELD}(e.g.OUTBOX_SLACK_GENERAL_BOT_TOKEN) channels.json(plaintext, written by the CLI setup flow)- MCP Elicitation (when the client supports it)
OAuth dynamic tokens (Microsoft, KakaoTalk) are persisted separately in tokens.json with current-user-only file permissions (Windows ACL / Unix 0600). Channel setup never passes credentials through MCP stdio.
Plaintext storage in channels.json is a deliberate local-trust choice — same same-user security boundary as ~/.docker/config.json and ~/.config/gh/hosts.yml. For shared hosts, CI, or headless deployments, set the env vars directly and leave the secret fields of channels.json empty. See ADR-001 Principle 2.
Requirements
- .NET 8.0 Runtime or later
See Also
Part of the AssistStudio ecosystem.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
v2.1.2: Persist KakaoTalk/Microsoft static OAuth credentials (REST API key, client secret) to channels.json so send_message no longer re-elicits after a server restart.