keka-mcp-server

keka-mcp-server

MCP server for the Keka HRM API, enabling HR operations like employee management, leave, attendance, payroll, recruitment, and PSA.

Category
Visit Server

README

keka-mcp-server

Visitors

MCP server for the Keka HRM API, built for White Label IQ (WLIQ).

Exposes 14 tools covering Keka's core modules so Claude (or any MCP client) can query and act on HR data.


Tools

HRIS

Tool Description
keka_list_employees List employees with filters (status, search, probation, etc.)
keka_get_employee Get full details for a single employee by ID
keka_list_departments List all departments
keka_list_job_titles List all job titles
keka_list_groups List all groups/teams

Leave Management

Tool Description
keka_list_leave_types List configured leave types (Annual, Sick, etc.)
keka_list_leave_requests List leave requests with date/employee filters
keka_create_leave_request Submit a new leave request for an employee
keka_get_leave_balances Get leave balance breakdown per employee

Attendance

Tool Description
keka_get_attendance Get attendance records (clock-in/out, hours, status)

Payroll

Tool Description
keka_list_pay_groups List payroll groups
keka_list_pay_bands List salary pay bands
keka_list_salaries List employee salaries (CTC, pay group)

Recruitment (Keka Hire)

Tool Description
keka_list_jobs List job openings
keka_list_candidates List candidates for a specific job

PSA

Tool Description
keka_list_psa_clients List PSA clients
keka_list_psa_projects List PSA projects

Setup

1. Get Keka API credentials

In your Keka admin portal:

  1. Go to Settings → Integrations → API
  2. Create a new API access key
  3. Note down: Client ID, Client Secret, API Key

2. Install dependencies

npm install

3. Build

npm run build

4. Environment variables

Variable Required Description
KEKA_BASE_URL Your Keka tenant URL, e.g. https://yourcompany.keka.com
KEKA_CLIENT_ID OAuth2 Client ID from Keka admin
KEKA_CLIENT_SECRET OAuth2 Client Secret
KEKA_API_KEY API key from Keka admin
KEKA_EMPLOYEE_ID Optional Your own Keka employee ID — used as requestedBy when applying leave on behalf of others
KEKA_SANDBOX Optional Set to true to use kekademo.com sandbox auth
TRANSPORT Optional stdio (default) or http
PORT Optional HTTP port when TRANSPORT=http (default: 3000)

Claude Desktop integration (stdio)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "keka": {
      "command": "node",
      "args": ["/path/to/keka-mcp-server/dist/index.js"],
      "env": {
        "KEKA_BASE_URL": "https://yourcompany.keka.com",
        "KEKA_CLIENT_ID": "your-client-id",
        "KEKA_CLIENT_SECRET": "your-client-secret",
        "KEKA_API_KEY": "your-api-key",
        "KEKA_EMPLOYEE_ID": "your-employee-uuid"
      }
    }
  }
}

HR Skill Prompt (optional)

Copy the contents of keka-hr-skill.md into Claude Desktop's Custom Instructions (Settings → Custom Instructions). This teaches Claude how to handle Keka operations smoothly — resolving names to IDs, always including required fields, checking balances before applying leave, etc.


## HTTP mode (remote deployment)

```bash
TRANSPORT=http \
KEKA_BASE_URL=https://yourcompany.keka.com \
KEKA_CLIENT_ID=xxx \
KEKA_CLIENT_SECRET=xxx \
KEKA_API_KEY=xxx \
node dist/index.js

Health check: GET http://localhost:3000/health MCP endpoint: POST http://localhost:3000/mcp


Authentication

Keka uses a custom OAuth2 flow (grant_type=kekaapi). The server:

  • Fetches a Bearer token on first request
  • Caches the token in memory
  • Auto-refreshes 2 minutes before expiry (tokens last 24 hours)

Rate Limits

Keka enforces 50 requests per minute. The server returns a clear error message if this limit is hit.


Development

# Watch mode (no build required)
npm run dev

# Build
npm run build

# Start production
npm start

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured