Google Calendar MCP Server

by amornpan
Verified
# Google Calendar MCP Server - คู่มือการติดตั้งและการใช้งาน ## 📘 ภาพรวม Model Context Protocol (MCP) server ที่ให้บริการเข้าถึง Google Calendar API พร้อมรองรับการทำงานแบบ asynchronous operations ช่วยให้การจัดการปฏิทินมีประสิทธิภาพผ่านอินเตอร์เฟซที่เป็นมาตรฐาน ## 🚀 คุณสมบัติหลัก - เชื่อมต่อกับ Google Calendar API แบบไร้รอยต่อ - รองรับการทำงานแบบ asynchronous สำหรับประสิทธิภาพสูงสุด - ระบบ authentication แบบ OAuth 2.0 พร้อมการต่ออายุโทเค็นอัตโนมัติ - การจัดการข้อผิดพลาดและการล็อกแบบครอบคลุม - อินเทอร์เฟซ MCP ที่เรียบง่ายสำหรับการใช้งานกับ Claude และ AI อื่นๆ ## 🔑 เครื่องมือ API | เครื่องมือ | คำอธิบาย | |------------|----------| | **list** | ดึงรายการกิจกรรมในปฏิทิน (2 ปีย้อนหลังถึง 1 ปีล่วงหน้า) | | **create-event** | สร้างกิจกรรมใหม่ในปฏิทิน | | **delete-duplicates** | ลบกิจกรรมที่ซ้ำกัน | | **delete-event** | ลบกิจกรรมที่ระบุ | ## 🛠️ การติดตั้ง ### สิ่งที่ต้องมีก่อน - Python 3.9 หรือสูงกว่า - การเชื่อมต่ออินเทอร์เน็ต - โปรเจกต์ Google Cloud Console ที่มี Google Calendar API เปิดใช้งาน ### ขั้นตอนการติดตั้ง 1. **โคลนโปรเจกต์** ```bash git clone https://github.com/yourusername/GCalendar.git cd GCalendar ``` 2. **สร้างสภาพแวดล้อมเสมือน (วิธีที่แนะนำ)** ```bash python -m venv gcalendar_venv # สำหรับ Windows gcalendar_venv\Scripts\activate # สำหรับ macOS/Linux source gcalendar_venv/bin/activate ``` 3. **ติดตั้งแพ็คเกจที่จำเป็น** ```bash pip install -r requirements.txt ``` 4. **เตรียมโฟลเดอร์ที่จำเป็น** ```bash mkdir -p credentials logs ``` ### การตั้งค่า Authentication 1. **สร้างโปรเจกต์ Google Cloud Console** - ไปที่ [Google Cloud Console](https://console.cloud.google.com/) - สร้างโปรเจกต์ใหม่ - เปิดใช้งาน Google Calendar API - สร้าง OAuth 2.0 Client ID - ดาวน์โหลด credentials.json ไปที่โฟลเดอร์ credentials/ 2. **สร้างโทเค็น** ```bash python src/create_token.py ``` - ทำตามขั้นตอนในเบราว์เซอร์เพื่อให้สิทธิ์การเข้าถึง - โทเค็นจะถูกบันทึกในโฟลเดอร์ credentials/ เป็น token.json ## ⚙️ การกำหนดค่าเทคนิค ### การกำหนดค่า MCP Server เพิ่มในไฟล์ `claude_desktop_config.json`: ```json { "mcpServers": { "gcalendar": { "command": "YOUR_PYTHON_PATH", "args": [ "YOUR_PATH/GCalendar/src/mcp_server.py" ] } } } ``` แทนที่ตัวยึดตำแหน่ง: - `YOUR_PYTHON_PATH`: พาธไปยัง Python interpreter (จาก venv หรือ conda) - `YOUR_PATH`: พาธเต็มไปยังโฟลเดอร์ที่โคลน ### โครงสร้างโปรเจกต์ ``` GCalendar/ ├── credentials/ │ ├── credentials.json # จาก Google Cloud Console │ └── token.json # สร้างโดย create_token.py ├── logs/ │ └── calendar_service.log ├── src/ │ ├── calendar_service.py # การดำเนินการปฏิทินหลัก │ ├── create_token.py # การสร้างโทเค็น │ ├── list_past_events.py # ยูทิลิตี้การแสดงรายการกิจกรรม │ ├── mcp_client.py # การใช้งาน MCP client │ ├── mcp_server.py # การใช้งานเซิร์ฟเวอร์หลัก │ └── renew_token.py # ยูทิลิตี้การต่ออายุโทเค็น ├── requirements.txt └── README.md ``` ## 📋 การใช้งาน ### การเริ่มใช้งานเซิร์ฟเวอร์ 1. **เริ่มเซิร์ฟเวอร์ด้วยตนเอง** ```bash python src/mcp_server.py ``` 2. **การใช้งานกับ Claude Desktop** - กำหนดค่าตามที่อธิบายในส่วนการกำหนดค่าข้างต้น - Claude จะเริ่มใช้งานเซิร์ฟเวอร์โดยอัตโนมัติเมื่อจำเป็น ### ตัวอย่างคำสั่ง 1. **ดูรายการกิจกรรมในปฏิทิน** ``` แสดงกิจกรรมในปฏิทินของฉัน ``` 2. **สร้างกิจกรรมใหม่** ``` สร้างการประชุมชื่อ "ประชุมทีม" วันที่ 25 มีนาคม 2025 เวลา 14:00 น. ถึง 15:00 น. ``` 3. **ลบกิจกรรมที่ซ้ำกัน** ``` ลบกิจกรรม "ประชุมทีม" ที่ซ้ำกันในวันที่ 25 มีนาคม 2025 ``` ## 🔍 การแก้ไขปัญหา ### ปัญหาการรับรองความถูกต้อง 1. ตรวจสอบว่าไฟล์ credentials.json และ token.json อยู่ในโฟลเดอร์ credentials/ 2. ลบ token.json และสร้างใหม่โดยใช้ create_token.py ### ปัญหาเกี่ยวกับเขตเวลา 1. ตรวจสอบว่าไลบรารี timezone ถูกติดตั้งแล้ว: ```bash pip install pytz tzdata ``` ### การตรวจสอบล็อก 1. ดูไฟล์ล็อกเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด: ```bash cat logs/calendar_service.log ``` ## 📚 การพึ่งพา - google-auth-oauthlib==1.0.0 - google-auth-httplib2==0.1.0 - google-api-python-client==2.108.0 - aiohttp==3.8.5 - asyncio==3.4.3 - pytz==2023.3 - tzdata==2023.3 ## 📄 ใบอนุญาต โปรเจกต์นี้มีใบอนุญาตภายใต้ MIT License ดูไฟล์ LICENSE สำหรับรายละเอียด "# py-mcp-gcalendar"