# GiGa MCP

Connect to GiGa in one of two ways:

- **Worker OAuth MCP** — manage your profile, discover gigs, manage your applications, and handle referrals.
- **Admin Bearer MCP** — create and update gigs, set schedules, review applications, hire workers, and manage staffing. See https://giga.jobs/docs/admin.

- Documentation: https://giga.jobs/docs
- Production MCP endpoint: https://api.giga.jobs/mcp
- Support: support@giga.jobs

# Worker OAuth MCP

## Connect

1. Add `https://api.giga.jobs/mcp` to your MCP client.
2. Choose the worker connection and sign in to GiGa in your browser.
3. Ask the assistant to help with your profile, gigs, applications, or referrals.

```json
{
  "mcpServers": {
    "giga": {
      "url": "https://api.giga.jobs/mcp"
    }
  }
}
```

## What workers can do

- Read and complete their profile.
- Upload profile photos and certifications.
- Verify contact details and submit a profile for review.
- Discover open gigs.
- Apply, revise an application, or withdraw.
- Manage referral codes, invitations, attribution, and history.

## Safety

Worker tools stay with the connected worker. Important reads and changes ask for confirmation, and profile approval remains a human admin decision.

# Worker tool reference

## Profile & verification

Read and complete your own GiGa worker profile. Sensitive reads and high-impact profile changes remain confirmation-gated.

### `my_profile_read`

Privacy-minimized profile, completeness, missing fields, assets, and next steps.
- Example input: `{}`

### `my_profile_read_sensitive`

Contact, address, appearance, licence, social, and asset URL fields after explicit approval.

- Ask for worker confirmation before calling.
- Example input: `{ "confirmedByWorker": true }`

### `my_profile_update`

Updates worker-editable profile fields. Admin and verification-state fields are blocked.

- Ask for worker confirmation before calling.
- Example input: `{ "fields": { "city": "Austin", "availability_evening": true }, "confirmedByWorker": true }`

### `my_profile_photo_upload`

Uploads a headshot, full-body, candid, action, or verification image.

- Ask for worker confirmation before calling.
- Example input: `{ "category": "headshot", "dataUrl": "data:image/jpeg;base64,…", "confirmedByWorker": true }`

### `my_profile_photo_delete`

Deletes one photo owned by the connected worker.

- Ask for worker confirmation before calling.
- Example input: `{ "photoId": 42, "confirmedByWorker": true }`

### `my_profile_certification_upload`

Uploads an alcohol, cannabis, driver’s licence, or food-handler document for human review.

- Ask for worker confirmation before calling.
- Example input: `{ "category": "foodHandlers", "base64": "…", "mimeType": "image/jpeg", "confirmedByWorker": true }`

### `my_profile_certification_delete`

Deletes one certification owned by the connected worker.

- Ask for worker confirmation before calling.
- Example input: `{ "certificationId": 12, "confirmedByWorker": true }`

### `my_phone_verification_start`

Sends an OTP to the worker’s phone.
- Example input: `{ "phoneNumber": "+15125550142" }`

### `my_phone_verification_confirm`

Confirms the OTP provided by the worker.
- Example input: `{ "phoneNumber": "+15125550142", "code": "123456" }`

### `my_email_verification_start`

Sends an OTP to the authenticated worker email.
- Example input: `{}`

### `my_email_verification_confirm`

Confirms the email OTP provided by the worker.
- Example input: `{ "code": "123456" }`

### `my_profile_submit_for_verification`

Submits a complete profile for human approval. This never self-approves the account.

- Ask for worker confirmation before calling.
- Example input: `{ "confirmedByWorker": true }`

## Gigs & applications

Discover worker-visible gigs and act only on the connected worker’s own applications.

### `worker_gigs_discover`

Lists gigs accepting applications; drafts, expired gigs, and internal staffing data stay hidden.
- Example input: `{ "page": 1, "limit": 25 }`

### `worker_gig_read`

Reads one worker-visible gig. Closed gigs require an existing application.
- Example input: `{ "gigId": 184 }`

### `my_applications_list`

Lists only the connected worker’s applications, optionally filtered by status.
- Example input: `{ "page": 1, "limit": 25, "status": "pending" }`

### `my_application_read`

Reads the connected worker’s application for one gig.
- Example input: `{ "gigId": 184 }`

### `my_application_apply`

Creates or revises an application to an open gig. Hired applications cannot change.

- Ask for worker confirmation before calling.
- Example input: `{ "gigId": 184, "applyMode": "primary-all", "shiftIds": [901], "confirm": true }`

### `my_application_withdraw`

Permanently withdraws an application before hiring.

- Ask for worker confirmation before calling.
- Example input: `{ "gigId": 184, "confirm": true }`

## Referrals

Manage the connected worker’s code, invitations, attribution, history, and reward totals.

### `my_referral_code_read`

Returns the worker’s personal referral code and invite URL.
- Example input: `{}`

### `my_referral_code_update`

Claims a unique 3–20 character custom referral code.

- Ask for worker confirmation before calling.
- Example input: `{ "code": "JORDAN20", "confirm": true }`

### `my_referral_invite`

Creates one email or phone invitation with an external communication side effect.

- Ask for worker confirmation before calling.
- Example input: `{ "email": "friend@example.com", "confirm": true }`

### `referral_code_validate`

Returns public referrer display information and reward amounts.
- Example input: `{ "code": "JORDAN20" }`

### `my_referral_apply`

One-time attribution of a referral code to the connected account.

- Ask for worker confirmation before calling.
- Example input: `{ "referralCode": "JORDAN20", "confirm": true }`

### `my_referrals_list`

Privacy-safe referral history without recipient contact or admin-payment data.
- Example input: `{ "page": 1, "limit": 50 }`

### `my_referral_stats`

Returns the connected worker’s referral and reward totals.
- Example input: `{}`
