Token导航 LogoToken导航TokenDH.com
nextcloud calendar todo MCP logo
日程管理stdio官方级别未说明来源级核验

nextcloud calendar todo MCP

MCP Server

一个MCP服务器,允许通过CalDAV在Nextcloud中创建日历事件和任务。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
日程管理PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

eragooon

提供方

eragooon

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv /root/calendar_todo_mcp/venv

详细介绍

Nextcloud CalDAV MCP服务器

MCP(模型上下文协议)服务器,允许Claude通过CalDAV在Nextcloud中创建日历事件和任务。

暴露的工具:

工具说明
create_event写a VEVENT 进入Nextcloud日历
create_todo写a VTODO 进入Nextcloud任务

堆栈: Python 3· mcp SDK 1.x· caldav ·uvicorn·尾鳞片漏斗(HTTPS)

______________________________________________________________________

先决条件

在Proxmox主机(Debian/Ubuntu)上安装:

apt update
apt install -y python3 python3-venv python3-pip git

不需要nginx,也不需要certbot——Tailscale会自动处理TLS。

______________________________________________________________________

1--部署服务器文件

# Files already live in /root/calendar_todo_mcp
# Copy the service file to systemd
mkdir -p /root/calendar_todo_mcp
cp server.py requirements.txt calendar_todo_mcp.service /root/calendar_todo_mcp/

______________________________________________________________________

2-Python虚拟环境

python3 -m venv /root/calendar_todo_mcp/venv
/root/calendar_todo_mcp/venv/bin/pip install --upgrade pip
/root/calendar_todo_mcp/venv/bin/pip install -r /root/calendar_todo_mcp/requirements.txt

______________________________________________________________________

3--配置 .env

cp /root/calendar_todo_mcp/.env.example /root/calendar_todo_mcp/.env
nano /root/calendar_todo_mcp/.env       # or your preferred editor
chmod 600 /root/calendar_todo_mcp/.env

需要填写的值:

变量示例注释
NEXTCLOUD_URLhttps://cloud.example.com无尾随斜线
NEXTCLOUD_USERyouruser您的登录用户名
NEXTCLOUD_APP_PASSWORDxxxx-xxxx-xxxx请参阅下面的步骤
CALENDAR_NAMEPersonalNextcloud日历中的确切显示名称
TASKS_CALENDAR_NAMETasksNextcloud任务中的确切显示名称
OAUTH_CLIENT_IDcalendar-todo-client您选择的任何标识符
OAUTH_CLIENT_SECRET*(生成)*快跑 python3 -c "import secrets; print(secrets.token_urlsafe(32))"
RESOURCE_SERVER_URLhttps://mymachine.tail-abc123.ts.net您的Tailscale漏斗URL(见步骤4)

创建Nextcloud应用程序密码

  1. 登录Nextcloud→ 设置安全
  2. 滚动到 应用密码 → 输入名称(例如。 mcp-server) → click 生成新的应用程序密码
  3. 将密码复制到 NEXTCLOUD_APP_PASSWORD

______________________________________________________________________

4 — 设置尾部缩放

安装Tailscale

curl -fsSL https://tailscale.com/install.sh | sh
tailscale up

当链接出现时,请在浏览器中使用您的Tailscale帐户登录。

在 Tailscale 控制台中启用 MagicDNS 和 HTTPS

  1. 打开 登录.tailscale.com/admin/dns
  2. 魔法。 激活
  3. HTTPS证书 激活

启用漏斗(通过HTTPS公开访问)

Tailscale Funnel 可通过公共 Internet 访问服务器 — Claude.ai (Cloud) 需要访问 MCP 服务器。

随附的 tailscale_funnel.service 启动时自动启动漏斗(参见步骤5)。提前测试:

tailscale funnel 8000

然后确定您的服务器的URL:

tailscale funnel status
# Ausgabe z.B.: https://mymachine.tail-abc123.ts.net/ proxies to http://127.0.0.1:8000

此HTTPS主机名(例如: https://mymachine.tail-abc123.ts.net)als RESOURCE_SERVER_URL 在模具中 .env 注册 。

只在Tailnet(没有公共访问)? 如果 Claude Desktop 在同一台设备上运行, 足够 tailscale serve 8000 而非 funnel.

______________________________________________________________________

5--安装并启动systemd服务

两个服务文件都需要复制和启用:MCP服务器和Tailscale漏斗。

# MCP server
cp /root/calendar_todo_mcp/calendar_todo_mcp.service \
   /etc/systemd/system/calendar-todo-mcp.service

# Tailscale Funnel (keeps the funnel running across reboots)
cp /root/calendar_todo_mcp/tailscale_funnel.service \
   /etc/systemd/system/tailscale-funnel-mcp.service

systemctl daemon-reload
systemctl enable --now calendar-todo-mcp
systemctl enable --now tailscale-funnel-mcp

# Verify both are running
systemctl status calendar-todo-mcp
systemctl status tailscale-funnel-mcp
journalctl -u calendar-todo-mcp -f

______________________________________________________________________

6--烟雾测试

替换 mymachine.tail-abc123.ts.net 使用您的实际Tailscale URL:

# OAuth-Metadaten-Endpoint — sollte JSON mit issuer/scopes zurückgeben
curl https://mymachine.tail-abc123.ts.net/.well-known/oauth-protected-resource \
  | python3 -m json.tool

# MCP-Endpoint ohne Token — sollte 401 zurückgeben
curl -s -o /dev/null -w "%{http_code}" \
     https://mymachine.tail-abc123.ts.net/mcp

______________________________________________________________________

7--连接克劳德

在 Claude.ai 中的 MCP 服务器或 claude_desktop_config.json 注册:

{
  "mcpServers": {
    "calendar-todo": {
      "url": "https://mymachine.tail-abc123.ts.net/mcp"
    }
  }
}

Claude 在第一次连接时自动启动 OAuth 流(浏览器重定向)。之后,不需要进一步配置。

Claude可以这样说:

*“3点给我找牙医。4月10点45分钟“* *提醒:打电话给银行,明天到期*

______________________________________________________________________

运营

# View live logs
journalctl -u calendar-todo-mcp -f

# Restart after config changes
systemctl restart calendar-todo-mcp

# Stop / disable
systemctl stop calendar-todo-mcp
systemctl disable calendar-todo-mcp

______________________________________________________________________

故障排除

问题检查什么
401 UnauthorizedOAuth 流程尚未完成 — 重新连接 Claude 并在浏览器中确认授权
Calendar 'X' not foundThe CALENDAR_NAME / TASKS_CALENDAR_NAME 必须匹配 确切的显示名称 Nextcloud
CalDAV 401应用程序密码输入正确吗?用户是否启用了CalDAV访问?
Connection refused服务是否正在运行? systemctl status calendar-todo-mcp
尾秤 502 Bad GatewayMCP服务器未运行或错误 PORT.env
Funnel 没有回应。 tailscale funnel status 检查;的ggf。 tailscale funnel 8000 再次执行
Tailscale HTTPS 无法运行Tailscale 管理控制台中启用 MagicDNS 和 HTTPS 证书?

目录标签

目录标签

日程管理PythonClaude日历管理本地部署任务管理Nextcloud集成CalDAV协议自动化工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP