Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Gusto in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI read your Gusto payroll and HR data: the company, its locations and admins, employees with their jobs and pay rates, contractors, departments, pay schedules and pay periods, processed payrolls with totals, contractor payments, time off policies and requests, earning types and benefits. Read-only for payroll; it can only create and rename departments. Gusto OAuth sign-in, demo or production.
Try asking
Example prompts for Gusto
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Gusto, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Gusto + Cursor
Let your AI read your Gusto payroll and HR data: the company, its locations and admins, employees with their jobs and pay rates, contractors, departments, pay schedules and pay periods, processed payrolls with totals, contractor payments, time off policies and requests, earning types and benefits. Read-only for payroll; it can only create and rename departments. Gusto OAuth sign-in, demo or production.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
GUSTO_CLIENT_ID, GUSTO_CLIENT_SECRET, GUSTO_API_URL
Step 1 — Get credentials
- Create a free account on the Gusto Developer Portal at
https://dev.gusto.comand create an application. A new application starts in the demo environment, which runs against test companies. - In the application settings, add the redirect URI
https://cloud.anythingmcp.com/api/mcp-oauth/callback(if you host AnythingMCP yourself:<your AnythingMCP URL>/api/mcp-oauth/callback). Demo redirect URIs can be edited in the portal; for a production application, Gusto changes them on request. - Copy the application's Client ID and Secret into
GUSTO_CLIENT_IDandGUSTO_CLIENT_SECRET. - Set
GUSTO_API_URLtohttps://api.gusto-demo.comfor a demo application, or tohttps://api.gusto.comonce Gusto has approved your application for production. The keys only work in their own environment. - To try it first, create a demo company in the Developer Portal. It comes with sample employees, contractors and payrolls.
- Install the connector, click Authorize with Provider and sign in to Gusto as a primary or full-access admin. Gusto asks which company to connect: one authorization covers one company, so install the connector again for a second one.
- Run
gusto_get_token_info. It shows the company the other tools work on and what your application may read.
Payroll is read-only: the AI reads payrolls with totals, taxes and deductions per employee, pay schedules, pay periods and contractor payments, but it cannot prepare, calculate, submit or cancel a payroll, pay contractors, add or terminate employees or change pay. The only changes it can make are creating a department (gusto_create_department) and renaming one (gusto_update_department, switched off at install), and it confirms both with you first.
What it reads: the company, its locations and admins, employees with their jobs, pay rates and employment history, contractors, departments, time off policies with balances, time off requests, earning types and company benefits. Payroll lists default to processed regular payrolls of the last six months, with up to one year per request.
Permissions come from Gusto: you do not pick scopes at sign-in. Gusto assigns them to your application, broadly in the demo environment and in production after its review. Pay rates need the compensations:read scope, and benefits with health information need the :phi scopes. A call outside your application's scopes answers 403.
Tokens: access tokens last two hours and are renewed automatically. Gusto replaces the refresh token on every renewal, so do not use the same authorization in another tool at the same time: one of the two would have to sign in again.
Common errors: 401 means the authorization was revoked, so click Authorize with Provider again. 403: your application lacks the scope, or the company is not the one you authorized. 406: the API version the connector sends is outside what your application allows (the Developer Portal shows its minimum version). 429: more than 200 requests in a minute, so wait a minute.
The connector does not run payroll, pay contractors, onboard or terminate people, change pay or benefits, or read tax forms and documents. Gusto Embedded is a different product and is not covered.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Cursor
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Cursor reads MCP servers from ~/.cursor/mcp.json. Add this entry:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart Cursor.
- Open Cursor → Settings → MCP and check that
anythingmcpis listed and connected. - Start chatting: the agent can now call the
Gustotools.
Available tools
| Tool | What it does |
|---|---|
gusto_get_token_info | Read what this authorization reaches: resource.type and resource.uuid (the company UUID every company tool needs as company_uuid)… |
gusto_get_company | Read the company: name, trade_name, ein, entity_type, company_status, tier, is_suspended, pay_schedule_type, join_date, funding_type… |
gusto_list_locations | List the company's addresses: street, city, state, zip, phone_number and whether each is a mailing address, filing address or active work… |
gusto_list_company_admins | List the company's Gusto admins with uuid, first_name, last_name and email (scope company_admin:read) |
gusto_list_employees | List the company's employees (onboarding, active and terminated) with uuid, name, email, department, onboarding status, terminated… |
gusto_get_employee | Read one employee by UUID: name, email, work_email, phone, date_of_birth, title, department, manager_uuid, hired_at… |
gusto_get_employment_history | Read an employee's employment history: every hire, termination and rehire with its dates and employment status (scope employments:read) |
gusto_list_job_compensations | List the compensations of one job: rate, payment_unit (Hour, Week, Month, Year, Paycheck), flsa_status and effective_date |
gusto_list_contractors | List the company's contractors, individual and business, active and inactive: uuid, type, name or business_name, email, wage_type (Fixed or… |
gusto_get_contractor | Read one contractor by UUID: type, names or business name, email, wage_type, hourly_rate, start_date, is_active, address and department… |
gusto_list_departments | List the company's departments with uuid, title, version and the employees and contractors assigned to each (scope departments:read) |
gusto_get_department | Read one department by UUID: title, its current version (needed by gusto_update_department) and its employees and contractors (scope… |
gusto_create_department | Create a department in the company |
gusto_update_department | Rename a department |
gusto_list_pay_schedules | List the company's pay schedules: uuid, frequency (Every week, Every other week, Twice per month, Monthly...), anchor_pay_date… |
gusto_list_pay_periods | List pay periods with start_date, end_date, pay_schedule_uuid and the payroll of each (check date, processed or not) |
gusto_list_payrolls | List the company's payrolls: payroll_uuid, pay_period, check_date, processed, off_cycle, off_cycle_reason, external and, with… |
gusto_get_payroll | Read one payroll: pay period, check_date, processed, totals and, once calculated or processed, employee_compensations[] per employee… |
gusto_list_contractor_payments | List contractor payments between two dates, newest first, with totals: per payment the contractor_uuid, date, wage, hours, bonus… |
gusto_get_contractor_payment | Read one contractor payment by UUID: contractor_uuid, date, wage, hours, hourly_rate, bonus, reimbursement, wage_total, payment_method… |
gusto_list_time_off_policies | List the company's time off policies (vacation, sick and custom): uuid, name, policy_type, accrual_method, accrual rate and limits… |
gusto_get_time_off_policy | Read one time off policy by UUID, with its accrual rules and employees[] carrying each employee's current balance (scope… |
gusto_list_time_off_requests | List time off requests of the company, past and future: employee, request_type, policy_type and policy_uuid, status (pending, approved… |
gusto_list_earning_types | List the company's earning types, split into default (regular wages, overtime, bonus, commission and others with their own tax treatment)… |
gusto_list_company_benefits | List the benefits the company offers: uuid, benefit_type, description, active, source, partner_name and, with enrollment_count=true, how… |
Example prompts
- "Sum up our last processed payroll: gross pay, taxes and net pay per employee."
- "Who is off next week, and which time off requests are still pending?"
- "List our active contractors and what we paid each of them this quarter."
- "How many employees do we have per department, and who joined in the last 90 days?"
FAQ
Does Cursor support custom MCP servers on the free tier? Yes, MCP is available on Hobby, Pro and Business plans.
Next steps
Was this guide helpful?