使用说明
质子微控制器
MCP服务器,使LLM工具(包括Claude Desktop和LM Studio)能够通过Proton Bridge访问您的Proton Mail日历和电子邮件。
设置
1.克隆并安装
git clone https://github.com/YOUR_USERNAME/proton-mcp.git
cd proton-mcp
npm install
npm run build
2.获取您的Proton日历网址
在Proton日历中,转到 设置→ 其他日历→ 查看链接 对于您要公开的每个日历。每个URL都是一个秘密的ICS下载链接——把它当作密码。
3.安装和配置质子桥(用于电子邮件)
质子桥 是一个本地代理,通过标准IMAP和SMTP公开您的Proton Mail帐户。每当MCP服务器需要读取或发送电子邮件时,它都必须运行。
安装并登录Proton Bridge后,在Bridge应用程序中的以下位置找到IMAP凭据 设置→ 邮箱配置。您需要:
- IMAP用户名 --您的完整Proton邮件地址(例如。
you@proton.me) - IMAP密码 --Bridge生成的密码(与您的Proton帐户密码不同)
大桥在当地运行 127.0.0.1:1143 (IMAP)和 127.0.0.1:1025 默认情况下为(SMTP);这些已经是MCP服务器的默认设置。
4.配置克劳德桌面
打开(或创建)您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%/Claude/claude_desktop_config.json
添加以下内容,替换路径、日历URL和网桥凭据:
{
"mcpServers": {
"proton-mcp": {
"command": "node",
"args": ["/Full/path/to/project/proton-mcp/dist/index.js"],
"env": {
"PROTON_CALENDARS": "[{\"name\":\"Family\",\"url\":\"https://calendar.proton.me/api/calendar/v1/url/...\"},{\"name\":\"Work\",\"url\":\"https://calendar.proton.me/api/calendar/v1/url/...\"}]",
"IMAP_USERNAME": "you@proton.me",
"IMAP_PASSWORD": "your-bridge-generated-password"
}
}
}
}
使用完整的绝对路径 dist/index.js 克隆仓库中的文件。
5.重新启动克劳德桌面
完全退出并重新启动Claude Desktop。这 proton-mcp 服务器将在启动时自动连接。
电子邮件配置参考
IMAP默认值是为Proton Bridge预先配置的。你只需要 IMAP_USERNAME 和 IMAP_PASSWORD 用于标准质子桥设置。所有其他设置都有工作默认值。
| 变量 | 默认值 | 描述 |
|---|---|---|
IMAP_USERNAME |
(必填) | 您的邮件帐户用户名/电子邮件地址 |
IMAP_PASSWORD |
(必填) | 您的密码(对于Proton Bridge:使用Bridge生成的密码,而不是您的Proton帐户密码) |
IMAP_HOST |
127.0.0.1 |
IMAP服务器主机名 |
IMAP_PORT |
1143 |
IMAP服务器端口 |
IMAP_SECURITY |
STARTTLS |
连接安全: STARTTLS, TLS,或 NONE |
IMAP_REJECT_UNAUTHORIZED |
false |
设置为 true 强制执行TLS证书验证(Proton Bridge使用自签名的本地证书,因此必须保持 false 桥) |
SMTP配置(用于发送电子邮件)
默认情况下,SMTP使用与IMAP相同的凭据-- IMAP_USERNAME 和 IMAP_PASSWORD 是自动重用的,因此Proton Bridge不需要额外的配置。如果需要,您可以使用专用SMTP变量进行覆盖:
| 变量 | 默认值 | 描述 |
|---|---|---|
SMTP_USERNAME |
(回到 IMAP_USERNAME) |
SMTP用户名 |
SMTP_PASSWORD |
(回到 IMAP_PASSWORD) |
SMTP密码 |
SMTP_HOST |
127.0.0.1 |
SMTP服务器主机名 |
SMTP_PORT |
1025 |
SMTP服务器端口 |
SMTP_SECURITY |
STARTTLS |
连接安全: STARTTLS, TLS,或 NONE |
SMTP_REJECT_UNAUTHORIZED |
false |
设置为 true 强制执行TLS证书验证 |
与其他IMAP提供商一起使用
要连接到标准IMAP服务器而不是Proton Bridge,请覆盖默认值:
"env": {
"IMAP_USERNAME": "you@example.com",
"IMAP_PASSWORD": "your-password",
"IMAP_HOST": "imap.example.com",
"IMAP_PORT": "993",
"IMAP_SECURITY": "TLS",
"IMAP_REJECT_UNAUTHORIZED": "true"
}
通用提供程序设置:
| 提供程序 | 主机 | 端口 | 安全 |
|---|---|---|---|
| Gmail | imap.gmail.com |
993 |
TLS |
| Outlook/Hotmail | outlook.office365.com |
993 |
TLS |
| 快速邮件 | imap.fastmail.com |
993 |
TLS |
| 质子桥(当地) | 127.0.0.1 |
1143 |
STARTTLS (默认) |
使用LM Studio(Qwen3、Llama 3.3等)
无需对服务器进行任何更改——MCP与模型无关。LM Studio使用与Claude Desktop相同的配置格式,只是文件不同。
要求: LM Studio 0.3.17或更高版本。
1.选择支持工具调用的型号
并非所有本地模型都能可靠地处理工具调用。这些工作得很好:
- Qwen3 (任何尺寸)——强烈支持工具调用,推荐
- Llama 3.3 70B --良好的工具调用支持
在继续之前,请在LM Studio中下载您喜欢的模型。
2.编辑 mcp.json
打开LM Studio,转到 程序 在右侧边栏中的选项卡中,然后单击 编辑mcp.json.添加 proton-mcp 条目(相同 command/args/env 形状为Claude桌面配置):
{
"mcpServers": {
"proton-mcp": {
"command": "node",
"args": ["/Full/path/to/project/proton-mcp/dist/index.js"],
"env": {
"PROTON_CALENDARS": "[{\"name\":\"Family\",\"url\":\"https://calendar.proton.me/api/calendar/v1/url/...\"},{\"name\":\"Work\",\"url\":\"https://calendar.proton.me/api/calendar/v1/url/...\"}]",
"IMAP_USERNAME": "you@proton.me",
"IMAP_PASSWORD": "your-bridge-generated-password"
}
}
}
}
LM Studio自动重新加载 mcp.json 在拯救。该文件位于:
- macOS/Linux:
~/.lmstudio/mcp.json - 视窗:
%USERPROFILE%\.lmstudio\mcp.json
3.可靠调用工具的提示
- 设置模型 温度降至0.1 或更低——更高的值会导致工具调用JSON格式错误
- 集 上下文长度至少为4096
- LM Studio将在首次调用工具时显示确认对话框;你可以选择始终允许它
用法
日历
问这样的问题:
- “我有什么日历?”
- “本周我的工作日历上有什么?”
- “显示未来两周的所有家庭活动”
电子邮件
问这样的问题:
- “我今天收到了哪些电子邮件?”
- “显示收件箱中的未读邮件”
- “查找来自的电子邮件alice@example.com本周”
- “阅读最后一封电子邮件的全部内容”
- “发送电子邮件至bob@example.com主题为“你好”
- “将该电子邮件移动到我的存档文件夹”
- “删除该消息”
工具参考
list_calendars / get_events (通过 calendar 工具)
| 操作 | 必需参数 | 可选参数 |
|---|---|---|
list_calendars |
— | — |
get_events |
calendar_name |
start_date, end_date (ISO 8601) |
read_mail
| 操作 | 必需参数 | 可选参数 |
|---|---|---|
list_folders |
— | — |
list_messages |
— | folder, since, before, from, subject, unread_only, limit |
get_message |
uid |
folder, include_body |
send_mail
| 参数 | 必填 | 描述 |
|---|---|---|
to |
yes | 收件人,逗号分隔 |
subject |
是 | 主题行 |
body |
是 | 纯文本正文 |
cc |
没有 | CC收件人 |
bcc |
没有 | BCC收件人 |
reply_to |
否 | 回复地址 |
move_mail
| 参数 | 必填 | 描述 |
|---|---|---|
uid |
yes | 邮件的IMAP UID(使用 read_mail → list_messages 查找UID) |
destination |
yes | 目标文件夹路径(使用 read_mail → list_folders 查看选项) |
folder |
no | 源文件夹,默认为 INBOX |
delete_mail
永久删除邮件--此操作无法撤消。
| 参数 | 必填 | 描述 |
|---|---|---|
uid |
yes | 要删除的邮件的IMAP UID |
folder |
no | 包含邮件的文件夹,默认为 INBOX |
日历环境变量格式
选项1-JSON数组(推荐):
PROTON_CALENDARS='[{"name":"Family","url":"https://..."},{"name":"Work","url":"https://..."}]'
选项2——每个日历的单个变量:
CALENDAR_FAMILY_URL=https://...
CALENDAR_WORK_URL=https://...
对于选项2 CALENDAR_<NAME>_URL 变量是自动发现的 NAME 用作日历名称(下划线转换为空格)。