Back to Browse

Afkbot MCP Server

Developer ToolsModerate5.3MCP RegistryLocal
Free

Server data from the Official MCP Registry

MCP server for AFKBot PTO management — file, list, and cancel time-off requests.

About

MCP server for AFKBot PTO management — file, list, and cancel time-off requests.

Security Report

5.3
Moderate5.3Moderate Risk

AFKBot MCP server is well-structured with proper authentication via Azure AD client credentials and appropriate scope of permissions. The server implements secure token handling with caching and expiration logic. Minor code quality issues exist around input validation and error handling, but these do not constitute security vulnerabilities. Permissions (network_http, env_vars) align appropriately with the server's purpose as a PTO management integration tool. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity).

7 files analyzed · 7 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Azure AD tenant ID hosting the AFKBot app registrationOptional

Environment variable: AZURE_TENANT_ID

Client ID of the app registration used to authenticate to AFKBotOptional

Environment variable: AZURE_CLIENT_ID

Client secret for the AFKBot app registrationRequired

Environment variable: AZURE_CLIENT_SECRET

AFKBot API base URL — defaults to the production endpoint if omittedOptional

Environment variable: AFKBOT_API_URL

AFKBot Easy Auth app client ID (audience) — defaults to productionOptional

Environment variable: AFKBOT_APP_CLIENT_ID

Transport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.Optional

Environment variable: MCP_TRANSPORT

Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.Optional

Environment variable: AUTH_MODE

Log verbosity: debug, info, warn, errorOptional

Environment variable: LOG_LEVEL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-wyre-technology-afkbot-mcp": {
      "env": {
        "AUTH_MODE": "your-auth-mode-here",
        "LOG_LEVEL": "your-log-level-here",
        "MCP_TRANSPORT": "your-mcp-transport-here",
        "AFKBOT_API_URL": "your-afkbot-api-url-here",
        "AZURE_CLIENT_ID": "your-azure-client-id-here",
        "AZURE_TENANT_ID": "your-azure-tenant-id-here",
        "AZURE_CLIENT_SECRET": "your-azure-client-secret-here",
        "AFKBOT_APP_CLIENT_ID": "your-afkbot-app-client-id-here"
      },
      "args": [
        "-y",
        "afkbot-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

afkbot-mcp

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

VariableRequiredDescription
AZURE_TENANT_IDYesAzure AD tenant ID (d92c73a4-ccc2-4277-8c5d-73c2849adfa4)
AZURE_CLIENT_IDYesYour MCP server's app registration client ID
AZURE_CLIENT_SECRETYesYour MCP server's app registration client secret
AFKBOT_API_URLNoAFKBot API URL (defaults to production)
AFKBOT_APP_CLIENT_IDNoAFKBot 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.

ParameterTypeRequiredDescription
employee_emailstringYesEmployee email address
request_typestringYesfull_day or partial_day
start_datestringYesStart date (YYYY-MM-DD)
end_datestringNoEnd date (defaults to start_date)
start_timestringNoStart time for partial day (HH:MM)
end_timestringNoEnd time for partial day (HH:MM)
detailsstringNoReason or notes

list_pto_requests

List PTO requests with optional filters.

ParameterTypeRequiredDescription
statusstringNopending, approved, declined, or all
employee_emailstringNoFilter by employee
limitnumberNoMax results (default: 25)
offsetnumberNoPagination offset

get_pto_request

Get details of a specific request.

ParameterTypeRequiredDescription
request_idstringYesThe PTO request ID

cancel_pto_request

Cancel a pending or approved request.

ParameterTypeRequiredDescription
request_idstringYesThe PTO request ID
reasonstringNoReason for cancellation

team_calendar

View who's out on a given date range.

ParameterTypeRequiredDescription
start_datestringYesStart date (YYYY-MM-DD)
end_datestringNoEnd 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

Reviews

No reviews yet

Be the first to review this server!