日程安排助手
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"schedule-mcp-server": {
"args": [
"schedule-mcp-server"
],
"command": "uvx",
"type": "stdio"
}
}
}
可用工具 (6 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
calculator 1 个参数 需填 1 项
For mathamatical calculation, always use this tool to calculate the result of a python expression. You can use 'math' or 'random' directly, without 'import'.
必填参数:python_expression
get_utf8_time
获取当前的时间(中国标准时间),精确到年、月、日、时、分、秒。
该工具无需必填参数,直接调用即可
add_schedule 6 个参数 需填 4 项
添加新的日程安排, 输入参数包括用户ID、角色名字、开始时间、活动描述、持续时间或结束时间,其中持续时间或结束时间必须提供其中一个. Args: user_id: 用户指定的用户ID名称, 当没有明确指定时为'测试员', 不能为空且优先取用户提示的用户ID名称, 不可以包含以下列表中任一元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 默认为'测试员'. role_name: 一位角色或多位角色名字,必须从以下列表中选出最接近的元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 当用户输入多个角色时用+连接,如'姐姐+妈妈'表示姐姐和妈妈同时参加. start_datetime: 日程开始时间,格式为 'YYYY-MM-DD HH:MM' activity: 日程活动简短描述, 如'舞蹈培训在索菲拉' duration: 日程持续时间(分钟),可选 end_datetime: 日程结束时间,格式为 'YYYY-MM-DD HH:MM',可选
必填参数:user_id、role_name、start_datetime、activity
query_schedule 9 个参数 需填 1 项
查询日程安排, 输入参数包括用户ID、角色名字、日程日期、日程年月、日程星期几、日程开始时间、日程结束时间、活动描述、日程持续时间,提供其中若干个信息,必须提供至少一个,用于查询日程安排。 Args: user_id: 用户指定的用户ID名称, 当没有明确指定时为'测试员', 不能为空且优先取用户提示的用户ID名称, 不可以包含以下列表中任一元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 默认为'测试员'. role_name: 一位角色或多位角色名字,如有必须从以下列表中选出最接近的元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 当用户输入多个角色时用+连接,如'姐姐+妈妈'表示姐姐和妈妈同时参加. 可选 date: 日程日期,格式为 'YYYY-MM-DD',可选 year_month: 日程年月,格式为 'YYYY-MM',可选 weekday: 日程星期几,格式为'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday',可选 start_datetime: 日程开始时间,格式为 'YYYY-MM-DD HH:MM',可选 end_datetime: 日程结束时间,格式为 'YYYY-MM-DD HH:MM',可选 activity: 日程活动简短描述, 如'舞蹈培训在索菲拉',可选 duration: 日程持续时间(分钟),可选
必填参数:user_id
update_schedule 6 个参数 需填 4 项
更新日程安排, 输入参数包括角色名字、活动描述、更新的日程开始时间、更新的日程结束时间、更新的日程持续时间,必须提供角色名字、活动描述、更新的日程开始时间, 其中更新的日程结束时间、更新的日程持续时间为可选输入,用于更新日程安排。 Args: user_id: 用户指定的用户ID名称, 当没有明确指定时为'测试员', 不能为空且优先取用户提示的用户ID名称, 不可以包含以下列表中任一元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 默认为'测试员'. role_name: 一位角色或多位角色名字,必须从以下列表中选出最接近的元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 当用户输入多个角色时用+连接,如'姐姐+妈妈'表示姐姐和妈妈同时参加. activity: 日程活动简短描述, 如'舞蹈培训' start_datetime_new: 更新的日程开始时间,格式为 'YYYY-MM-DD HH:MM' end_datetime_new: 更新的日程结束时间,格式为 'YYYY-MM-DD HH:MM',可选 duration_new: 更新的日程持续时间(分钟),可选
必填参数:user_id、role_name、activity、start_datetime_new
delete_schedule 4 个参数 需填 1 项
删除日程安排,输入参数包括角色名字、活动描述、特别指定一位需删除的角色名字,提供其中若干个信息,必须提供至少一个,用于删除日程安排。 Args: user_id: 用户指定的用户ID名称, 当没有明确指定时为'测试员', 不能为空且优先取用户提示的用户ID名称, 不可以包含以下列表中任一元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 默认为'测试员'. role_name: 一位角色或多位角色名字,如有必须从以下列表中选出最接近的元素:['姐姐','长公主','哥哥','大王子','弟弟','小王子','妹妹','小公主','妈妈','爸爸','奶奶', '爷爷'], 当用户输入多个角色时用+连接,如'姐姐+妈妈'表示姐姐和妈妈同时参加. 可选 activity: 日程活动简短描述, 如'舞蹈培训在索菲拉',可选 specific_role_name: 特别指定一位需删除的角色名字,用于从日程表role_name字段的多位角色中删除这一位角色,可选
必填参数:user_id
服务介绍
schedule-mcp-server
概述
schedule-mcp-server 是一个用于调度和管理多云平台(MCP)任务的服务器。它支持多种云服务提供商,并提供了灵活的任务调度功能。
安装
依赖
确保你的系统已经安装了以下依赖:
- Java 8 或更高版本
- Maven 3.5 或更高版本
构建
从项目的根目录运行以下命令来构建项目:
bash
mvn clean install
配置
在 src/main/resources/application.properties 文件中配置以下参数:
properties
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mcp?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
启动
使用以下命令启动服务器:
bash
java -jar target/schedule-mcp-server.jar
使用
创建任务
要创建一个新的任务,可以发送一个 POST 请求到 /tasks 端点。请求体应包含任务的详细信息。
请求示例:
json
{
"name": "example-task",
"cloudProvider": "AWS",
"cronExpression": "0 0 * * * ?"
}
响应示例:
json
{
"id": "12345",
"name": "example-task",
"cloudProvider": "AWS",
"cronExpression": "0 0 * * * ?",
"status": "SCHEDULED"
}
查询任务
要查询所有任务的状态,可以发送一个 GET 请求到 /tasks 端点。
请求示例:
bash
curl http://localhost:8080/tasks
响应示例:
json
[
{
"id": "12345",
"name": "example-task",
"cloudProvider": "AWS",
"cronExpression": "0 0 * * * ?",
"status": "SCHEDULED"
}
]
更新任务
要更新现有任务,可以发送一个 PUT 请求到 /tasks/{taskId} 端点。请求体应包含更新后的任务信息。
请求示例:
json
{
"name": "updated-example-task",
"cloudProvider": "GCP",
"cronExpression": "0 0 12 * * ?"
}
响应示例:
json
{
"id": "12345",
"name": "updated-example-task",
"cloudProvider": "GCP",
"cronExpression": "0 0 12 * * ?",
"status": "SCHEDULED"
}
删除任务
要删除一个任务,可以发送一个 DELETE 请求到 /tasks/{taskId} 端点。
请求示例:
bash
curl -X DELETE http://localhost:8080/tasks/12345
响应示例:
json
{
"message": "Task with ID 12345 has been deleted."
}
文档
更多详细的文档可以在 这里 找到。
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。