WeDaka MCP Server
Enables employee time tracking with clock-in/out, workday checking, and time log retrieval via MCP tools.
README
WeDaka MCP Server - TypeScript Implementation
WeDaka MCP Server 的 TypeScript 實作版本,提供員工打卡系統的 Model Context Protocol (MCP) 伺服器功能。
功能特色
- 免登入設計: 使用環境變數直接認證,無需登入流程
- 上班打卡: 記錄員工上班時間,支援備註功能和指定日期時間
- 下班打卡: 記錄員工下班時間,支援備註功能和指定日期時間
- 工時查詢: 查詢指定月份的所有打卡記錄
- 補打卡功能: 支援往回補打過去日期的打卡記錄
- 工作日檢查: 自動檢查日期是否為工作日,防止在假日或非工作日打卡(DateType "1": 工作日、"2": 休假日、"3": 例假日)
- 未來日期保護: 禁止為未來日期打卡,只能為今天或過去的日期打卡
安裝方式
方式一:從 GitHub 直接安裝(推薦)
# 複製專案並安裝依賴
git clone git@github.com:keith-hung/WeDaka-MCP.git
cd WeDaka-MCP
npm install
npm run build
方式二:本地開發安裝
如果您已經有專案檔案:
# 安裝依賴
npm install
# 編譯 TypeScript
npm run build
前置需求
- Node.js 20.0.0+
- Git(用於從 GitHub 安裝)
- npm 或 yarn
環境變數設定
使用前需要設定以下環境變數:
export WEDAKA_API_URL="https://your-wedaka-server.com"
export WEDAKA_USERNAME="your-ad-account"
export WEDAKA_DEVICE_ID="your-device-uuid"
export WEDAKA_EMP_NO="your-employee-number"
開發腳本
# 編譯 TypeScript
npx tsc
# 開發模式運行
npx tsx src/server.ts
# 運行編譯後的程式
node dist/server.js
# 執行測試
npx jest
# 程式碼檢查
npx eslint src/**/*.ts
# 程式碼格式化
npx prettier --write src/**/*.ts
MCP 客戶端設定
Claude Desktop
在 claude_desktop_config.json 中加入:
{
"mcpServers": {
"wedaka": {
"command": "npx",
"args": ["-y", "git+https://github.com/keith-hung/WeDaka-MCP.git"],
"env": {
"WEDAKA_API_URL": "https://your-wedaka-server.com",
"WEDAKA_USERNAME": "your-ad-account",
"WEDAKA_DEVICE_ID": "your-device-uuid",
"WEDAKA_EMP_NO": "your-employee-number"
}
}
}
}
VSCode
在 .vscode/settings.json 中加入:
{
"mcp.servers": {
"wedaka": {
"command": "npx",
"args": ["-y", "git+https://github.com/keith-hung/WeDaka-MCP.git"],
"env": {
"WEDAKA_API_URL": "https://your-wedaka-server.com",
"WEDAKA_USERNAME": "your-ad-account",
"WEDAKA_DEVICE_ID": "your-device-uuid",
"WEDAKA_EMP_NO": "your-employee-number"
}
}
}
}
注意事項:
- 將上述設定中的環境變數替換為實際值
- 重新啟動 Claude Desktop 或 VSCode 以載入設定
- 首次執行時 npx 會自動從 GitHub 下載並安裝專案
- 確保使用 Node.js 20.0.0 或更高版本
可用的 MCP Tools
本系統提供以下 MCP tools:
- wedaka_clock_in - 上班打卡
- wedaka_clock_out - 下班打卡
- wedaka_get_timelog - 查詢工時記錄
- wedaka_check_work_day - 檢查工作日
Time Log 資料結構
wedaka_get_timelog 回傳的每筆記錄包含以下重要欄位:
WorkItem (記錄類型)
| 數值 | 意義 | 說明 |
|---|---|---|
'1' |
上班打卡 | 員工開始工作的時間記錄 |
'2' |
請假 | 員工全天請假 |
'4' |
下班打卡 | 員工結束工作的時間記錄 |
重要:當 WorkItem = '2' 時,表示員工當天全天請假(不會有打卡時間記錄)。
DateType (日期類型)
| 數值 | 意義 |
|---|---|
'1' |
工作日 |
'2' |
休假日 |
'3' |
例假日 |
其他欄位
- WorkTime: 打卡時間 (格式: YYYY/MM/DD HH:MM:SS,請假記錄時為 null)
- WorkDate: 打卡日期
- Memo: 備註
- LeaveHours: 請假時數 (此欄位可能為 0 或 null,不代表實際請假時數)
更多詳細資料結構說明請參考 DEVELOPMENT.md。
專案結構
typescript/
├── src/
│ ├── types/ # TypeScript 類型定義
│ ├── models/ # Zod 驗證模型
│ ├── client/ # API 客戶端
│ ├── server/ # MCP 伺服器實作
│ ├── __tests__/ # 測試檔案
│ └── server.ts # 主要入口點
├── dist/ # 編譯輸出目錄
├── jest.config.js # Jest 測試設定
├── tsconfig.json # TypeScript 設定
├── .eslintrc.js # ESLint 設定
├── .prettierrc # Prettier 設定
└── package.json # 專案設定
技術棧
- TypeScript: 型別安全的 JavaScript
- Zod: 執行時型別驗證
- Axios: HTTP 客戶端
- @modelcontextprotocol/sdk: MCP SDK
- Jest: 測試框架
- ESLint: 程式碼檢查
- Prettier: 程式碼格式化
開發指南
程式碼風格
- 使用 TypeScript 嚴格模式
- 遵循 ESLint 和 Prettier 規則
- 使用 Zod 進行資料驗證
- 採用 async/await 處理異步操作
測試
# 執行所有測試
npx jest
# 執行特定測試檔案
npx jest src/__tests__/WedakaApiClient.test.ts
# 執行測試並生成覆蓋率報告
npx jest --coverage
程式碼品質
# 檢查程式碼風格
npx eslint src/**/*.ts
# 自動修復可修復的問題
npx eslint src/**/*.ts --fix
# 格式化程式碼
npx prettier --write src/**/*.ts
授權
MIT License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。