hundsun-meetingroom-book
v1.0.0
Published
会议室预订 mcp server
Readme
恒生会议室预订 MCP 服务
这是一个基于 Model Context Protocol (MCP) 的恒生会议室预订系统服务端实现,提供与 mr.hundsun.com 系统对接的能力,可用于会议室查询、预订和管理。
服务概述
本服务封装了恒生内部会议室预订系统的 API,通过 MCP 协议提供标准化的工具接口,支持 AI 助手等应用直接调用会议室预订相关功能。
服务基于 @modelcontextprotocol/sdk 实现,使用 StdioServerTransport 提供标准输入输出通信能力。
工具功能
服务提供以下工具函数:
1. 获取办公地点列表 (getAllBuildings)
获取恒生所有的办公地点列表。
参数: 无需参数
返回: 办公地点数组,每个元素包含 buildingId 和 locationName
使用场景:
- 用户首次进入预订页面,需要选择办公地点
- 提供办公地点选择下拉菜单的数据源
2. 获取上次预订信息 (getLastBookingInfo)
查询用户上一次预订的地点及相关楼层和设备信息。
参数: 无需参数
返回: 包含上次预订详细信息的对象,包括会议室信息、办公地点信息等
使用场景:
- 便捷地重新预订与上次相同或相似条件的会议室
- 快速查看上次预订的详情
3. 查询办公地点会议室列表 (getBuildingSpaces)
查询指定办公地点的所有会议室列表,无论会议室当前是否可用。
参数:
- buildingId: 办公地点ID (必填,如:1001)
返回: 会议室数组,包含详细信息(ID、名称、楼层、设备、容量等)
使用场景:
- 在用户选择办公地点后,列出该地点的所有会议室
- 获取完整的会议室清单用于展示或管理界面
4. 查找可用会议室 (findAvailableSpaces)
根据指定条件查询特定时间段内可用的会议室列表。
参数:
- buildingId: 办公地点ID (必填)
- floorId: 楼层ID (可选)
- startTime: 开始时间 (可选,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-08 08:00:00)
- endTime: 结束时间 (可选,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-08 10:00:00)
- minCapacity: 最小容纳人数 (可选)
- maxCapacity: 最大容纳人数 (可选)
- name: 会议室名称关键词 (可选)
返回: 符合条件的会议室信息数组,包含可预订状态标记
使用场景:
- 用户需要在特定时间段查找可用会议室
- 根据容量、楼层等条件筛选会议室
5. 获取会议室时间线 (getSpaceTimeline)
查询指定一个或多个会议室在特定时间段内的详细预订占用情况。
参数:
- spaceIdList: 会议室ID列表 (必填)
- startTime: 开始时间 (必填,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-08 08:00:00)
- endTime: 结束时间 (必填,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-09 08:00:00)
- isShowAppt: 是否显示预订详情 (可选,默认true)
返回: 会议室占用时间线信息数组
使用场景:
- 展示会议室一天或一周的预订情况时间表
- 可视化会议室时间占用情况
- 查找特定会议室的可用时间段
6. 预订会议室 (bookMeeting)
预订一个或多个会议室,并设置会议信息。
参数:
- title: 会议主题 (必填)
- spaceIdList: 要预订的会议室ID列表 (必填)
- startTime: 开始时间 (必填,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-08 08:00:00)
- endTime: 结束时间 (必填,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-08 10:00:00)
- content: 会议内容 (可选)
- invitees: 邀请人列表 (可选)
- inviteeNum: 参会人数 (可选)
- isSendEmail: 是否发送邮件通知 (可选,默认false)
返回: 预订结果,成功时返回预订的详细信息
使用场景:
- 用户提交会议室预订申请
- 自动化系统定期预订会议室
7. 获取我的会议 (getMyMeetings)
查询当前用户在指定时间段内预订的会议列表。
参数:
- startTime: 查询开始时间 (可选,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-06 00:00:00,不传则默认为本周一零点)
- endTime: 查询结束时间 (可选,格式为YYYY-MM-DD HH:MM:SS,如:2024-05-12 23:59:59,不传则默认为本周日结束时间)
返回: 用户在指定时间段内的所有会议预订数组
使用场景:
- 展示用户的会议日程表
- 用户查看自己已预订的会议
- 管理和取消现有预订
8. 取消会议 (cancelMeeting)
取消一个已预订的会议。
参数:
- meetingId: 要取消的会议ID (必填,UUID格式)
- isSendEmail: 是否发送邮件通知 (可选,默认false)
返回: 取消操作结果,成功时返回true
使用场景:
- 用户需要取消已预订的会议
- 更改会议时间需要先取消再重新预订
9. 获取当前时间 (getCurrentTime)
获取当前服务器时间,返回中国东八区(UTC+8)的时间信息。
参数: 无需参数
返回: 包含时间戳、格式化时间字符串和时区信息的对象
使用场景:
- 确保客户端与服务器时间同步
- 获取标准时间用于预订操作
- 展示当前时间给用户
使用示例
通过 MCP 协议可以轻松调用这些工具,例如查询会议室并进行预订:
- 获取办公地点列表
- 根据特定条件查找可用会议室
- 选择合适的会议室后进行预订
- 查看个人预订的会议并管理
注意事项
- 服务需要有效的认证信息才能正常工作
- 所有时间参数均使用 YYYY-MM-DD HH:MM:SS 格式的字符串(24小时制)
- 内部会自动将时间字符串转换为毫秒级时间戳进行API调用
- 预订操作可能会受到权限和会议室可用性的限制
