Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Afkbot

FreeNot checked

MCP server for AFKBot PTO management that allows users to file and manage time-off requests from any MCP-compatible client.

GitHubEmbed

About

MCP server for AFKBot PTO management that allows users to file and manage time-off requests from any MCP-compatible client.

README

MCP server for AFKBot PTO management — file time-off requests from any MCP client.

Architecture

┌──────────────┐     stdio      ┌──────────────┐    HTTPS     ┌──────────────┐
│  MCP Client  │◄──────────────►│ afkbot-mcp   │◄────────────►│  AFKBot API  │
│ (Claude, etc)│                │  MCP Server   │   Bearer JWT │ (Azure ACA)  │
└──────────────┘                └──────────────┘              └──────┬───────┘
                                                                     │
                                                    ┌────────┬───────┼────────┐
                                                    │        │       │        │
                                                  Float  Outlook  Autotask  Rootly

AFKBot orchestrates PTO requests across Float, Outlook Calendar, Autotask, and Rootly. This MCP server wraps its REST API so any MCP-compatible client can file and manage time-off requests.

Quick Start

Environment Variables

Variable Required Description
AZURE_TENANT_ID Yes Azure AD tenant ID (d92c73a4-ccc2-4277-8c5d-73c2849adfa4)
AZURE_CLIENT_ID Yes Your MCP server's app registration client ID
AZURE_CLIENT_SECRET Yes Your MCP server's app registration client secret
AFKBOT_API_URL No AFKBot API URL (defaults to production)
AFKBOT_APP_CLIENT_ID No AFKBot Easy Auth client ID (defaults to production)

Run Locally

npm ci
npm run build
node dist/index.js

Run with Docker

docker compose up --build

Claude Desktop / Claude Code Config

{
  "mcpServers": {
    "afkbot": {
      "command": "node",
      "args": ["/path/to/afkbot-mcp/dist/index.js"],
      "env": {
        "AZURE_TENANT_ID": "d92c73a4-ccc2-4277-8c5d-73c2849adfa4",
        "AZURE_CLIENT_ID": "your-app-client-id",
        "AZURE_CLIENT_SECRET": "your-app-client-secret"
      }
    }
  }
}

Available Tools

create_pto_request

File a new PTO request.

Parameter Type Required Description
employee_email string Yes Employee email address
request_type string Yes full_day or partial_day
start_date string Yes Start date (YYYY-MM-DD)
end_date string No End date (defaults to start_date)
start_time string No Start time for partial day (HH:MM)
end_time string No End time for partial day (HH:MM)
details string No Reason or notes

list_pto_requests

List PTO requests with optional filters.

Parameter Type Required Description
status string No pending, approved, declined, or all
employee_email string No Filter by employee
limit number No Max results (default: 25)
offset number No Pagination offset

get_pto_request

Get details of a specific request.

Parameter Type Required Description
request_id string Yes The PTO request ID

cancel_pto_request

Cancel a pending or approved request.

Parameter Type Required Description
request_id string Yes The PTO request ID
reason string No Reason for cancellation

team_calendar

View who's out on a given date range.

Parameter Type Required Description
start_date string Yes Start date (YYYY-MM-DD)
end_date string No End date (defaults to start_date)

Auth Setup

This MCP server authenticates to AFKBot using Azure AD client credentials. You need to create an app registration:

  1. Create an App Registration in Azure AD (Entra ID)

    • Go to Azure Portal → Entra ID → App registrations → New registration
    • Name: afkbot-mcp (or your choice)
    • Supported account types: Single tenant
  2. Create a Client Secret

    • In the app registration → Certificates & secrets → New client secret
    • Copy the secret value
  3. Grant API Permissions

    • In the app registration → API permissions → Add a permission
    • Select "APIs my organization uses" → search for AFKBot (17963178-bee5-4738-82a3-088e739bb95b)
    • Add the appropriate permissions
    • Grant admin consent
  4. Set Environment Variables using the values from the app registration

WYRE Ecosystem

This is part of the WYRE Technology MCP server suite:

  • autotask-mcp — Kaseya Autotask PSA integration
  • afkbot-mcp (this repo) — PTO management via AFKBot

License

MIT — Copyright (c) 2025 Aaron Sachs

from github.com/wyre-technology/afkbot-mcp

Installing Afkbot

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/wyre-technology/afkbot-mcp

FAQ

Is Afkbot MCP free?

Yes, Afkbot MCP is free — one-click install via Unyly at no cost.

Does Afkbot need an API key?

No, Afkbot runs without API keys or environment variables.

Is Afkbot hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Afkbot in Claude Desktop, Claude Code or Cursor?

Open Afkbot on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Afkbot with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs