McpStamp Leave Tracker

Employee leave and PTO: requests, approvals, balances, who is out, and conflict checks.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,937Tokens (tool definitions)
~957 BTypical response size
Moderate attention impact (1.51% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "leave": {
      "command": "uvx",
      "args": [
        "https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/leave.mcpb"
      ]
    }
  }
}

Runnable packages

mcpbhttps://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/leave.mcpb0.22.0stdio

Remote endpoints

https://mcp.zovo.one/mcp/leavestreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡leave_employee_add(name, annualAllowance, carriedOver, email)

Add an employee to the leave tracker and return their EMP-NNNN id. Give their annual paid-leave allowance in whole days and any days carried over from last year. Balances charge approved plus pending leave against allowance + carried-over. Free tier: unlimited.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 200,
      "description": "Full name, e.g. Taylor Wren"
    },
    "annualAllowance": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000,
      "description": "Annual paid leave allowance in whole days"
    },
    "carriedOver": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000,
      "description": "Days carried over from last year (default 0)"
    },
    "email": {
      "type": "string",
      "maxLength": 200,
      "description": "Work email, for calendar lookup"
    }
  },
  "required": [
    "name",
    "annualAllowance"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡leave_request(employee, type, start, end, halfDay, ...)

Create a leave or PTO request and return its LV-NNNN id. type is vacation, sick, unpaid or parental. start and end are inclusive YYYY-MM-DD dates; halfDay charges half a day for the whole span. A pending request is refussed if it would overlap another approved or pending request of the same employee. Free tier: unlimited requests.

Input Schema

{
  "type": "object",
  "properties": {
    "employee": {
      "type": "string",
      "maxLength": 200,
      "description": "The employee id or name"
    },
    "type": {
      "type": "string",
      "enum": [
        "vacation",
        "sick",
        "unpaid",
        "parental"
      ],
      "description": "Kind of leave"
    },
    "start": {
      "type": "string",
      "maxLength": 32,
      "description": "First day off, YYYY-MM-DD, inclusive"
    },
    "end": {
      "type": "string",
      "maxLength": 32,
      "description": "Last day off, YYYY-MM-DD, inclusive"
    },
    "halfDay": {
      "type": "boolean",
      "description": "Half-day charge for the whole span (default false)"
    },
    "reason": {
      "type": "string",
      "maxLength": 2000,
      "description": "Why, shown in reports and calendar"
    }
  },
  "required": [
    "employee",
    "type",
    "start",
    "end"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪leave_approve(request, comment)

Approve a pending leave request by id. Also used to re-open a rejected one. Nothing to approve on an already-approved request.

Input Schema

{
  "type": "object",
  "properties": {
    "request": {
      "type": "string",
      "maxLength": 200,
      "description": "The request id (e.g. LV-0001)."
    },
    "comment": {
      "type": "string",
      "maxLength": 2000,
      "description": "Approval note"
    }
  },
  "required": [
    "request"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴leave_reject(request, reason)

Reject or cancel a leave request by id. A pending or approved request becomes rejected; a rejected one can be reopened via leave_approve. Use leave_cancel (via reject with reason) for voluntary withdrawal.

Input Schema

{
  "type": "object",
  "properties": {
    "request": {
      "type": "string",
      "maxLength": 200,
      "description": "The request id (e.g. LV-0001)."
    },
    "reason": {
      "type": "string",
      "maxLength": 2000,
      "description": "Why"
    }
  },
  "required": [
    "request"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢leave_balance(employee)

Show one employee's leave balance: allowance + carried-over, minus approved and pending, as whole days plus a possible half day. Remaining is rounded down to whole days on the report.

Input Schema

{
  "type": "object",
  "properties": {
    "employee": {
      "type": "string",
      "maxLength": 200,
      "description": "Employee id or name"
    }
  },
  "required": [
    "employee"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢leave_out_range(start, end)

Who is out in a date range: start and end are inclusive YYYY-MM-DD. Each employee appears once per day; pending requests count as a plan. Use for coverage, calendars and absence summaries. Free tier: unlimited.

Input Schema

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "maxLength": 32,
      "description": "First day, YYYY-MM-DD, inclusive"
    },
    "end": {
      "type": "string",
      "maxLength": 32,
      "description": "Last day, YYYY-MM-DD, inclusive"
    }
  },
  "required": [
    "start",
    "end"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢leave_list(employee, status)

List all employees, or all leave requests (optionally filtered by employee and/or status). Omit the filter to list requests.

Input Schema

{
  "type": "object",
  "properties": {
    "employee": {
      "type": "string",
      "maxLength": 200,
      "description": "Filter requests to one employee"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "approved",
        "rejected",
        "cancelled"
      ],
      "description": "Filter requests by status"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡leave_import(csv)

Pro. Bulk-create leave requests from a CSV/TSV. First row is a header: employee,type,start,end,halfDay,status,reason. status may be omitted (defaults to pending) or be approved/rejected. Each request is still checked for overlap conflicts; a conflicting row is reported, not applied. watermark-free, full CRUD.

Input Schema

{
  "type": "object",
  "properties": {
    "csv": {
      "type": "string",
      "maxLength": 200000,
      "description": "CSV text, newline-separated, first row header: employee,type,start,end,halfDay,status,reason"
    }
  },
  "required": [
    "csv"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢leave_export_ics(path)

Pro. Export all APPROVED leave as an .ics calendar (RFC5545). Returns the calendar text; pass path to also write it to a local file. watermark-free.

Input Schema

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "maxLength": 500,
      "description": "Local .ics file to write"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢license_status

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪license_activate(key)

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴leave_cancel(request, reason)

Cancel a pending or approved request by id, keeping its record with status cancelled. Differs from leave_reject in intent (voluntary withdrawal). Nothing happened if already cancelled.

Input Schema

{
  "type": "object",
  "properties": {
    "request": {
      "type": "string",
      "maxLength": 200,
      "description": "The request id (e.g. LV-0001)."
    },
    "reason": {
      "type": "string",
      "maxLength": 2000,
      "description": "Why"
    }
  },
  "required": [
    "request"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Recommended Prompts

browse_collection
Show me the [collection] from leave
Expected tools: leave_list
list_items
List all [items] available in leave
Expected tools: leave_list

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools