- Home
- MCP servers
- Tanda Workforce
Tanda Workforce
- typescript
0
GitHub Stars
typescript
Language
6 months ago
First Indexed
3 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
This MCP server provides a production-ready bridge between the Tanda Workforce API and AI assistants, enabling secure OAuth2 authentication, real-time communication, and a rich set of workforce management capabilities. It supports Claude AI flows and Claude Desktop, with robust deployment options and strict session handling to keep your data safe while you scale.
How to use
Connect your MCP client to the server using either the HTTP-based remote endpoint or the local STDIO pathway. The server exposes a real-time transport channel via Server-Sent Events (SSE) and implements full JSON-RPC 2.0 compatible endpoints to perform workforce actions such as managing users, schedules, timesheets, leave, clock-in/out, and more.
Claude.ai integration follows the standard OAuth 2.0 flow with Dynamic Client Registration. You will register your MCP server URL, complete the PKCE flow, and establish a long‑lived session to receive real-time updates over SSE at the /mcp endpoint. Claude Desktop can use a JWT token instead of the full OAuth flow by placing the token in the configured headers. Use the provided MCP URL and follow the authentication steps to obtain a valid token or session.
How to install
Prerequisites: Node.js installed (recommended LTS), npm, and a supported runtime environment. If you prefer containerized deployment, Docker and docker-compose are also supported.
Step-by-step commands to set up locally (code blocks below show the exact commands you should run):
# 1) Clone the MCP server repository
git clone https://github.com/hakeemrabiuDFW/Tanda-Workforce-MCP-Server.git
cd Tanda-Workforce-MCP-Server
# 2) Install dependencies
npm install
# 3) Configure environment
cp .env.example .env
# Edit .env with your Tanda OAuth credentials
# Required environment variables:
# TANDA_CLIENT_ID, TANDA_CLIENT_SECRET, TANDA_REDIRECT_URI,
# SESSION_SECRET, JWT_SECRET
# 4) Run in development mode
npm run dev
# 5) Build for production and start
npm run build
npm start
# 6) Docker deployment (recommended for production)
docker-compose up -d --build
Configuration and security notes
Configure your OAuth credentials and session keys securely. The server expects your OAuth client details and callback URL to be set in environment variables. Use strong, random strings for SESSION_SECRET and JWT_SECRET. For production, consider a shared session store (for example Redis) if you run multiple server instances.
Environment variables you must provide:
- TANDA_CLIENT_ID
- TANDA_CLIENT_SECRET
- TANDA_REDIRECT_URI
- SESSION_SECRET
- JWT_SECRET
Connecting via Claude and tokens
Claude.ai connects using OAuth 2.0 with Dynamic Client Registration. The MCP server URL is the primary endpoint you provide to Claude AI for discovery and registration. The flow includes discovering endpoints, registering, authorizing with PKCE, exchanging the code for a token, and then connecting via SSE at the /mcp path.
Claude Desktop uses a JWT token placed in the MCP server configuration. You can insert the token into the config under the mcpServers.tanda-workforce.headers.Authorization field to enable seamless access.
Notes on deployment and scale
Sessions are stored in memory by default. For production deployments with multiple instances, implement a shared session store such as Redis to ensure consistent authentication state across instances.
Available tools
tanda_get_current_user
Get the current authenticated user profile
tanda_get_users
List all employees
tanda_get_user
Get details for a specific user
tanda_get_schedules
Retrieve scheduled shifts
tanda_create_schedule
Create a new shift
tanda_update_schedule
Update an existing shift
tanda_delete_schedule
Delete a shift
tanda_publish_schedules
Publish schedules
tanda_get_shifts
Get worked shifts from timesheets
tanda_get_timesheets
Retrieve timesheets for employees
tanda_approve_shift
Approve a shift for timesheet validation
tanda_approve_timesheet
Approve a timesheet
tanda_get_leave_requests
Get leave requests
tanda_create_leave_request
Create a leave request
tanda_approve_leave
Approve a leave request
tanda_decline_leave
Decline a leave request
tanda_get_leave_balances
Check leave balances
tanda_clock_in
Clock in/out actions
tanda_get_clock_ins
Retrieve clock-in records
tanda_get_departments
List departments
tanda_get_locations
List locations
tanda_get_qualifications
List qualifications
tanda_get_user_qualifications
Get user qualifications
tanda_get_roster_costs
Get labor costs
tanda_get_award_interpretation
Get pay calculations