FastMCP演示:日程计划MCP服务器
全面演示如何 FastMCP 可以将Python包转换为功能齐全的模型上下文协议(MCP)服务器。
概述
此演示通过自定义方式展示了FastMCP的强大功能 schedule_planner Python包,并通过MCP公开其功能。结果是一个生产就绪的服务器,人工智能助手可以使用它来管理个人日程、约会和时间管理任务。
主要演示功能:
- 完整的Python包→ MCP服务器转换
- 28个带有NumPy风格文档的MCP工具
- 2用于只读数据访问的资源
- 3常见工作流的交互式提示
- 具有状态持久性的多进度管理
- 已准备好进行VS代码集成
日程计划包
这 schedule_planner package是一个用于个人日程管理的模块化Python库,位于 example_code_base/.
包装特点
核心组件:
- 时间段:
Day,Week,Month,Year班级 - 时间管理:
Time和TimeRange用于精确调度 - 事件类型:六个使用继承的特殊事件类:
- Appointment -一般任命 - DoctorAppointment -专业领域的医疗访问 - WorkMeeting -有议程的专业会议 - Chore -具有重复支持的家务 - GymTime -带有锻炼跟踪功能的锻炼课程 - PersonalEvent -灵活的个人活动
- 进度管理:创建多个日程表、检测冲突、查找空闲时间
- 丰富的过滤:按类型、优先级、状态、标签和日期范围查询
事件属性
所有活动支持:
- 优先级:低、中、高、紧急
- 状态跟踪:已安排、正在进行、已完成、已取消、已重新安排
- 自定义标记:用于灵活分类
- 时间范围:具有冲突检测功能的精确开始/结束时间
MCP服务器
位于 FastMCP_Server/scheduler_server.py,此服务器使用FastMCP通过模型上下文协议公开schedule_planner包。
建筑
FastMCP Server
├── State Management (Global)
│ ├── Multiple schedules dictionary
│ └── Active schedule tracking
├── Parsing Layer
│ ├── Day/Month/Year parsing
│ └── Time/TimeRange creation
├── MCP Tools (28 functions)
│ ├── Schedule management (5)
│ ├── Event creation (6)
│ ├── Event queries (9)
│ └── Event modifications (8)
├── MCP Resources (2)
│ ├── schedule://active/summary
│ └── schedule://active/upcoming
└── MCP Prompts (3)
├── schedule_meeting_prompt
├── daily_schedule_review_prompt
└── weekly_planning_prompt服务器功能
- 零外部依赖:仅使用schedule_planner包
- 综合文档:所有工具上的NumPy样式文档字符串
- 类型安全:贯穿全文的完整类型提示
- 错误处理:正确的验证和有用的错误消息
- 有状态的:在内存中维护多个日程表
- 运输灵活:支持STDIO(默认)、HTTP和SSE模式
可用工具
服务器公开了28个按功能组织的工具:
进度管理(5个工具)
create_schedule-创建新的命名计划list_schedules-查看所有带有统计信息的日程安排set_active_schedule-在时间表之间切换delete_schedule-删除日程表clear_schedule-清除活动日程中的所有事件
事件创建(6个工具)
create_appointment-地点/与会者的一般预约create_doctor_appointment-带医生信息的医疗预约create_work_meeting-有议程/链接的专业会议create_chore-重复性家务create_gym_session-带有运动跟踪功能的锻炼create_personal_event-灵活的个人活动
事件查询(9个工具)
get_events_on_day-特定日期的事件get_events_in_date_range-两个日期之间的事件get_upcoming_events-未来有限制的事件get_events_by_type-按事件类型筛选get_events_by_priority-按优先级筛选get_events_by_status-按状态筛选get_events_by_tag-按自定义标签筛选check_conflicts-检查日程安排冲突get_free_time_slots-查找可用的时间段get_schedule_statistics-综合进度指标get_busiest_days-识别超载天数
事件修改(5个工具)
update_event_status-更改事件状态update_event_priority-调整优先级add_tags_to_event-添加自定义标签remove_tags_from_event-删除标签delete_event-删除事件
资源
服务器提供2个只读资源:
schedule://active/summary-带有统计信息的活动日程摘要schedule://active/upcoming-即将举行的活动的格式化列表
提示
常见工作流的3个交互式提示:
schedule_meeting_prompt-带冲突检查的交互式会议日程安排daily_schedule_review_prompt-全面的每日进度审查weekly_planning_prompt-每周计划和概述
安装和设置
先决条件
- Python 3.12+(推荐,最低3.9+)
- FastMCP库
再进行
# Create and activate virtual environment (optional but recommended)
python -m venv .venv3.12
source .venv3.12/bin/activate # On Linux/Mac
# .venv3.12\Scripts\activate # On Windows
# Install required packages
pip install -r FastMCP_Server/requirements.txt验证安装
python verify_server.py在VS代码中部署为STDIO
步骤1:配置VS代码设置
将服务器添加到VS Code MCP设置文件中:
地点: ~/.config/mcp_settings.json
{
"mcpServers": {
"schedule-planner": {
"command": "python",
"args": [
"/path/to/your/FastMCP_Server/scheduler_server.py"
],
"disabled": false
}
}
}步骤2:重新启动VS代码或重新加载MCP
添加配置后:
- 重新启动VS代码,或
- 使用命令面板(Ctrl+Shift+P)重新加载MCP服务器
步骤3:验证连接
你的人工智能助手现在应该可以访问日程计划工具了。用以下方法进行测试:
"Create a work meeting called 'Team Standup' for tomorrow at 9 AM for 30 minutes"那就试试
"Create me a chronjob shell script that runs after my first work meeting that echoes 'hello world'."您还可以尝试以下操作:
"When am I free tomorrow for at least 2 hours?"
"Do I have any conflicts in my schedule?"
"Show me my schedule statistics"测试
测试服务器功能:
# Run comprehensive tests
python FastMCP_Server/test_server.py
# Quick verification
python verify_server.py项目结构
FastMCP_demo/
├── README.md # This file
├── QUICK_REFERENCE.md # Quick command reference
├── verify_server.py # Server verification script
│
├── example_code_base/ # Schedule Planner Package
│ ├── README_LIBRARY.md # Package documentation
│ ├── example_usage.py # Package usage examples
│ └── schedule_planner/
│ ├── __init__.py
│ ├── events.py # Event classes
│ ├── schedule.py # Schedule management
│ ├── time_of_day.py # Time handling
│ └── time_periods.py # Date handling
│
└── FastMCP_Server/ # MCP Server
├── README.md # Server documentation
├── requirements.txt # Python dependencies
├── scheduler_server.py # Main MCP server
├── test_server.py # Server tests
├── example_client.py # Client usage example
└── fastmcp.json # FastMCP config内置 FastMCP -用Python构建MCP服务器的最快方法。
