FieldCure.Mcp.Outbox 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global FieldCure.Mcp.Outbox --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local FieldCure.Mcp.Outbox --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=FieldCure.Mcp.Outbox&version=0.1.0
                    
nuke :add-package FieldCure.Mcp.Outbox --version 0.1.0
                    

FieldCure MCP Outbox Server

NuGet License: MIT

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 toolslist_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 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

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:

  1. A Slack workspace (free plan is fine, single-person workspace works)
  2. A Slack App with Bot Token

Setup Steps:

  1. Go to api.slack.com/apps and click Create New AppFrom scratch
  2. Enter an App Name (e.g. "AssistStudio") and select your workspace
  3. In the left menu, go to OAuth & Permissions
  4. Under Bot Token Scopes, click Add an OAuth Scope and add chat:write
  5. Scroll up and click Install to WorkspaceAllow
  6. Copy the Bot User OAuth Token (xoxb-...)
  7. Important: In your Slack workspace, invite the bot to the channel where you want to send messages. Type /invite @YourBotName in 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 @YourBotName in the Slack channel.

Slack Setup


Telegram

What it does: Sends messages to yourself (Saved Messages) via Telegram Client API.

Prerequisites:

  1. A Telegram account with a registered phone number
  2. Telegram API credentials (API ID and API Hash)

Setup Steps:

  1. Go to my.telegram.org and log in with your phone number
  2. Click API development tools
  3. 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
  4. Click Create application
  5. 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.

Telegram Setup


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:

  1. A Gmail account with 2-Step Verification enabled
  2. An App Password (NOT your regular Google password)

Getting an App Password:

  1. Go to myaccount.google.com/security
  2. Ensure 2-Step Verification is ON
  3. Go to myaccount.google.com/apppasswords
  4. Enter an app name (e.g. "Outbox") → Create
  5. Copy the 16-character password (e.g. abcd efgh ijkl mnop)
  6. 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

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

SMTP Setup


KakaoTalk

What it does: Sends messages to yourself via KakaoTalk "Send to Me" API.

Prerequisites:

  1. A Kakao account
  2. A Kakao Developers application with Messaging API enabled

Setup Steps:

  1. Go to developers.kakao.com and log in
  2. Go to My ApplicationsAdd Application → Enter app name → Save
  3. Go to Product SettingsKakao Login → Set status to ON
  4. Go to Product SettingsKakao LoginConsent Items
    • Find 카카오톡 메시지 전송 (talk_message) under 접근권한
    • Click 설정 → Select 이용 중 동의 → Enter a purpose (e.g. "AI agent notification") → Save
  5. Go to App SettingsPlatform 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:

  1. Your browser will automatically open the Kakao login page
  2. Log in with your Kakao account and grant permissions
  3. The browser will show "Authorization successful!" — you can close it
  4. The console will confirm the channel was added

Token Management:

  • Access tokens are automatically refreshed when expired
  • If the refresh token also expires, send_message will return an error
  • Re-run add kakaotalk to re-authorize

KakaoTalk Setup

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

MIT

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
2.1.3 81 5/25/2026
2.1.2 117 4/23/2026
2.1.1 118 4/21/2026
2.1.0 104 4/20/2026
2.0.0 113 4/17/2026
1.1.0 102 4/14/2026
1.0.0 117 4/7/2026
0.4.1 125 4/3/2026
0.4.0 109 3/31/2026
0.3.0 103 3/31/2026
0.2.0 119 3/30/2026
0.1.0 114 3/29/2026

v0.1.0: Initial release — Slack, Telegram, SMTP (Gmail/Outlook/M365/Naver), KakaoTalk channels with secure credential storage via Windows Credential Manager.