1. Conduid
  2. Developer Tools
  3. BambooHR MCP
MCP server · Developer Tools

BambooHR MCP

A Model Context Protocol (MCP) library for BambooHR, built with Node.js and TypeScript.

Unclaimed MIT last commit a year ago devtools
54Fair

Scored 11 days ago · breakdown

About BambooHR MCP

BambooHR MCP is an MCP server published by encoreshao in the Developer Tools category: a Model Context Protocol (MCP) library for BambooHR, built with Node.js and TypeScript.

The repository has 4 stars and 2 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/encoreshao/bamboohr-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about BambooHR MCP

Powered by Claude · Grounded in docs

I know everything about BambooHR MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 4 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

BambooHR MCP

A Model Context Protocol (MCP) library for BambooHR, built with Node.js and TypeScript. This library provides a clean, type-safe interface to interact with the BambooHR API from your Node.js or TypeScript applications.

Features

  • TypeScript types for all models and API responses
  • Simple, promise-based API for all major BambooHR endpoints
  • Easy to extend and integrate into your own projects

Installation

# Clone the repository
git clone https://github.com/encoreshao/bamboohr-mcp.git

# Navigate to the project directory
cd bamboohr-mcp

# Install dependencies
npm install

Usage

import {
  BambooHRApi,
  fetchWhosOut,
  fetchProjects,
  submitWorkHours,
  getMe,
  fetchEmployeeDirectory,
  fetchTimeEntries,
} from "bamboohr-mcp";

const token = process.env.BAMBOOHR_TOKEN!;
const companyDomain = process.env.BAMBOOHR_COMPANY_DOMAIN!;
const employeeID = process.env.BAMBOOHR_EMPLOYEE_ID!;

// List all employees with name, email, and job title
const directory = await fetchEmployeeDirectory(token, companyDomain);
directory.employees.forEach((emp) => {
  console.log(`${emp.displayName} — ${emp.workEmail} — ${emp.jobTitle}`);
});

// Fetch "who's out today"
const whosOut = await fetchWhosOut(token, companyDomain);
whosOut.forEach((out) => {
  console.log(`${out.employeeName}: ${out.startDate} to ${out.endDate}`);
});

// Submit work hours (find project/task IDs first)
const projects = await fetchProjects(token, companyDomain, employeeID);
const bambooHR = projects.find((p) => p.name.includes("BambooHR"));
const devTask = bambooHR?.tasks.find((t) => t.name.includes("Development"));
if (bambooHR && devTask) {
  await submitWorkHours(
    token,
    companyDomain,
    employeeID,
    bambooHR.id,
    devTask.id,
    "2024-06-01",
    1,
    "Development work on BambooHR"
  );
}

API

All methods return Promises and use the types defined in src/utils/models.d.ts.

  • BambooHRApi class: Encapsulates all API methods.
  • Helper functions: fetchWhosOut, fetchProjects, submitWorkHours, getMe, fetchEmployeeDirectory, fetchTimeEntries.

Environment Variables

You can pass your BambooHR API token and company domain directly to the methods, or use environment variables:

Required:

  • BAMBOOHR_TOKEN — Your BambooHR API token
  • BAMBOOHR_COMPANY_DOMAIN — Your BambooHR company domain (the part before .bamboohr.com)
  • BAMBOOHR_EMPLOYEE_ID — Your BambooHR employee ID

Creating a BambooHR API Token

To use this library, you'll need to create a BambooHR API token:

  1. Log in to your BambooHR account
  2. Click on your profile picture in the bottom-left corner
  3. Select "API Keys" from the dropdown menu
  4. Click "Add New Key"
  5. Enter a API Key Name for your key (e.g., "MCP Server"), and click "Generate Key"
  6. Copy the generated token immediately (it will only be shown once)

Finding Your Company Domain

Your company domain is the subdomain used in your BambooHR URL:

  • If you access BambooHR at https://yourcompany.bamboohr.com, then your company domain is yourcompany
  • This value should be used for the BAMBOOHR_COMPANY_DOMAIN environment variable or passed directly to the API methods

Getting Your Employee ID

You can find your employee ID in several ways:

  1. From your profile URL: When viewing your profile, the URL will contain your employee ID (e.g., https://yourcompany.bamboohr.com/employees/employee.php?id=123)

Example .env file:

BAMBOOHR_TOKEN=your_api_token_here
BAMBOOHR_COMPANY_DOMAIN=yourcompany
BAMBOOHR_EMPLOYEE_ID=123

Extending

Add new methods in src/apis/bamboohr.ts and export them from src/index.ts.

Contributors

License

This project is licensed under the MIT License. See the LICENSE file for details.

README fetched from the repository 4 days ago. The original is authoritative.

Questions

About BambooHR MCP

How do I install BambooHR MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is BambooHR MCP safe to use with an AI agent?

Its trust score is 54 out of 100 (fair). It passes 4 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is BambooHR MCP still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.