FieldCure.Mcp.Outbox
0.1.0
See the version list below for details.
dotnet tool install --global FieldCure.Mcp.Outbox --version 0.1.0
dotnet new tool-manifest
dotnet tool install --local FieldCure.Mcp.Outbox --version 0.1.0
#tool dotnet:?package=FieldCure.Mcp.Outbox&version=0.1.0
nuke :add-package FieldCure.Mcp.Outbox --version 0.1.0
FieldCure MCP Outbox Server
A multi-channel messaging Model Context Protocol (MCP) server that sends messages through Slack, Telegram, Email (SMTP), and KakaoTalk. Built with C# and the official MCP C# SDK.
Features
- 4 messaging channels — Slack, Telegram, SMTP (Gmail, Outlook, Microsoft 365, Naver), KakaoTalk
- 4 MCP tools —
list_channels,add_channel,send_message,remove_channel - Secure credential storage — secrets stored in Windows Credential Manager (DPAPI), never exposed to LLM
- CLI channel setup — interactive console for credential entry, launched as a subprocess
- SMTP presets — Gmail, Outlook, Microsoft 365, Naver with one-command setup
- KakaoTalk OAuth — localhost callback flow with automatic token refresh
- Telegram Client API — send to Saved Messages via WTelegramClient
- Stdio transport — standard MCP subprocess model via JSON-RPC over stdin/stdout
Installation
dotnet tool (recommended)
dotnet tool install -g FieldCure.Mcp.Outbox
After installation, the fieldcure-mcp-outbox command is available globally.
From source
git clone https://github.com/fieldcure/fieldcure-mcp-outbox.git
cd fieldcure-mcp-outbox
dotnet build
Requirements
- .NET 8.0 Runtime or later
- Windows (required for Credential Manager)
Configuration
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"outbox": {
"command": "fieldcure-mcp-outbox"
}
}
}
VS Code (Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"outbox": {
"command": "fieldcure-mcp-outbox"
}
}
}
From source (without dotnet tool)
{
"mcpServers": {
"outbox": {
"command": "dotnet",
"args": [
"run",
"--project", "C:\\path\\to\\fieldcure-mcp-outbox\\src\\FieldCure.Mcp.Outbox"
]
}
}
}
Tools
| Tool | Description | Confirmation |
|---|---|---|
list_channels |
List all configured messaging channels | — |
add_channel |
Add a new channel (opens setup console for credential entry) | — |
send_message |
Send a message through a configured channel | Required |
remove_channel |
Remove a channel and its stored credentials | Required |
Channel Setup
All channel credentials are stored securely in Windows Credential Manager (DPAPI). No secrets are exposed in conversation history or config files.
Slack
What it does: Sends messages to a Slack channel via Bot API.
Prerequisites:
- A Slack workspace (free plan is fine, single-person workspace works)
- A Slack App with Bot Token
Setup Steps:
- Go to api.slack.com/apps and click Create New App → From scratch
- Enter an App Name (e.g. "AssistStudio") and select your workspace
- In the left menu, go to OAuth & Permissions
- Under Bot Token Scopes, click Add an OAuth Scope and add
chat:write - Scroll up and click Install to Workspace → Allow
- Copy the Bot User OAuth Token (
xoxb-...) - Important: In your Slack workspace, invite the bot to the channel where you want to send messages. Type
/invite @YourBotNamein the channel.
Add Channel:
fieldcure-mcp-outbox add slack
You will be prompted for:
- Channel name: The default Slack channel name (e.g.
general,dev-alerts) - Bot Token: The
xoxb-...token from step 6
Note: The bot must be invited to the channel before it can send messages. Type
/invite @YourBotNamein the Slack channel.
Telegram
What it does: Sends messages to yourself (Saved Messages) via Telegram Client API.
Prerequisites:
- A Telegram account with a registered phone number
- Telegram API credentials (API ID and API Hash)
Setup Steps:
- Go to my.telegram.org and log in with your phone number
- Click API development tools
- Fill in the form:
- App title: Any name (e.g. "AssistStudio")
- Short name: 5-32 alphanumeric characters (e.g. "AStudio")
- Platform: Desktop
- URL / Description: Leave empty
- Click Create application
- Note down the API ID (numeric) and API Hash (string)
Note: Test/Production configuration values on the same page are NOT needed.
Add Channel:
fieldcure-mcp-outbox add telegram
You will be prompted for:
- API ID: The numeric ID from step 5
- API Hash: The hash string from step 5
- Phone: Your phone number in international format (e.g.
8210xxxxxxxx) - Verification code: Enter the code sent to your Telegram app or via SMS
A session file is created after successful authentication. Subsequent use does not require re-authentication.
SMTP (Email)
What it does: Sends emails via SMTP. Supports Gmail, Outlook, Microsoft 365, Naver, and custom SMTP servers.
Add Channel:
fieldcure-mcp-outbox add smtp
A provider menu will be displayed:
Select provider:
1. Gmail (smtp.gmail.com)
2. Outlook (smtp-mail.outlook.com)
3. Microsoft 365 (smtp.office365.com)
4. Naver (smtp.naver.com)
5. Custom
You can also use shortcut commands:
fieldcure-mcp-outbox add gmail
fieldcure-mcp-outbox add outlook
fieldcure-mcp-outbox add microsoft365
fieldcure-mcp-outbox add naver
Gmail
Prerequisites:
- A Gmail account with 2-Step Verification enabled
- An App Password (NOT your regular Google password)
Getting an App Password:
- Go to myaccount.google.com/security
- Ensure 2-Step Verification is ON
- Go to myaccount.google.com/apppasswords
- Enter an app name (e.g. "Outbox") → Create
- Copy the 16-character password (e.g.
abcd efgh ijkl mnop) - Enter it without spaces when prompted
You will be prompted for:
- Gmail address: Your Gmail email address
- App password: The 16-character app password
Outlook (Personal)
For personal accounts (@outlook.com, @hotmail.com, @live.com).
Uses smtp-mail.outlook.com:587 with STARTTLS.
You will be prompted for:
- Email address: Your Outlook email address
- App password: Your app password or account password
Microsoft 365 (Business)
For business/organization Microsoft 365 accounts.
Uses smtp.office365.com:587 with STARTTLS.
You will be prompted for:
- Email address: Your work email address
- App password: Your app password
Naver
Uses smtp.naver.com:587 with STARTTLS.
You will be prompted for:
- Naver ID: Your Naver email address
- Password: Your Naver password or app password
Custom SMTP
For any other SMTP server.
You will be prompted for:
- Host: SMTP server hostname
- Port: SMTP port (default: 587)
- Use TLS: y/n (default: y)
- Username: SMTP username
- Password: SMTP password
KakaoTalk
What it does: Sends messages to yourself via KakaoTalk "Send to Me" API.
Prerequisites:
- A Kakao account
- A Kakao Developers application with Messaging API enabled
Setup Steps:
- Go to developers.kakao.com and log in
- Go to My Applications → Add Application → Enter app name → Save
- Go to Product Settings → Kakao Login → Set status to ON
- Go to Product Settings → Kakao Login → Consent Items
- Find 카카오톡 메시지 전송 (
talk_message) under 접근권한 - Click 설정 → Select 이용 중 동의 → Enter a purpose (e.g. "AI agent notification") → Save
- Find 카카오톡 메시지 전송 (
- Go to App Settings → Platform Key → Click on your REST API key
- Copy the REST API Key
- Under 카카오 로그인 리다이렉트 URI, add:
http://localhost:9876/callback - Under 클라이언트 시크릿, copy the Client Secret code for 카카오 로그인
- Ensure 활성화 is set to ON
- Click 저장
Critical: The redirect URI must be exactly
http://localhost:9876/callback— no trailing slash.
Add Channel:
fieldcure-mcp-outbox add kakaotalk
You will be prompted for:
- REST API Key: From step 5
- Client Secret: From step 5 (press Enter to skip if disabled, but new apps have it enabled by default)
After entering credentials:
- Your browser will automatically open the Kakao login page
- Log in with your Kakao account and grant permissions
- The browser will show "Authorization successful!" — you can close it
- The console will confirm the channel was added
Token Management:
- Access tokens are automatically refreshed when expired
- If the refresh token also expires,
send_messagewill return an error - Re-run
add kakaotalkto re-authorize
CLI Commands
fieldcure-mcp-outbox # Start MCP server (stdio)
fieldcure-mcp-outbox add slack # Add Slack channel
fieldcure-mcp-outbox add telegram # Add Telegram channel
fieldcure-mcp-outbox add gmail # Add Gmail SMTP channel
fieldcure-mcp-outbox add outlook # Add Outlook SMTP channel
fieldcure-mcp-outbox add microsoft365 # Add Microsoft 365 SMTP channel
fieldcure-mcp-outbox add naver # Add Naver SMTP channel
fieldcure-mcp-outbox add smtp # Add custom SMTP channel
fieldcure-mcp-outbox add kakaotalk # Add KakaoTalk channel
fieldcure-mcp-outbox list # List configured channels
fieldcure-mcp-outbox remove <id> # Remove a channel
Data Storage
| Data | Location |
|---|---|
| Channel metadata | %LOCALAPPDATA%\FieldCure\Mcp.Outbox\channels.json |
| Secrets | Windows Credential Manager (DPAPI) |
| Telegram sessions | %LOCALAPPDATA%\FieldCure\Mcp.Outbox\sessions\ |
| KakaoTalk tokens | %LOCALAPPDATA%\FieldCure\Mcp.Outbox\tokens\ |
Project Structure
src/FieldCure.Mcp.Outbox/
├── Program.cs # Entry point: MCP server vs CLI branching
├── Channels/
│ ├── IChannel.cs # Channel interface + SendRequest/SendResult
│ ├── ChannelFactory.cs # Channel instantiation by type
│ ├── SlackChannel.cs # Slack Web API
│ ├── TelegramChannel.cs # WTelegramClient
│ ├── SmtpChannel.cs # MailKit SMTP
│ └── KakaoTalkChannel.cs # Kakao REST API
├── Tools/
│ ├── ListChannelsTool.cs # list_channels
│ ├── AddChannelTool.cs # add_channel
│ ├── RemoveChannelTool.cs # remove_channel
│ └── SendMessageTool.cs # send_message
├── Setup/
│ ├── SetupRunner.cs # CLI router
│ ├── ConsoleHelper.cs # Masked input, prompts
│ ├── SlackSetup.cs
│ ├── TelegramSetup.cs
│ ├── SmtpSetup.cs
│ └── KakaoTalkSetup.cs
└── Configuration/
├── ChannelStore.cs # channels.json persistence
├── CredentialManager.cs # Windows Credential Manager wrapper
└── SmtpPresets.cs # SMTP preset definitions
Development
# Build
dotnet build
# Test
dotnet test
# Pack as dotnet tool
dotnet pack src/FieldCure.Mcp.Outbox -c Release
License
| 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.
v0.1.0: Initial release — Slack, Telegram, SMTP (Gmail/Outlook/M365/Naver), KakaoTalk channels with secure credential storage via Windows Credential Manager.