Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
作者提供的说明(英文原文)
Multi-channel messaging MCP server for Slack, Telegram, Email, KakaoTalk, and Discord.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"outbox": {
"command": "dnx",
"args": [
"FieldCure.Mcp.Outbox",
"--yes"
]
}
}
}在终端中运行这条命令
claude mcp add outbox -- dnx FieldCure.Mcp.Outbox --yes粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"outbox": {
"command": "dnx",
"args": [
"FieldCure.Mcp.Outbox",
"--yes"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"outbox": {
"type": "stdio",
"command": "dnx",
"args": [
"FieldCure.Mcp.Outbox",
"--yes"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 fieldcure 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(2.1.3)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 .NET。
同一分类中有:Vexa, emailmd, MCP WhatsApp Cloud
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A multi-channel messaging Model Context Protocol (MCP) server that sends messages through Slack, Telegram, Email (Gmail, Naver, Microsoft Graph API), KakaoTalk, and Discord. Built with C# and the official MCP C# SDK.
list_channels, add_channel, send_message, remove_channelExisting MCP servers are channel-specific — one for Slack, another for Gmail, yet another for Telegram. Each requires separate installation, configuration, and the LLM must know which tool to call for each channel.
Outbox takes a different approach:
send_message abstracts away channel differences. The LLM doesn't need to know Slack API vs SMTP vs Kakao REST.tokens.json with current-user-only file permissions; MCP tool flows can resolve secrets at runtime via env vars or elicitation.dotnet tool install -g gives you 4 channels. No need to install and configure separate servers per channel.dotnet tool install -g FieldCure.Mcp.Outbox
After installation, the fieldcure-mcp-outbox command is available globally.
git clone https://github.com/fieldcure/fieldcure-mcp-outbox.git
cd fieldcure-mcp-outbox dotnet build
Add to claude_desktop_config.json:
{
"mcpServers": { "outbox": { "command": "fieldcure-mcp-outbox" } } }
Add to .vscode/mcp.json:
{
"servers": { "outbox": { "command": "fieldcure-mcp-outbox" } } }
{
"mcpServers": { "outbox": { "command": "dotnet", "args": [ "run", "--project", "C:\\path\\to\\fieldcure-mcp-outbox\\src\\FieldCure.Mcp.Outbox" ] } } }
| Tool | Description | Confirmation |
|---|---|---|
list_channels | List all configured messaging channels | — |
add_channel | Add a new channel (MCP elicitation for all channel types; Microsoft/KakaoTalk require a local browser on the MCP host) | — |
send_message | Send a message through a configured channel | Required |
remove_channel | Remove a channel and its stored credentials | Required |
OAuth tokens for Microsoft/KakaoTalk are stored in tokens.json so the server can refresh them across runs (current-user-only file permissions — Windows ACL / Unix 0600).
Static secrets (Slack bot tokens, Discord webhook URLs, SMTP passwords, etc.) resolve at send time in this order: in-memory cache → env var OUTBOX_{CHANNEL_ID}_{FIELD} → plaintext in channels.json → MCP elicitation. The CLI add_channel flow writes directly into channels.json for a zero-configuration local experience. This is an intentional local-trust choice with the same same-user boundary as tokens.json, documented in ADR-001 Principle 2. For shared hosts, CI, or headless deployments, set the env vars explicitly and leave channels.json secret fields empty.
| Channel | Protocol | Setup |
|---|---|---|
| Slack | Web API (chat.postMessage) | Guide |
| Telegram | Client API (WTelegramClient) | Guide |
| Gmail | SMTP | Guide |
| Naver | SMTP | Guide |
| Microsoft | Graph API (/me/sendMail) | Guide |
| KakaoTalk | Kakao REST API | Guide |
| Discord | Webhook API | Guide |
| Custom SMTP | User-defined | Guide |
When a channel requires a static secret at send time, Outbox looks for an environment variable named:
OUTBOX_<CHANNEL_ID>_<FIELD>
Examples:
OUTBOX_MICROSOFT_1_CLIENT_SECRETOUTBOX_KAKAOTALK_1_API_KEYOUTBOX_KAKAOTALK_1_CLIENT_SECRETOUTBOX_SMTP_GMAIL_1_PASSWORDIf the variable is unset and the MCP client supports elicitation, Outbox prompts for it interactively and caches it for the current session.
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 naver # Add Naver SMTP channel fieldcure-mcp-outbox add smtp # Add custom SMTP channel fieldcure-mcp-outbox add microsoft # Add Microsoft (Outlook/M365) channel fieldcure-mcp-outbox add kakaotalk # Add KakaoTalk channel fieldcure-mcp-outbox add discord # Add Discord channel fieldcure-mcp-outbox list # List configured channels fieldcure-mcp-outbox remove # Remove a channel
| Data | Location |
|---|---|
| Channel metadata | %LOCALAPPDATA%\FieldCure\Mcp.Outbox\channels.json |
| OAuth tokens | %LOCALAPPDATA%\FieldCure\Mcp.Outbox\tokens.json |
| Telegram sessions | %LOCALAPPDATA%\FieldCure\Mcp.Outbox\sessions\ |
tokens.json is stored in plain JSON and protected by filesystem permissions:
0600This protects against other local users on the same machine, but not against compromise of the same OS user account.
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 │ ├── MicrosoftChannel.cs # Microsoft Graph API │ ├── KakaoTalkChannel.cs # Kakao REST API │ └── DiscordChannel.cs # Discord Webhook API ├── Tools/ │ ├── ListChannelsTool.cs # list_channels │ ├── AddChannelTool.cs # add_channel (elicitation + browser OAuth for Kakao/Microsoft) │ ├── RemoveChannelTool.cs # remove_channel │ └── SendMessageTool.cs # send_message ├── Interaction/ │ ├── IElicitGate.cs # Minimal MCP elicitation surface for tests │ └── McpServerElicitGate.cs # Production adapter around McpServer ├── OAuth/ │ └── BrowserOAuthFlow.cs # Localhost callback + Process.Start + elicit race (MCP and CLI entry points) ├── Credentials/ │ └── OutboxSecretResolver.cs # cache → env → channels.json → elicitation ├── Setup/ │ ├── SetupRunner.cs # CLI router (diagnostic path) │ ├── ConsoleHelper.cs # Masked input, prompts │ ├── SlackSetup.cs │ ├── TelegramSetup.cs │ ├── SmtpSetup.cs │ ├── MicrosoftSetup.cs │ ├── KakaoTalkSetup.cs │ └── DiscordSetup.cs └── Configuration/ ├── ChannelStore.cs # channels.json persistence (metadata + static-secret fallback) ├── OAuthTokenStore.cs # tokens.json persistence (OAuth access/refresh, user-only file perms) └── SmtpPresets.cs # SMTP preset definitions
# Build
dotnet build
dotnet test
dotnet pack src/FieldCure.Mcp.Outbox -c Release
Part of the AssistStudio ecosystem.
MIT