AI assistants

Leave management MCP server for AI assistants

Ask your assistant who is out next week, how many vacation days Ann has left, or to request Friday off. LeaveCalc runs a remote MCP server at one address, and a token you make decides what the assistant can see and do. Claude Code works today. Claude on the web and ChatGPT need OAuth, which LeaveCalc does not have yet.

Free for up to 3 people, with a 14-day Pro trial. No card. The AI assistant connection is in every plan.

# one time, in your own terminal
$ read -rs LEAVECALC_TOKEN && \
    export LEAVECALC_TOKEN
$ claude mcp add --transport http leavecalc \
    https://leavecalc.com/api/v1/mcp \
    --header 'Authorization: Bearer ${LEAVECALC_TOKEN}'

> Who is out this week in LeaveCalc?

tool call  who_is_out
  {"from": "2026-10-13", "to": "2026-10-16"}
  Eva Stone   PTO        Oct 12 to Oct 14
  Cara Diaz   Time off   Oct 13
  Ben Carter  PTO        Oct 15 to Oct 16

# Cara Diaz is on sick leave. A token that cannot see leave types reads it as Time off.
The Create a token panel in LeaveCalc: a name, Only read or Read and change, and the switch for the type of sick and medical leave
What Claude Code receives from LeaveCalc, trimmed, and the panel where an owner makes the token. Real answer from a demo company.
9 toolssix that read and three that change things. A read-only token sees only the six
1 addressleavecalc.com/api/v1/mcp, with a bearer token you make in Settings
120 a minutecalls for each token, and 300 for all the tokens of a company
Not yetOAuth, which ChatGPT and most of Claude's connector paths expect

An assistant is only as useful as the data it can reach, and only as safe as the limits you put on it. LeaveCalc takes the cautious route. You make a token, you decide whether it can only read, and the server enforces the rest: sick leave reads as Time off, approvals need the exact employee and start date, and nobody decides their own request.

That means you can let an assistant answer who is out this week without handing it the keys to everything.

How it works

Three steps from token to answer

The full setup guide has the commands for each assistant.

Make a token

An owner opens Settings, then Integrations, and chooses Create token in the API tokens card. Name it for the person or tool, start with Only read, and copy the token at once. LeaveCalc keeps only a fingerprint.

Only read (people, requests, balances)

Add the server

In Claude Code, keep the token in an environment variable and add the server with one command. Other developer tools take a JSON entry with the address and an Authorization header.

claude mcp add --transport http leavecalc

Ask

Run /mcp in Claude Code to see LeaveCalc and its tools. Then ask in plain words. The assistant asks before it uses a tool, unless you chose always allow.

Who is out this week in LeaveCalc?

What it can do

Nine tools, and one rule about sick leave

Six tools read. A token that can only read does not even see the other three.

  • who_is_out: who is on approved time off on a day or in a range of up to 93 days.
  • balances: time off left per leave type, for one person or for everyone.
  • list_requests: requests, filtered by status, dates or person.
  • list_people, company_policies and upcoming_holidays: the people, the leave types and the holidays.

Three tools change things, and only a token that can read and change, made by an owner, sees them.

  • request_time_off: asks for time off. It stays pending until someone approves it.
  • approve_request and deny_request: decide a pending request, with the same rules as the app.
# a token that can read sees 6 tools, a token that can change sees 9
tools/list  read token: 6 tools, write token: 9 tools

tool call  approve_request  with a read-only token
{
 "error": "insufficient_scope",
 "message": "This token can only read. Make a token that can read and write to use approve_request."
}

tool call  approve_request  with the wrong start date
{
 "error": "mismatch",
 "message": "mismatch: the employee and start_date you gave are not those of request 5. Nothing was changed. Look the request up with list_requests and check it with the user."
}
What the server really answers when a read-only token tries to approve, and when the start date is wrong. Demo company.

What it does

Guardrails built in

An assistant can be wrong or fooled. The server is built so that one wrong step cannot do much.

A token you control

Only owners make tokens, up to 10. Choose read, or read and change. Remove one and it stops at once. It also stops when its owner is removed.

Sick leave reads Time off

By default the assistant sees sick, FMLA and protected leave without the type and without the note, and it stays out of balances.

Approvals need proof

The assistant must give the employee and the start date as you named them. If they do not match, nothing happens and the answer does not say what the request is.

Every change is logged

A decision or a request made through the assistant is in Settings, Activity log, with the name of the token as who did it.

Rate limits

120 calls a minute for each token and 300 for the company. Past the limit the server answers 429 with a Retry-After header.

An open standard

MCP over Streamable HTTP, protocol versions 2026-07-28, 2025-11-25, 2025-06-18 and 2025-03-26, on the same address.

Privacy and security

What the assistant can and cannot reach

A token is a password for another tool. Treat it like one, and read this list before you connect an assistant to real people.

