本地MCP服务器

本地MCP服务器通过stdio传输暴露Discord、Microsoft To Do和Otter.ai的操作作为工具,无需HTTP服务器。

  • by danbmg
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 danbmg/Local-Host-Discord-MCP-server

使用说明

本地MCP服务器——Discord、微软待办事项和Otter.ai

本地 模型上下文协议 将Discord、Microsoft待办事项和Otter.ai操作作为工具公开的服务器 stdio传输 --不需要HTTP服务器。


全局架构

每个服务器都是由Claude Desktop(或Claude Code)启动的独立Python进程。Claude通过stdin/stdout发送JSON-RPC消息;服务器将它们转换为API调用。

Claude (Desktop / Code)
    │
    ├─► mcp_discord/server.py  ──►  Bot "Claude_MCP"  ──►  Discord
    │
    ├─► mcp_todo/server.py     ──►  Microsoft Graph API  ──►  Microsoft To Do
    │
    └─► mcp-otter/run_otter.py ──►  Otter.ai API  ──►  Meeting transcripts

没有打开网络端口。每台服务器的寿命只与其父级Claude会话的寿命一样长。


mcp_dunch--discord工具

工具

工具 说明
send_message 向频道发送短信
read_messages 从频道获取最近的消息
list_channels 列出公会/服务器中的所有频道
add_reaction 在消息中添加表情符号反应

需求

  • Python 3.11+
  • 不和 机器人令牌 具有以下权限:
    • Read Messages / View Channels
    • Send Messages
    • Add Reactions
    • Read Message History
  • 机器人必须被邀请到你的服务器(公会)。
  • 消息内容意图 必须在Discord开发者门户(Bot)中启用→ 特权网关意图)。

设置

1.创建虚拟环境并安装依赖项

cd mcp_discord

:: Find the uv-managed Python (adjust path if different)
set PY=C:\Users\%USERNAME%\AppData\Roaming\uv\python\cpython-3.14.3-windows-x86_64-none\python.exe
%PY% -m venv .venv

.venv\Scripts\activate
pip install -r requirements.txt

2.配置凭据 --编辑 mcp_discord/.env:

DISCORD_TOKEN=your-bot-token-here
DISCORD_GUILD_ID=your-guild-id-here
  • 不一致标记 --Discord开发者门户→ 您的应用程序→ Bot → 令牌。
  • confirm_GUILD_ID --在Discord中右键单击服务器→ “复制服务器ID”(需要开发人员模式:设置→ 高级→ 开发者模式)。

3.烟雾测试

cd mcp_discord
.venv\Scripts\python.exe server.py

进程连接到Discord,然后在stdin上等待。按 Ctrl+C 停止。


mcp_todo——微软待办事项工具

工具

工具 说明
get_task_lists 返回已验证用户的所有任务列表
get_tasks 返回特定列表中的所有任务
create_task 创建新任务(可选截止日期)
complete_task 将任务标记为已完成

需求

  • Python 3.11+
  • 一 Azure应用程序注册 与:
    • 平台: 移动和桌面应用程序 (公共客户)
    • 委托的API权限: Tasks.ReadWrite (微软图形)
    • 重定向URI: https://login.microsoftonline.com/common/oauth2/nativeclient
  • TENANT_ID 留下 common 对于个人Microsoft帐户,或设置为工作/学校帐户的租户ID。

客户端密码 存储在 .env 仅供参考,但不用于设备流程 (这是一个公共客户端流)。它可以保持原样。

设置

1.创建虚拟环境并安装依赖项

cd mcp_todo

set PY=C:\Users\%USERNAME%\AppData\Roaming\uv\python\cpython-3.14.3-windows-x86_64-none\python.exe
%PY% -m venv .venv

.venv\Scripts\activate
pip install -r requirements.txt

2.配置凭据 --编辑 mcp_todo/.env:

CLIENT_ID=your-azure-app-client-id-here
CLIENT_SECRET=your-azure-app-client-secret-here
TENANT_ID=common

3.首次运行身份验证

在第一次启动时,服务器会打印一条设备流消息到 标准错误:

To sign in, use a web browser to open https://microsoft.com/devicelogin
and enter the code XXXXXXXX to authenticate.

打开URL,输入代码,使用您的Microsoft帐户登录,授予 Tasks.ReadWrite 许可。令牌保存到 mcp_todo/token_cache.json 并在后续运行中自动刷新。

4.烟雾测试

cd mcp_todo
.venv\Scripts\python.exe server.py

mcp-otter-otter.ai转录工具

第三方MCP服务器 达伦·扎尔 (MIT许可证),在 mcp水獭/ 并用当地特产包裹 .env 装载机(run_otter.py)以匹配其他两个服务器使用的凭据模式。

工具

工具 说明
otter_search 在所有Otter成绩单中进行全文搜索
otter_list_transcripts 列出最近的成绩单和摘要
otter_get_transcript 获取特定成绩单的全文(带说话者标签)
otter_get_user 获取经过身份验证的Otter.ai帐户的信息

