afkbot-mcp

afkbot-mcp

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

Category
Visit Server

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

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

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