What it reads leaves LeaveCalc

Names, dates and balances go to the company that runs the assistant, under your agreement with them. Do not connect one you would not share your team calendar with.

Never available

Pay, attendance points, support messages, private manager notes and documents are not reachable through MCP at all.

Notes are data, not orders

A request note reaches the assistant labeled as untrusted text, cut to 200 characters. A note that says approve request 17 cannot supply the proof an approval needs.

Shared connectors need a read token

A connector an owner adds for a whole Claude organization has one header that every member uses. Use a token that can only read.

Keep the confirmation prompt on

Do not choose always allow for approve_request or deny_request. The prompt is the real protection against a hostile note.

Nobody approves their own request

A token acts with the rights of the owner who made it, and that owner cannot decide their own request through the assistant.

Read the full setup and safety guide

Which assistants work

Which assistants can connect today

LeaveCalc takes a fixed bearer token. It does not yet offer the sign-in with OAuth that some assistants insist on.

AssistantWorks today?What it takes
Claude CodeYesThe claude mcp add command with an Authorization header
Cursor, VS Code and similar toolsYesA headers setting in their MCP configuration. Check your tool's documentation
Claude on the web, Desktop and mobileOnly if your organization has the betaRequest headers in the custom connector dialog. Not every organization has it
ChatGPT custom connectorNot yetIt offers OAuth or no authentication, and no field for a token. LeaveCalc needs OAuth support first
OpenAI API and Anthropic APIIn principleA token in the authorization field. We have not tested it

Checked against each product's public documentation on October 7, 2026. These products change often, so check before you rely on a row.

Compare your options

Looking it up or asking

Opening the app is fine for one question. Asking is faster for the fifth.

What you needLooking it up yourselfLeaveCalc
Who is out next weekOpen the calendar and filterAsk, in one sentence
How many days someone has leftOpen Balances and find the personAsk by name
Asking for time offFill in the formSay it. The request stays pending until someone approves it
ApprovingOpen Requests and clickSay it, and the assistant asks you to confirm first
A record of what happenedThe activity logThe same log, with the name of the token

What this does not do yet

  • There is no OAuth. That is why ChatGPT cannot connect and why Claude on the web needs a beta feature. Adding it is a project of its own.
  • It is not listed in Claude's Connectors Directory or the ChatGPT app directory. Both have review processes that assume OAuth.
  • It offers tools only. There are no resources or prompts, and no streaming from the server to the assistant.
  • An assistant can be fooled by text it reads. Keep its confirmation prompt on for the tools that change things.

Pricing

Flat price by team size

One monthly price for the whole team, not a price per person. Prices are in US dollars. The employers page has the full plan details.

Free

$0per month

For teams up to 3 people

The AI assistant connection included

Pro

$15per month

For teams of 4 to 25 people

The AI assistant connection included

Business

$69per month

For teams of 26 to 100 people

The AI assistant connection included

Enterprise

$149per month

For teams of more than 100 people, no seat limit

The AI assistant connection included

No card for Free or the 14-day trial. Cancel any time, with a 30-day money-back guarantee on paid plans. Paying yearly costs ten months for twelve.

Start free

FAQ

Questions, answered plainly

MCP, the Model Context Protocol, is an open standard that AI assistants use to call tools in other products. LeaveCalc runs a remote MCP server at one address, so an assistant that speaks MCP can look up who is out, read balances and, with the right token, ask for time off.

Claude Code works today with a token, and Claude on the web, Desktop and mobile can connect only through Request headers, a beta that is open to a limited set of organizations, so check whether yours has it. ChatGPT cannot connect yet, because its custom connector offers OAuth or no authentication and has no field for a fixed token, and that needs OAuth support in LeaveCalc, which does not exist yet.

With a token that can read and change, made by an owner, yes, but it needs the request, the employee and the start date to match, it can never decide the owner's own request, it never overrides a blackout, and it cannot cancel approved time off. Both tools are marked destructive, so assistants that honor the hint ask you every time.

By default sick, FMLA and protected leave read Time off, without the leave type and without the note, and stay out of balances, while a token made with Include the type of sick and medical leave sees the type. Notes on sick and medical requests are never shown to any token.

What the assistant reads, such as names, dates and balances, goes to the company that runs the assistant, under your agreement with them, and LeaveCalc itself never uses customer data to train AI models. Do not connect an assistant you would not share your team calendar with.

Treat it like a password. Keep it in an environment variable, not in a file you share, and name it for the person or tool that uses it. Remove it in Settings, Integrations and it stops working at once, and it also stops when the owner who made it is removed or is no longer an owner.

120 calls a minute for each token and 300 a minute for all the tokens of one company. Past the limit the server answers 429 with a Retry-After header. You can have up to 10 tokens.

Also see

Give your assistant a read-only look at time off

Make a read-only token, add the server to Claude Code, and ask who is out this week.