需求

  • Python 3.11+
  • 一 Otter.ai帐户 (电子邮件+密码)

设置

1.创建虚拟环境并安装

cd mcp-otter

set PY=C:\Users\%USERNAME%\AppData\Roaming\uv\python\cpython-3.14.3-windows-x86_64-none\python.exe
%PY% -m venv .venv

.venv\Scripts\activate
pip install -e .
pip install python-dotenv

2.配置凭据 --创建 mcp-otter/.env:

OTTER_EMAIL=your@email.com
OTTER_PASSWORD=your-otter-password

3.烟雾测试

cd mcp-otter
.venv\Scripts\python.exe run_otter.py

有关底层服务器的更多详细信息(可用工具、示例查询、 advanced_search API工作)参见 mcp-otter/README.md.


连接到克劳德桌面

打开配置文件:

  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

两台服务器同时运行

{
  "mcpServers": {
    "discord": {
      "command": "C:\\delivery\\Local-Host-Discord-MCP-server\\mcp_discord\\.venv\\Scripts\\python.exe",
      "args": ["C:\\delivery\\Local-Host-Discord-MCP-server\\mcp_discord\\server.py"]
    },
    "todo": {
      "command": "C:\\delivery\\Local-Host-Discord-MCP-server\\mcp_todo\\.venv\\Scripts\\python.exe",
      "args": ["C:\\delivery\\Local-Host-Discord-MCP-server\\mcp_todo\\server.py"]
    },
    "otter": {
      "command": "C:\\delivery\\Local-Host-Discord-MCP-server\\mcp-otter\\.venv\\Scripts\\python.exe",
      "args": ["C:\\delivery\\Local-Host-Discord-MCP-server\\mcp-otter\\run_otter.py"]
    }
  }
}

如果您的仓库位于不同的位置,请调整路径,然后 重新启动克劳德桌面。两组工具都将出现在工具选择器中。


连接到克劳德代码(CLI)

claude mcp add discord \
  --command "C:/delivery/Local-Host-Discord-MCP-server/mcp_discord/.venv/Scripts/python.exe" \
  --args "C:/delivery/Local-Host-Discord-MCP-server/mcp_discord/server.py"

claude mcp add todo \
  --command "C:/delivery/Local-Host-Discord-MCP-server/mcp_todo/.venv/Scripts/python.exe" \
  --args "C:/delivery/Local-Host-Discord-MCP-server/mcp_todo/server.py"

claude mcp add otter \
  --command "C:/delivery/Local-Host-Discord-MCP-server/mcp-otter/.venv/Scripts/python.exe" \
  --args "C:/delivery/Local-Host-Discord-MCP-server/mcp-otter/run_otter.py"

项目结构

Local-Host-Discord-MCP-server/
├── mcp_discord/
│   ├── server.py          # MCP server — Discord tool definitions and handlers
│   ├── discord_client.py  # discord.py wrapper with error handling
│   ├── .env               # DISCORD_TOKEN, DISCORD_GUILD_ID  (not committed)
│   └── requirements.txt
│
├── mcp_todo/
│   ├── server.py          # MCP server — To Do tool definitions and handlers
│   ├── todo_client.py     # Microsoft Graph API async wrapper
│   ├── auth.py            # MSAL device-flow + token cache management
│   ├── .env               # CLIENT_ID, CLIENT_SECRET, TENANT_ID  (not committed)
│   ├── token_cache.json   # Generated on first auth run  (not committed)
│   └── requirements.txt
│
└── mcp-otter/             # Vendored from https://github.com/DarrenZal/otter-mcp (MIT)
    ├── run_otter.py       # Local .env-loading wrapper around otter_mcp.main()
    ├── src/otter_mcp/     # Upstream server (search + transcript retrieval)
    ├── .env               # OTTER_EMAIL, OTTER_PASSWORD  (not committed)
    ├── pyproject.toml
    └── LICENSE            # MIT — Copyright (c) 2025 Darren Zal

故障排除

症状 修复
DISCORD_TOKEN is not set 填写 mcp_discord/.env
Missing permissions (不一致) 重新邀请具有所需权限的机器人
Message Content Intent errors 在Discord开发人员门户中启用意图
CLIENT_ID is not set 填写 mcp_todo/.env
设备流消息从未出现 检查stderr是否可见;Claude Desktop在日志中显示它
AADSTS 设备流期间出错 验证Azure应用程序是否具有 Tasks.ReadWrite 授权权限和正确的重定向URI
ModuleNotFoundError 快跑 pip install -r requirements.txt 在正确的内部 .venv
服务器立即退出 确保venv python.exe 配置中的路径正确
OTTER_EMAIL is not set 填写 mcp-otter/.env
Otter登录失败 直接在Otter.ai上检查电子邮件/密码是否有效;API是非官方的,可能会限制

学分