BambooHR MCP Server
A complete Model Context Protocol (MCP) server for BambooHR with 47 tools and 18 React-based UI apps.
Features
🔧 47 MCP Tools
Employee Management (9 tools)
list_employees- List all employees with filteringget_employee- Get detailed employee informationcreate_employee- Create new employee recordsupdate_employee- Update employee informationget_employee_directory- Get full employee directoryget_custom_fields- List all custom fieldsget_employee_field_values- Get specific field valuesget_employee_photo- Download employee photosupload_employee_photo- Upload employee photos
Time Off (8 tools)
list_time_off_requests- List time off requests with filteringget_time_off_request- Get specific request detailscreate_time_off_request- Create new time off requestsupdate_time_off_request_status- Approve/deny requestslist_time_off_policies- List all policiesget_time_off_balances- Get employee balanceslist_time_off_types- List all time off typesestimate_future_balance- Estimate future balances
Reports (3 tools)
run_custom_report- Run custom reports with filterslist_reports- List all available reportsget_company_report- Get standard company reports
Tables (4 tools)
list_tables- List all custom tablesget_table_rows- Get table dataadd_table_row- Add new table rowsupdate_table_row- Update table rows
Benefits (4 tools)
list_benefit_plans- List all benefit plansget_benefit_plan- Get plan detailslist_benefit_enrollments- List employee enrollmentslist_benefit_dependents- List dependents
Payroll (3 tools)
list_pay_stubs- List employee pay stubsget_payroll_data- Get payroll informationlist_payroll_deductions- List deductions
Goals (6 tools)
list_goals- List employee goalsget_goal- Get goal detailscreate_goal- Create new goalsupdate_goal- Update goalsclose_goal- Close/complete goalslist_goal_comments- List goal comments
Training (6 tools)
list_training_courses- List coursesget_training_course- Get course detailscreate_training_course- Assign coursesupdate_training_course- Update assignmentslist_training_categories- List categorieslist_training_types- List training types
Files (4 tools)
list_employee_files- List employee filesget_employee_file- Download filesupload_employee_file- Upload fileslist_file_categories- List file categories
Webhooks (3 tools)
list_webhooks- List all webhookscreate_webhook- Create new webhooksdelete_webhook- Delete webhooks
🎨 18 React UI Apps
- employee-dashboard - Overview dashboard with key metrics
- employee-directory - Searchable employee directory
- employee-detail - Detailed employee profile view
- time-off-calendar - Visual time off calendar
- time-off-requests - Request management interface
- time-off-balances - Balance tracking and accrual
- benefits-overview - Benefits summary
- benefits-enrollment - Step-by-step enrollment wizard
- payroll-dashboard - Payroll overview and pay stubs
- goal-tracker - Goal management and progress
- training-catalog - Available courses catalog
- training-progress - Course progress and certifications
- file-manager - Document management
- org-chart - Visual organization chart
- headcount-analytics - Workforce analytics
- turnover-report - Turnover tracking and analysis
- new-hires - New hire tracking and onboarding
- report-builder - Custom report builder
- custom-report - Custom report viewer
Installation
npm install
Configuration
Set the following environment variables:
export BAMBOOHR_COMPANY_DOMAIN="your-company"
export BAMBOOHR_API_KEY="your-api-key"
Usage
As MCP Server
npm run build
npm start
Claude Desktop Configuration
Add to claude_desktop_config.json:
{
"mcpServers": {
"bamboohr": {
"command": "node",
"args": ["/path/to/bamboohr/dist/main.js"],
"env": {
"BAMBOOHR_COMPANY_DOMAIN": "your-company",
"BAMBOOHR_API_KEY": "your-api-key"
}
}
}
}
API Reference
BambooHR API v1
Base URL: https://api.bamboohr.com/api/gateway.php/{companyDomain}/v1/
Authentication: Basic Auth with API key as username, "x" as password
Architecture
src/
├── clients/
│ └── bamboohr.ts # API client with error handling
├── tools/
│ ├── employees-tools.ts # Employee management tools
│ ├── time-off-tools.ts # Time off tools
│ ├── reports-tools.ts # Reporting tools
│ ├── tables-tools.ts # Custom tables tools
│ ├── benefits-tools.ts # Benefits tools
│ ├── payroll-tools.ts # Payroll tools
│ ├── goals-tools.ts # Goals tools
│ ├── training-tools.ts # Training tools
│ ├── files-tools.ts # File management tools
│ └── webhooks-tools.ts # Webhook tools
├── types/
│ └── index.ts # TypeScript type definitions
├── ui/
│ └── react-app/ # 18+ React UI components
├── server.ts # MCP server implementation
└── main.ts # Entry point
Development
# Watch mode
npm run dev
# Build
npm run build
# Start
npm start
Error Handling
The client includes comprehensive error handling for:
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 429 Rate Limit
- 500 Internal Server Error
- Network errors
All errors are returned in a consistent format:
{
"success": false,
"error": "Error message",
"status": 400
}
Resources
The server exposes two MCP resources:
bamboohr://employees- Employee directorybamboohr://time-off- Time off requests
License
MIT
Contributing
Contributions welcome! Please ensure all tools follow the established patterns and include proper error handling.
Support
For BambooHR API documentation, visit: https://documentation.bamboohr.com/docs