DiSH MCP服务器
DiSH房间预订网站的模型上下文协议(MCP)服务器。它提供了检查可用性、预订房间和取消预订的工具,以便Cursor或Claude等助理可以管理您的预订。
它能做什么
- 在您的DiSH地点搜索房间可用性
- 代表您创建预订
- 取消或重新安排现有预订
- 与日历工具配对(例如。, 谷歌日历MCP)将预订与您的日历可用性相协调。
示例提示:
- “为我本周的所有脱口秀预订会议室。”
- “把我和约翰的1比1重新安排到明天下午,那时我们都有空,房间也有空。”
- “为我未来两个月的所有客户演示预订一个会议室。”
需求
- Python 3.10+
uv用于依赖关系管理
设置
uv sync配置
必修的:
TEAM_ID--您的DiSH团队IDMEMBER_ID--您的DiSH会员ID
身份验证:
DISH_COOKIE--你的DiSHconnect.sid会话cookieDISH_EMAIL--可选,当cookie丢失或过期时启用非交互式登录DISH_PASSWORD--可选,当cookie丢失或过期时启用非交互式登录
可选传输配置(用于HTTP模式):
MCP_TRANSPORT—stdio(默认)或httpMCP_PORT--HTTP传输端口(默认值:8000)MCP_HOST--HTTP传输主机(默认:127.0.0.1)
非交互式cookie刷新
如果你想让克劳德继续工作 connect.sid 过期时,将这些值放入 .env:
TEAM_ID=
MEMBER_ID=
DISH_EMAIL=you@example.com
DISH_PASSWORD=使用该设置:
- MCP将创建
DISH_COOKIE如果丢失,则自动执行。 - 如果API返回
401或403,MCP将再次无头登录,更新DISH_COOKIE在.env,然后重试一次请求。 TEAM_ID和MEMBER_ID保持稳定.env;只有会话cookie会轮换。
这仅在您的DiSH帐户支持直接电子邮件/密码登录时有效。如果您的登录通过谷歌、微软或其他SSO流,则此存储库中没有静默刷新路径,您将需要下面的基于浏览器的流。
自动凭证检索(手动浏览器流)
获取凭据的最简单方法是使用附带的脚本:
# Install Playwright browser (first time only)
uv run playwright install chromium
# Run the credential retrieval script
uv run src/get_credentials.py这将:
- 打开浏览器窗口登录DiSH
- 自动检测您何时到达仪表板
- 捕获您的cookie、团队ID和成员ID
- 将它们保存到您的
.env文件
手动凭证检索
如果自动方法不起作用,您可以手动检索凭据:
获取您的 connect.sid 曲奇
- 在浏览器中登录DiSH。
- 打开开发人员工具(F12/Cmd+选项+I)。
- 在应用程序/存储>Cookie中,选择DiSH域。
- 复制
connect.sid值(看起来像s%3A...). - 在你的
.env文件,集DISH_COOKIE到connect.sid=.
获取您的团队和成员ID
- 在浏览器中登录DiSH。
- 打开开发人员工具(F12/Cmd+选项+I)。
- 在“网络”选项卡中,找到一个请求
occurrences(或booking-policy). - 在请求URL或有效载荷中,查找
team和member价值观。 - 在你的
.env文件,集TEAM_ID和MEMBER_ID到各自的值。
保守这个秘密。 不要提交Cookie、团队ID、成员ID或 .env 文件到源代码管理。如果cookie停止工作或曾经暴露,请重新生成cookie。
运行MCP服务器
stdio传输(默认)
与Cursor或Claude Desktop一起使用:
uv run fastmcp run src/mcp_server.pyHTTP传输
对于远程访问或基于web的客户端:
# Default: http://127.0.0.1:8000
uv run python src/mcp_server.py --transport http
# Custom port and host
uv run python src/mcp_server.py --transport http --port 3000 --host 0.0.0.0或者使用环境变量:
MCP_TRANSPORT=http MCP_PORT=8000 uv run python src/mcp_server.pyHTTP服务器在以下位置公开SSE端点 http://: /sse.
配置您的客户端
光标
"Dish MCP": {
"command": "
/bin/fastmcp",
"args": ["run", "
/src/mcp_server.py"],
"cwd": "
",
"transport": "stdio"
}克劳德桌面
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"Dish MCP": {
"command": "
/bin/fastmcp",
"args": ["run", "
/src/mcp_server.py"],
"cwd": "
"
}
}
}服务器从以下位置加载身份验证值 .env 自动。保持 .env 作为真理的源泉 DISH_COOKIE, TEAM_ID, MEMBER_ID, DISH_EMAIL,以及 DISH_PASSWORD 而不是在Claude配置中硬编码这些值。
