# Gusto MCP connector

The Gusto connector lets Claude, ChatGPT, Cursor, or any MCP client look up employees, contractors, departments, and benefits in Gusto through one governed Elaichi endpoint, with every request running as the signed-in person and recorded in an audit log.

Source: https://elaichi.ai/connectors/gusto/

## Facts

| | |
| --- | --- |
| Application | Gusto |
| Category | HRIS |
| AI tools | 22 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Gusto is connected

- List employees in the Engineering department with their job titles.
- Which contractors were added to Gusto this quarter?
- Show company benefits and how many employees are enrolled.

## Connect Gusto in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Gusto.
2. Optionally set Share with, then press Connect.
3. Approve it in Gusto. Gusto's own window opens. Whoever approves it decides what this connection can reach.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Gusto tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Gusto to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Gusto to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Gusto to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Gusto to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Gusto tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Gusto through Elaichi

### Answer employee questions without opening Gusto

People ops. Ask which department someone sits in, what their work address is, or what a custom field says, and get the answer from the live Gusto record in your chat window.

### Enroll a new hire in company benefits

Benefits. Pull up the company benefit plans in Gusto, add the new employee to the right ones, and adjust an enrollment later when their situation changes.

### Reconcile contractors against what was paid

Finance. List every active contractor in Gusto and compare them to your vendor records before month end, so nobody gets paid twice or missed.

### Build the offboarding list from terminations

IT. Ask for everyone whose termination is recorded in Gusto this week and hand the list straight to the people who revoke laptops and accounts.

### See who reports where across departments

Managers. Get a headcount by department from Gusto, or a list of everyone in one team, before a planning meeting or a reorg conversation.

### Plan offices around real work addresses

Operations. Pull employee work and home addresses from Gusto to see how many people sit in each location and who is remote before choosing a new office or a team offsite.

## Frequently asked questions

### How do I connect Gusto to Claude?

First connect Gusto in Elaichi, which opens Gusto's own sign-in page where you authorize access as yourself, with no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Claude asks you to sign in to Elaichi once, and Gusto is available in your conversations from then on.

### Does Gusto work with ChatGPT and Cursor as well as Claude?

Yes. Once Gusto is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Gusto once and use it from whichever client you happen to be in.

### What can an AI agent actually do with my Gusto data?

With Gusto connected, an agent can look up employees and contractors, find their departments, home and work addresses, and custom fields, and pull the list of recorded terminations. It can read the company's benefit plans and each employee's enrollments, and it can enroll an employee in a benefit or update an existing enrollment. It cannot run payroll or create new employees through this connector.

### Does connecting Gusto give the AI access to everyone's records?

No. Every request to Gusto runs inside the access of the person who signed in, so an agent sees exactly what that person could see in Gusto and nothing more. Elaichi can narrow that further with per-action restrictions, but it can never widen access beyond what Gusto already grants that person.

### Can my team share one Gusto connection?

Yes. One person connects Gusto in Elaichi and shares the connection with a team, and nobody else ever handles a Gusto credential. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person behind every Gusto request.

### Can I stop an agent from deleting or changing things in Gusto?

Yes. Restrictions in Elaichi apply per action, so you can allow reading employees and benefits from Gusto while blocking benefit enrollments or changes to notification subscriptions. A blocked action is never shown to Claude, ChatGPT, or any other client, so no prompt, however worded, can reach it.

### What happens to a Gusto connection when someone leaves?

Offboarding a person in Elaichi ends their access to Gusto through every connected client at once. If they had shared a Gusto connection with a team, it keeps working for everyone else. Disconnecting Gusto once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 22 Gusto tools

Every tool below is callable through https://api.elaichi.ai/mcp once Gusto is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Gusto me** (List). Get the current authenticated user's profile in Gusto. Returns: version, email.
- **Get single Gusto company by ID** (Get). Get a single Gusto company by id. Returns the full company object including uuid, name, trade_name, ein, entity_type, company_status, locations, compensations, primary_signatory, and primary_payroll_admin. Required: id.
- **List all Gusto company custom fields** (List). List custom fields for a company in Gusto. Returns: uuid, name, type, description, selection_options. Required: company_id.
- **List all Gusto departments** (List). List all departments for a company in Gusto. Returns each department including uuid and title. Required: company_id.
- **Get single Gusto department by ID** (Get). Get a single Gusto department by id. Returns the department object including uuid and title. Required: id.
- **List all Gusto company benefits** (List). List company benefits for a Gusto company, optionally filtered by active status or benefit type. Returns: company_uuid, errors. Required: company_id.
- **Get single Gusto company benefit by ID** (Get). Get a single company benefit by id in Gusto. Returns: company_uuid, errors. Required: id.
- **List all Gusto employees** (List). List Gusto employees for a company. Returns: errors. Required: company_id. Supports optional sort_by parameter (e.g. name:desc, last_name:asc,first_name:asc).
- **Get single Gusto employee by ID** (Get). Get a single Gusto employee by id. Returns: errors. Required: id.
- **List all Gusto employee terminations** (List). List all termination records for a specific Gusto employee. Returns: errors. Required: employee_id.
- **List all Gusto contractors** (List). List Gusto contractors for a company with optional search, sorting, and onboarding/termination filters. Returns: uuid, company_uuid, wage_type, start_date, is_active, version, type, first_name, last_name, middle_initial, business_name, ein, has_ein, has_ssn, department_uuid, email, work_email, file_new_hire_report, work_state, onboarded, onboarding_status, address, hourly_rate, payment_method,…
- **Get single Gusto contractor by ID** (Get). Get a single Gusto contractor by id. Returns: uuid, company_uuid, wage_type, start_date, is_active, version, type, first_name, last_name, middle_initial, business_name, ein, has_ein, has_ssn, department_uuid, email, work_email, file_new_hire_report, work_state, onboarded, onboarding_status, address, hourly_rate, payment_method, department, department_title, dismissal_date, upcoming_employment,…
- **List all Gusto employee benefits** (List). List all employee benefits for a specific employee in Gusto. Returns: errors. Required: employee_id.
- **Create a Gusto employee benefit** (Create). Create one or more employee benefits for a specific employee in Gusto. Returns: errors. Required: employee_id.
- **Update a Gusto employee benefit by ID** (Update). Update a single employee benefit in Gusto by id. Returns: errors. Required: id.
- **List all Gusto benefits** (List). List all benefit types available in Gusto. Returns: benefit_type, name, description, pretax, posttax, imputed, healthcare, retirement, yearly_limit, category.
- **List all Gusto employee home addresses** (List). List all home addresses for a specific Gusto employee. Returns: errors. Required: employee_id.
- **List all Gusto employee work addresses** (List). List work addresses for a Gusto employee. Returns: errors. Required: employee_id.
- **List all Gusto webhook subscription** (List). List webhook subscriptions in Gusto. Returns: uuid, url, subscription_types, status.
- **Create a Gusto webhook subscription** (Create). Create a webhook subscription in Gusto with an initial set of subscription types. Returns: uuid, url, subscription_types, status. New subscriptions start in pending status and require verification before receiving events. Required: integrated_account_id.
- **Delete a Gusto webhook subscription by ID** (Delete). Delete a Gusto webhook subscription by id. Returns an empty 204 response on success. Required: id.
- **Gusto webhook subscription verify** (Verify). Verify a Gusto webhook subscription by submitting the verification_token Gusto sent to your webhook URL, confirming the endpoint and enabling webhook event delivery. Returns: uuid, event_type, resource_type, resource_uuid, entity_type, entity_uuid, timestamp. Required: webhook_subscription_uuid, verification_token.
