Mycal
ใช้ทำอะไรได้
ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ
- ต่อแบบ ติดตั้งในเครื่อง
- บัญชีหรือคีย์ ไม่ต้องใส่คีย์
- หมวด เกม กีฬา อาหาร และการเรียน
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Malaysia public holidays, school terms, business days & a leave optimizer (13 tools).ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ · ✓ ตรวจคำสั่งแล้ว 13 พ.ย. 2569
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
ให้ AI ติดตั้งให้
คัดลอกข้อความนี้ไปวางในแชตของ Claude AI จะเช็กเครื่อง บอกว่าจะแก้ไฟล์ไหน และรอคุณตกลงก่อนทุกครั้ง
ช่วยติดตั้ง MCP server ชื่อ Mycal ให้ Claude ในเครื่องนี้ ทำตามลำดับ 1) เช็กว่ามี Node.js ด้วยคำสั่ง node -v ถ้าไม่มี ให้บอกฉันไปลงจาก https://nodejs.org/en/download ห้ามลงเอง 2) ใช้คอนฟิกนี้เท่านั้น (ผ่านตัวตรวจของ PopNx MCP แล้ว): { "mcpServers": { "mycal": { "command": "npx", "args": [ "-y", "@catlabtech/mycal-mcp-server" ] } } } 3) บอก path เต็มของไฟล์ที่จะแก้ หรือคำสั่งที่จะรัน แล้วรอฉันตกลงก่อน 4) ไม่ต้องใช้คีย์ 5) ทำตามที่ตกลง แล้วตรวจว่าเครื่องมือของ Mycal ขึ้นจริงข้อความนี้ไม่มีคีย์ของคุณ ถ้าต้องใช้คีย์ AI จะบอกให้คุณวางเองในไฟล์หรือช่องของแอป
ลง Node.js ในเครื่อง (ถ้ายังไม่มี)
ลงไว้แล้วหรือยัง? เช็กก่อน · เปิด Terminal แล้วพิมพ์คำสั่งนี้ กด Enter
node -v- ขึ้นเลขรุ่น เช่น v26.13.1 = ลงแล้ว ข้ามขั้นนี้ได้
- ขึ้นว่า "command not found" (Windows ขึ้นว่า "is not recognized") = ยังไม่ได้ลง หรือเพิ่งลงแต่ยังไม่ได้ปิดแล้วเปิด Terminal ใหม่
เปิด Terminal ยังไง
Mac: กด ⌘ + Space พิมพ์ Terminal แล้วกด Enter
Windows: เปิดเมนู Start พิมพ์ Windows PowerShell แล้วกด Open
ยังไม่ได้ลง: เปิดหน้าดาวน์โหลดทางการ เลือกรุ่น LTS แล้วเลือกตัวติดตั้งแบบกดเอง: Mac ไฟล์ .pkg · Windows ไฟล์ .msi ดับเบิลคลิกแล้วกดถัดไปจนจบ ไม่ต้องใช้คำสั่ง curl
ลงเสร็จแล้ว ปิด Terminal เปิดใหม่ แล้วพิมพ์คำสั่งเดิมอีกครั้ง ต้องขึ้นเลขรุ่น:
node -vลงครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js
เปิดไฟล์ตั้งค่าของแอป Claude บนคอม
SettingsDeveloperEdit Config
วางค่าตั้งนี้แล้วบันทึกไฟล์
{ "mcpServers": { "mycal": { "command": "npx", "args": [ "-y", "@catlabtech/mycal-mcp-server" ] } } }ปิดแอป Claude แล้วเปิดใหม่
ลองเลย
ใช้ Mycal บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ Mycal หรือมีชื่อเครื่องมือของ Mycal ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ Mycal ไม่ได้
Mycal ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ Mycal ได้
- ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
- ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
ข · ตัวอื่นในหมวด เกม กีฬา อาหาร และการเรียน ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
- ShipSwift✓ ChatGPT
- Anime Garden✓ ChatGPT
- Summer Engine✓ ChatGPT
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
ให้ AI ติดตั้งให้
คัดลอกข้อความนี้ไปวางในแชตของ Claude Code AI จะเช็กเครื่อง บอกว่าจะแก้ไฟล์ไหน และรอคุณตกลงก่อนทุกครั้ง
ช่วยติดตั้ง MCP server ชื่อ Mycal ให้ Claude Code ในเครื่องนี้ ทำตามลำดับ 1) เช็กว่ามี Node.js ด้วยคำสั่ง node -v ถ้าไม่มี ให้บอกฉันไปลงจาก https://nodejs.org/en/download ห้ามลงเอง 2) ใช้คอนฟิกนี้เท่านั้น (ผ่านตัวตรวจของ PopNx MCP แล้ว): claude mcp add --scope user mycal -- npx -y @catlabtech/mycal-mcp-server 3) บอก path เต็มของไฟล์ที่จะแก้ หรือคำสั่งที่จะรัน แล้วรอฉันตกลงก่อน 4) ไม่ต้องใช้คีย์ 5) ทำตามที่ตกลง แล้วตรวจว่าเครื่องมือของ Mycal ขึ้นจริงข้อความนี้ไม่มีคีย์ของคุณ ถ้าต้องใช้คีย์ AI จะบอกให้คุณวางเองในไฟล์หรือช่องของแอป
ลง Node.js ในเครื่อง (ถ้ายังไม่มี)
ลงไว้แล้วหรือยัง? เช็กก่อน · เปิด Terminal แล้วพิมพ์คำสั่งนี้ กด Enter
node -v- ขึ้นเลขรุ่น เช่น v26.13.1 = ลงแล้ว ข้ามขั้นนี้ได้
- ขึ้นว่า "command not found" (Windows ขึ้นว่า "is not recognized") = ยังไม่ได้ลง หรือเพิ่งลงแต่ยังไม่ได้ปิดแล้วเปิด Terminal ใหม่
เปิด Terminal ยังไง
Mac: กด ⌘ + Space พิมพ์ Terminal แล้วกด Enter
Windows: เปิดเมนู Start พิมพ์ Windows PowerShell แล้วกด Open
ยังไม่ได้ลง: เปิดหน้าดาวน์โหลดทางการ เลือกรุ่น LTS แล้วเลือกตัวติดตั้งแบบกดเอง: Mac ไฟล์ .pkg · Windows ไฟล์ .msi ดับเบิลคลิกแล้วกดถัดไปจนจบ ไม่ต้องใช้คำสั่ง curl
ลงเสร็จแล้ว ปิด Terminal เปิดใหม่ แล้วพิมพ์คำสั่งเดิมอีกครั้ง ต้องขึ้นเลขรุ่น:
node -vลงครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js
เปิด Terminal
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
วางคำสั่งนี้แล้วกด Enter
claude mcp add --scope user mycal -- npx -y @catlabtech/mycal-mcp-serverพิมพ์ /mcp ใน Claude Code
ต้องเห็น Mycal ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ลองเลย
ใช้ Mycal บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ Mycal หรือมีชื่อเครื่องมือของ Mycal ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
ให้ AI ติดตั้งให้
คัดลอกข้อความนี้ไปวางในแชตของ Cursor AI จะเช็กเครื่อง บอกว่าจะแก้ไฟล์ไหน และรอคุณตกลงก่อนทุกครั้ง
ช่วยติดตั้ง MCP server ชื่อ Mycal ให้ Cursor ในเครื่องนี้ ทำตามลำดับ 1) เช็กว่ามี Node.js ด้วยคำสั่ง node -v ถ้าไม่มี ให้บอกฉันไปลงจาก https://nodejs.org/en/download ห้ามลงเอง 2) ใช้คอนฟิกนี้เท่านั้น (ผ่านตัวตรวจของ PopNx MCP แล้ว): { "mcpServers": { "mycal": { "command": "npx", "args": [ "-y", "@catlabtech/mycal-mcp-server" ] } } } 3) บอก path เต็มของไฟล์ที่จะแก้ หรือคำสั่งที่จะรัน แล้วรอฉันตกลงก่อน 4) ไม่ต้องใช้คีย์ 5) ทำตามที่ตกลง แล้วตรวจว่าเครื่องมือของ Mycal ขึ้นจริงข้อความนี้ไม่มีคีย์ของคุณ ถ้าต้องใช้คีย์ AI จะบอกให้คุณวางเองในไฟล์หรือช่องของแอป
ลง Node.js ในเครื่อง (ถ้ายังไม่มี)
ลงไว้แล้วหรือยัง? เช็กก่อน · เปิด Terminal แล้วพิมพ์คำสั่งนี้ กด Enter
node -v- ขึ้นเลขรุ่น เช่น v26.13.1 = ลงแล้ว ข้ามขั้นนี้ได้
- ขึ้นว่า "command not found" (Windows ขึ้นว่า "is not recognized") = ยังไม่ได้ลง หรือเพิ่งลงแต่ยังไม่ได้ปิดแล้วเปิด Terminal ใหม่
เปิด Terminal ยังไง
Mac: กด ⌘ + Space พิมพ์ Terminal แล้วกด Enter
Windows: เปิดเมนู Start พิมพ์ Windows PowerShell แล้วกด Open
ยังไม่ได้ลง: เปิดหน้าดาวน์โหลดทางการ เลือกรุ่น LTS แล้วเลือกตัวติดตั้งแบบกดเอง: Mac ไฟล์ .pkg · Windows ไฟล์ .msi ดับเบิลคลิกแล้วกดถัดไปจนจบ ไม่ต้องใช้คำสั่ง curl
ลงเสร็จแล้ว ปิด Terminal เปิดใหม่ แล้วพิมพ์คำสั่งเดิมอีกครั้ง ต้องขึ้นเลขรุ่น:
node -vลงครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js
เปิดแชตของ AI ใน Cursor โหมด Agent
ลองเลย
ใช้ Mycal บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ Mycal หรือมีชื่อเครื่องมือของ Mycal ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
ให้ AI ติดตั้งให้
คัดลอกข้อความนี้ไปวางในแชตของ VS Code AI จะเช็กเครื่อง บอกว่าจะแก้ไฟล์ไหน และรอคุณตกลงก่อนทุกครั้ง
ช่วยติดตั้ง MCP server ชื่อ Mycal ให้ VS Code ในเครื่องนี้ ทำตามลำดับ 1) เช็กว่ามี Node.js ด้วยคำสั่ง node -v ถ้าไม่มี ให้บอกฉันไปลงจาก https://nodejs.org/en/download ห้ามลงเอง 2) ใช้คอนฟิกนี้เท่านั้น (ผ่านตัวตรวจของ PopNx MCP แล้ว): { "servers": { "mycal": { "type": "stdio", "command": "npx", "args": [ "-y", "@catlabtech/mycal-mcp-server" ] } } } 3) บอก path เต็มของไฟล์ที่จะแก้ หรือคำสั่งที่จะรัน แล้วรอฉันตกลงก่อน 4) ไม่ต้องใช้คีย์ 5) ทำตามที่ตกลง แล้วตรวจว่าเครื่องมือของ Mycal ขึ้นจริงข้อความนี้ไม่มีคีย์ของคุณ ถ้าต้องใช้คีย์ AI จะบอกให้คุณวางเองในไฟล์หรือช่องของแอป
ลง Node.js ในเครื่อง (ถ้ายังไม่มี)
ลงไว้แล้วหรือยัง? เช็กก่อน · เปิด Terminal แล้วพิมพ์คำสั่งนี้ กด Enter
node -v- ขึ้นเลขรุ่น เช่น v26.13.1 = ลงแล้ว ข้ามขั้นนี้ได้
- ขึ้นว่า "command not found" (Windows ขึ้นว่า "is not recognized") = ยังไม่ได้ลง หรือเพิ่งลงแต่ยังไม่ได้ปิดแล้วเปิด Terminal ใหม่
เปิด Terminal ยังไง
Mac: กด ⌘ + Space พิมพ์ Terminal แล้วกด Enter
Windows: เปิดเมนู Start พิมพ์ Windows PowerShell แล้วกด Open
ยังไม่ได้ลง: เปิดหน้าดาวน์โหลดทางการ เลือกรุ่น LTS แล้วเลือกตัวติดตั้งแบบกดเอง: Mac ไฟล์ .pkg · Windows ไฟล์ .msi ดับเบิลคลิกแล้วกดถัดไปจนจบ ไม่ต้องใช้คำสั่ง curl
ลงเสร็จแล้ว ปิด Terminal เปิดใหม่ แล้วพิมพ์คำสั่งเดิมอีกครั้ง ต้องขึ้นเลขรุ่น:
node -vลงครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js
เปิดแชตของ AI ใน VS Code โหมด Agent
ลองเลย
ใช้ Mycal บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ Mycal หรือมีชื่อเครื่องมือของ Mycal ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON
ติดตั้งในเครื่อง
Claude Code
claude mcp add --scope user mycal -- npx -y @catlabtech/mycal-mcp-serverClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"mycal": {
"command": "npx",
"args": [
"-y",
"@catlabtech/mycal-mcp-server"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"mycal": {
"command": "npx",
"args": [
"-y",
"@catlabtech/mycal-mcp-server"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"mycal": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@catlabtech/mycal-mcp-server"
]
}
}
}ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
สรุป
ใช้กับโปรแกรมไหนได้
ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
คู่มือที่เกี่ยวข้อง
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 15 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Junhui20 ซึ่งเป็นเจ้าของ repo
- ✓ ผ่าน
ยังมีคนดูแล
มีการแก้โค้ดล่าสุด 19 วันที่ผ่านมา
- ✓ ผ่าน
มีสัญญาอนุญาต (license)
ใช้ MIT
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
ช่องโหว่ที่เปิดเผยแล้ว (OSV.dev)
ไม่พบรายการใน OSV.dev สำหรับ @catlabtech/mycal-mcp-server@0.1.4
ตรวจเฉพาะตัวแพ็กเกจรุ่นนี้ ไม่ใช่ทุก dependency · ตรวจเมื่อ 15 พ.ย. 2569
ผู้ทำ: ขอให้ตรวจใหม่ หรือแจ้งข้อมูลผิด
พูดคุย
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
รีวิวจากผู้ใช้
ยังไม่มีรีวิว
เทียบกับตัวอื่นในหมวด เกม กีฬา อาหาร และการเรียนi
- ดาวมากกว่า 92% ของอีก 1510 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 11% ของอีก 1510 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1510 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
Mycal ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด 19 วันที่ผ่านมา และส่งรุ่นล่าสุด (0.1.4) เข้า registry 5 เดือนที่ผ่านมา
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
มีตัวไหนใช้แทนได้บ้าง?
ในหมวดเดียวกันมี Anime Garden, WilmAI, Lumify Sports Intelligence, Savecraft, GoodWatch
ตัวอื่นที่ทำงานคล้ายกัน
หมวดเดียวกันจากผู้ทำคนอื่น ผ่านตัวตรวจคำสั่งแล้ว ตัวทางการขึ้นก่อน แล้วเรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
WilmAI
Finland's Wilma school system for parents and students: schedule, homework, exams and messages.
Lumify Sports Intelligence
Schedules, scores, odds, splits & explainable AI bet confidence — 8+ sports, free instant key.
Savecraft
Savecraft serves real save game data and expert game knowledge to AI assistants.
GoodWatch
Find movies and TV shows, track watches, and get suggestions based on your taste.
- Anime Garden — ใช้บนคลาวด์ ไม่ต้องลงเครื่อง · ไม่ต้องใช้คีย์
- WilmAI — ต้องลงในเครื่อง · ไม่ต้องใช้คีย์
- Lumify Sports Intelligence — ใช้บนคลาวด์ ไม่ต้องลงเครื่อง · ต้องใช้คีย์
- Savecraft — ใช้บนคลาวด์ ไม่ต้องลงเครื่อง · ไม่ต้องใช้คีย์
- GoodWatch — ใช้บนคลาวด์ ไม่ต้องลงเครื่อง · ไม่ต้องใช้คีย์
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Malaysia Calendar API
Malaysia's most complete calendar API — public holidays, school calendar, exam schedules, and MCP server for AI tools.
Data source: Official government gazette (JPM BKPP), JAKIM, KPM, MPM. Not scraped from third-party websites.
Links
- Website + demo: https://mycal-web.pages.dev
- Developer docs: https://mycal-web.pages.dev/docs
- API base URL: https://mycal-api.huijun00100101.workers.dev/v1
- GitHub: https://github.com/Junhui20/malaysia-calendar-api
Packages
Published to npm under the @catlabtech scope:
| Package | Purpose | Install |
|---|---|---|
@catlabtech/mycal-core | Shared types, Zod schemas, and calendar/business-day logic | npm install @catlabtech/mycal-core |
@catlabtech/mycal-sdk | TypeScript client SDK for the REST API | npm install @catlabtech/mycal-sdk |
@catlabtech/mycal-mcp-server | MCP server exposing 13 calendar tools for AI agents | npm install @catlabtech/mycal-mcp-server |
Features
- 50 public holidays for 2026 from official gazette (Warta Kerajaan) — federal + state-specific
- 13 states + 3 Federal Territories with aliases (KL, JB, Penang, etc.)
- Weekend-aware — Kedah/Kelantan/Terengganu use Fri-Sat (Kumpulan A), all others use Sat-Sun (Kumpulan B), with Johor's historical switch tracked
- Cuti ganti (replacement holiday) auto-calculation per state weekend config
- Business day calculator — per-state, holiday-aware
- School calendar — terms, holidays, KPM cuti perayaan (Lampiran A/B/C)
- Exam schedules — SPM, STPM, MUET, PT3
- iCal subscription feeds — per-state
.icsfeeds - MCP Server for AI agents — 13 tools for Claude, ChatGPT, and other assistants
- TypeScript SDK (
@catlabtech/mycal-sdk) with typed responses - OpenAPI 3.1 spec + interactive docs
- Trilingual — Bahasa Melayu, English, Chinese names (三语支持)
Quick Start
# Clone and install
git clone https://github.com/Junhui20/malaysia-calendar-api.git cd malaysia-calendar-api pnpm install
Build shared packages
pnpm --filter @catlabtech/mycal-core build pnpm --filter @catlabtech/mycal-sdk build
Run API locally (http://localhost:8787)
cd packages/api && npx wrangler dev
Run web site locally (http://localhost:4321)
pnpm --filter @mycal/web dev
Validate data
pnpm validate
Run tests
pnpm test
API Examples
Base URL: https://mycal-api.huijun00100101.workers.dev/v1
List holidays
# All holidays for Selangor in 2026
curl "https://mycal-api.huijun00100101.workers.dev/v1/holidays?year=2026&state=selangor"
Islamic holidays only
curl "https://mycal-api.huijun00100101.workers.dev/v1/holidays?year=2026&type=islamic"
March holidays for KL
curl "https://mycal-api.huijun00100101.workers.dev/v1/holidays?year=2026&state=KL&month=3"
Check a date
# Is March 21 a holiday/weekend/working day?
curl "https://mycal-api.huijun00100101.workers.dev/v1/holidays/check?date=2026-03-21&state=KL"
Response:
{
"data": { "date": "2026-03-21", "dayOfWeek": "Saturday", "isHoliday": true, "isWeekend": true, "isWorkingDay": false, "isSchoolDay": false, "holidays": [ { "id": "2026-hari-raya-aidilfitri-1", "name": { "ms": "Hari Raya Aidilfitri", "en": "Eid al-Fitr", "zh": "开斋节" }, "type": "islamic", "status": "confirmed" } ] } }
Business days
# Count working days in March for Selangor
curl "https://mycal-api.huijun00100101.workers.dev/v1/business-days?start=2026-03-01&end=2026-03-31&state=selangor"
Add 10 business days to a date
curl "https://mycal-api.huijun00100101.workers.dev/v1/business-days/add?date=2026-03-01&days=10&state=selangor"
School calendar
# Is this a school day?
curl "https://mycal-api.huijun00100101.workers.dev/v1/school/is-school-day?date=2026-03-21&state=selangor"
School holidays for Kumpulan B
curl "https://mycal-api.huijun00100101.workers.dev/v1/school/holidays?year=2026&group=B"
Exam schedule
curl "https://mycal-api.huijun00100101.workers.dev/v1/school/exams?year=2026&type=spm"
Next holiday
# Next holiday for Penang
curl "https://mycal-api.huijun00100101.workers.dev/v1/holidays/next?state=penang"
State resolution
# Resolve alias
curl "https://mycal-api.huijun00100101.workers.dev/v1/states/resolve?q=kl"
-> { "data": { "canonical": "kuala-lumpur", "group": "B" } }
Full API Reference
| Endpoint | Description |
|---|---|
GET /v1/holidays | List holidays (filter by year, state, type, status, month) |
GET /v1/holidays/check | Is this date a holiday/weekend/working day/school day? |
GET /v1/holidays/today | Today's holiday status |
GET /v1/holidays/next | Next upcoming holiday |
GET /v1/holidays/between | Holidays in date range |
GET /v1/holidays/leave-optimizer | Suggest annual-leave days to spend for the longest consecutive break |
GET /v1/business-days | Count business days between dates |
GET /v1/business-days/add | Add N business days to a date |
GET /v1/states | All 13 states + 3 FTs with weekend config |
GET /v1/states/resolve | Resolve alias (KL, penang, jb) to canonical code |
GET /v1/school/terms | School term dates + day counts |
GET /v1/school/holidays | School holidays + KPM cuti perayaan |
GET /v1/school/exams | SPM, STPM, MUET, PT3 schedule |
GET /v1/school/is-school-day | Is this a school day? |
GET /v1/feed/ical/:state | iCal subscription feed |
GET /v1/feed/csv/:state | CSV/spreadsheet export of holidays |
GET /v1/data/* | Raw, cacheable open-data snapshots — manifest, states, holidays/:year, all (no API key required) |
GET /v1/prayer-times/:zone | JAKIM prayer times for a zone (MYT-formatted); GET /v1/prayer-times/zones lists the zone directory |
POST /v1/keys | Issue an API key (admin-gated for now; GET /v1/keys/whoami checks the caller's tier) |
See the full OpenAPI 3.1 spec for request/response schemas.
SDK Usage
import { MyCalClient } from "@catlabtech/mycal-sdk";
const cal = new MyCalClient();
// Check if a date is a working day const result = await cal.check("2026-03-21", "selangor"); console.log(result.isWorkingDay); // false
// List holidays const holidays = await cal.holidays({ year: 2026, state: "KL" });
// Business days const workDays = await cal.businessDays("2026-03-01", "2026-03-31", "selangor"); console.log(workDays.businessDays); // 22
// School calendar const terms = await cal.school.terms({ year: 2026, group: "B" }); const exams = await cal.school.exams({ year: 2026, type: "spm" }); const isSchool = await cal.school.isSchoolDay("2026-03-21", "selangor");
MCP Server
Connect the Malaysia Calendar API to Claude, ChatGPT, or any MCP-compatible AI assistant.
Setup with Claude Desktop / Claude Code
Add to your MCP configuration:
{
"mcpServers": { "malaysia-calendar": { "command": "npx", "args": ["@catlabtech/mycal-mcp-server"] } } }
Available Tools (13)
| Tool | Description |
|---|---|
get_malaysia_holidays | Get public holidays (filter by year, state, type) |
check_malaysia_holiday | Check if a date is a holiday or working day |
next_malaysia_holiday | Find the next upcoming holiday |
malaysia_business_days | Count working days between two dates |
malaysia_long_weekends | Find long weekends (3+ days) |
malaysia_leave_optimizer | Find the most efficient leave days to take to maximise consecutive days off |
list_malaysia_states | List all states with weekend config |
resolve_malaysia_state | Resolve alias (KL, JB) to canonical code |
malaysia_holiday_changes | Recent data changes |
malaysia_school_terms | School term dates and day counts |
malaysia_school_holidays | School holidays (cuti penggal, cuti perayaan) |
malaysia_exams | SPM, STPM, MUET, PT3 exam schedule |
malaysia_is_school_day | Check if a date is a school day |
State Codes
| Code | Aliases | Group | Weekend |
|---|---|---|---|
johor | jhr, jb | B | Sat-Sun (was Fri-Sat 2014-2024) |
kedah | kd, kdh | A | Fri-Sat |
kelantan | kel, kb | A | Fri-Sat |
terengganu | trg, kt | A | Fri-Sat |
perak | prk, ipoh | B | Sat-Sun |
pulau-pinang | penang, pg | B | Sat-Sun |
selangor | sel, sgr | B | Sat-Sun |
negeri-sembilan | ns, n9 | B | Sat-Sun |
melaka | mlk, malacca | B | Sat-Sun |
pahang | phg, kuantan | B | Sat-Sun |
perlis | pls, kangar | B | Sat-Sun |
sabah | sbh, kk | B | Sat-Sun |
sarawak | swk, kuching | B | Sat-Sun |
kuala-lumpur | kl | B | Sat-Sun |
wp-putrajaya | putrajaya, pjy | B | Sat-Sun |
wp-labuan | labuan, lbn | B | Sat-Sun |
State aliases are case-insensitive. Use GET /v1/states/resolve?q=kl to resolve any alias to the canonical code.
Project Structure
malaysia-calendar-api/
├── data/ # JSON data files (source of truth / 数据源) │ ├── holidays/ │ │ ├── 2024.json # Holiday data per year │ │ ├── 2025.json │ │ └── 2026.json │ ├── school/ │ │ ├── terms-2026.json # School terms (Kumpulan A + B) │ │ ├── holidays-2026.json # School holidays + KPM cuti perayaan │ │ └── exams-2026.json # SPM, STPM, MUET, PT3 schedules │ ├── states.json # 13 states + 3 FT, aliases, weekend history │ └── known-fixed-holidays.json ├── packages/ │ ├── core/ # Shared business logic (types, schemas, utils) │ │ └── src/ │ │ ├── types.ts # Holiday, State, SchoolTerm, Exam interfaces │ │ ├── schemas.ts # Zod validation schemas │ │ ├── filter.ts # Query filtering logic │ │ ├── replacement.ts # Cuti ganti calculation │ │ ├── state-resolver.ts │ │ ├── business-days.ts │ │ └── school.ts # School term/holiday/exam logic │ ├── api/ # Hono API on Cloudflare Workers │ ├── mcp-server/ # MCP Server (13 tools) │ ├── sdk/ # TypeScript client SDK (@catlabtech/mycal-sdk) │ └── web/ # Astro + Starlight — marketing site, demos, docs ├── scripts/ │ ├── validate-data.ts # 5-layer data validation pipeline │ └── sync-to-kv.ts # JSON -> Cloudflare KV denormalization ├── openapi.yaml # OpenAPI 3.1 spec (spec-first) ├── pnpm-workspace.yaml └── turbo.json
Data Sources
All data is sourced from official Malaysian government publications:
| Source | Data | URL |
|---|---|---|
| JPM BKPP | Federal Gazette / Warta Kerajaan (public holidays) | kabinet.gov.my |
| JAKIM | Takwim Hijri-Miladi (Islamic calendar) | e-solat.gov.my |
| KPM | Kalendar Akademik / school calendar (Lampiran A/B/C) | moe.gov.my |
| MPM | STPM & MUET exam schedules | mpm.edu.my |
| State Portals | State-specific holidays (13 states) | *.gov.my |
Holiday