# Raken MCP connector

The Raken connector brings your Raken projects, time cards, work logs, materials and equipment logs to Claude, ChatGPT, Cursor and the Elaichi Agent, so each person can ask about them and keep them current inside their own Raken access.

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

## Facts

| | |
| --- | --- |
| Application | Raken |
| Category | Time Tracking |
| AI tools | 52 |
| Authentication | Connects over OAuth |
| Bring your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Raken is connected

- Which Raken projects logged the most hours this week?
- Summarize yesterday's work logs for the Riverside project.
- List time cards missing a pay type for last Friday.

## Connect Raken in Elaichi

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

1. Open Connections, choose Add connection, and pick Raken.
2. Optionally set Share with, then press Connect.
3. Supply your own Raken app, then approve. Raken needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

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

## Raken MCP connector for 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.

## Raken MCP connector for 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.

## Raken MCP connector for 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 Raken 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

Every scope the client asks for starts ticked except "Delete data and remove access", which you tick yourself. Calling a Raken tool needs "Run your connected tools". 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. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Raken through Elaichi

### Catch up on yesterday's work logs

Field operations. Ask what crews logged across every active Raken project yesterday and get a plain summary before the morning huddle. Follow up on any site that logged nothing.

### Check time cards before the pay run

Payroll. Pull the week's Raken time cards by project and pay type, spot missing days or odd hours, and resolve them before payroll closes.

### Set up a new project in minutes

Project management. Create the Raken project, confirm its child projects and budgets, and update the details as the scope changes, without clicking through every screen.

### See what materials sites are using

Procurement. Ask which materials and units were logged on a project this month and compare them with the budget to catch overruns early.

### Know where equipment hours are going

Equipment. Review Raken equipment logs across projects to see which machines are idle, which are overworked, and where to move them next.

### Review project notes and insights

Safety and quality. Read the latest Raken project notes and production insights for a site and pull out the issues a superintendent needs to address today.

## Elaichi vs Zapier MCP vs Composio for Raken

All three can connect Raken to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over Raken tools | Allow or restrict single Raken tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per Raken call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect Raken to Claude?

Connect Raken in Elaichi first, then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Raken requires an OAuth application registered inside Raken itself, so one person brings that client ID and secret once when connecting, and nobody has to handle it again. After that, each person signs in to Raken as themselves.

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

Yes. Raken is connected to Elaichi once, and the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any MCP client and the Elaichi Agent. There is nothing extra to set up per client.

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

An agent can list and summarize your Raken projects, work logs, time cards, material logs, equipment logs, budgets and project notes, and it can create or update projects, materials, material units and classifications. Short concrete asks, like the hours logged on one project this week, work better than long paragraphs.

### Does connecting Raken give the AI access to every project?

No. Every call runs as the person who signed in to Raken, so the agent sees the Raken projects, time cards and logs that person can already see. Elaichi can narrow that further with restrictions, and it can never widen it beyond what Raken itself allows.

### Can my team share one Raken connection?

Yes. One person connects Raken in Elaichi and shares the connection with a team, and nobody else ever sees the client ID or secret. Each teammate still signs in to Raken as themselves, so the audit log names the actual person behind every call.

### Can I stop an agent from changing things in Raken?

Yes. Restrictions in Elaichi work per action, so you can allow reading Raken work logs and time cards while blocking the creation or updating of projects and materials. A restricted action is left out of the AI client's list entirely and cannot be called, whatever the prompt says.

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

Offboarding a person in Elaichi ends their access to Raken through every AI client at once. A shared Raken connection keeps working for everyone else on the team. If you want it gone completely, disconnecting Raken once in Elaichi removes it from every client.

### Does the Raken MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Raken is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for Raken?

Yes. Both let Claude, ChatGPT or Cursor use Raken. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every Raken call.

### How is Elaichi different from Composio for Raken?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to Raken: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 52 Raken tools

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

- **Create a Raken oauth revoke** (Create). Revoke a Raken authorization from its access token or refresh token. Both tokens stop working and the user must authorize again. Returns HTTP 200 with no documented response body, whether or not the token existed. Required: token.
- **List all Raken projects** (List). List Raken projects, optionally filtered by name or number (query), status (statuses) or last-updated window (changedSince/changedUntil, range capped to 31 days). Returns: uuid, name, number, startDate, endDate, status, address, externalId.
- **Create a Raken project** (Create). Create a Raken project. Returns: uuid, name, number, startDate, endDate, status, address, externalId. Required: name, startDate.
- **Get single Raken project by ID** (Get). Get one Raken project by UUID. Returns: uuid, name, number, startDate, endDate, status, address, externalId. Required: id.
- **Update a Raken project by ID** (Update). Update a Raken project by UUID. PATCH semantics: a null value removes a field. Returns: uuid, name, number, startDate, endDate, status, address, externalId. Required: id.
- **List all Raken project child projects** (List). List a project's child projects, created on collaborators' own Raken accounts. Calling this on a child project returns an empty list. Returns: uuid, name, startDate, endDate, status, company, createdBy, updatedBy. Required: project_uuid.
- **List all Raken project notes** (List). List notes recorded on a project between fromDate and toDate (range capped to 31 days). Returns: uuid, description, category, date, attachments, createdBy, updatedBy, createdAt. Required: project_uuid, fromDate, toDate.
- **List all Raken project production insights** (List). List production insights for a project, one item per cost code division. Optionally narrow by date range, cost code UUID or division. Returns: division, budgetedHours, actualHours, completeHoursPercent, remainingHours, completeQuantityPercent, projectedTotalHours, projectedHoursGainOrLoss. Required: project_uuid.
- **List all Raken materials** (List). List materials, optionally only those available to one project (projectUuid). Returns: uuid, name, materialUnit, projects.
- **Create a Raken material** (Create). Create a material. With projectUuid it is available only to that project; without it, every project on the account can use it. Returns: uuid, name, materialUnit, projects. Required: name, materialUnitUuid.
- **Update a Raken material by ID** (Update). Update a material by UUID. PATCH semantics: a null value removes a field. Returns: uuid, name, materialUnit, projects. Required: id.
- **List all Raken material logs** (List). List material logs for a project by date range (fromDate/toDate) or last-updated window (changedSince/changedUntil, range capped to 31 days). Returns: uuid, date, updatedAt, material, quantity, costCode, attachments. Required: projectUuid.
- **List all Raken material units** (List). List material units, the units materials are measured in. Returns: uuid, name.
- **Create a Raken material unit** (Create). Create a material unit. Returns: uuid, name. Required: name.
- **List all Raken equipment logs** (List). List equipment logs grouped by deployment, filterable by project, equipment, status, date range or query. Date ranges are capped to 31 days. Returns: uuid, startDate, endDate, equipment, projectUuid, daysOnsite, daysNotInUse, createdBy.
- **List all Raken equipments** (List). List equipment, filterable by condition, deployed project and a free-text query. Returns: uuid, name, rate, frequency, equipmentId, owned, make, model.
- **List all Raken work logs** (List). List work logs for a project by date range or last-updated window (capped to 31 days). Only COMPLETED work logs unless statuses is set; time cards are nested under their work log. Returns: uuid, date, status, totalHours, description, projectUuid, workLogType, subcontractor. Required: projectUuid.
- **List all Raken pay types** (List). List pay types, such as Regular Time and Over Time. Returns: uuid, name, code.
- **List all Raken time cards** (List). List time cards by project, worker or date range (capped to 31 days). deletedFrom with deletedTo returns only deleted cards. A card's work description lives on its work log (workLogUuid). Returns: uuid, workLogUuid, date, totalHours, project, worker, approved, signed.
- **List all Raken classifications** (List). List classifications, filterable by status and last-updated window (changedSince needs changedUntil). Returns: uuid, name, status, createdAt, updatedAt.
- **Create a Raken classification** (Create). Create a classification. Returns: uuid, name, status, createdAt, updatedAt. Required: name.
- **List all Raken budgets** (List). List budgets for a project: budgeted hours and materials per cost code. Returns: costCode, budgetedHours, budgetedMaterials. Required: projectUuid.
- **List all Raken checklist types** (List). List checklist types, filterable by class and status. The maximum limit is 100. Returns: uuid, createdAt, status, class, name, createdBy, updatedAt.
- **List all Raken user infos** (List). Get the profile of the Raken user who authorized this connection (the user behind the access token). Returns: sub, firstName, lastName, email, role, companyUuid.
- **List all Raken shifts** (List). List shifts, optionally filtered by project and status. Returns: uuid, code, name, status.
- **Create a Raken shift** (Create). Create a shift. The code is at most 5 characters and the name at most 30. Returns: uuid, code, name, status. Required: code, name.
- **Update a Raken shift by ID** (Update). Update a shift by UUID. PATCH semantics: a null value removes a field. Returns: uuid, code, name, status. Required: id.
- **List all Raken toolbox talks** (List). List toolbox talks, filterable by status (ACTIVE only by default). Returns: uuid, name, status, contentUrl.
- **List all Raken toolbox talks pasts** (List). List past toolbox talks, filterable by project, talk, attending members and creation date range (capped to 31 days). Returns: uuid, project, scheduleDate, status, talk, type, attendees, signaturePhotos.
- **List all Raken daily reports** (List). List daily reports for a project by date range, status (COMPLETED only by default) or last-updated window (capped to 31 days). Returns: uuid, status, projectUuid, reportDate, createdBy, updatedBy, signedBy, signedAt. Required: projectUuid.
- **List all Raken observations** (List). List observations. One of projectUuids or the deprecated projectUuid is required. Filter by status, category, type, priority, created range (capped to 31 days) or last-updated window. Returns: uuid, assignees, attachments, category, createdAt, createdBy, description, location.
- **Get single Raken observation by ID** (Get). Get one observation by UUID. Returns: uuid, assignees, attachments, category, createdAt, createdBy, description, location. Required: id.
- **List all Raken certification types** (List). List certification types, searchable by name and description (query) and filterable by created or updated ranges (capped to 31 days). Returns: uuid, name, description, createdBy, updatedBy, createdAt, updatedAt.
- **List all Raken member projects** (List). List the projects a member is assigned to (ACTIVE projects only unless statuses is set). Returns: uuid, name, teamType. Required: member_uuid.
- **Create a Raken member** (Create). Create a member: a worker (ROLE_WORKER) or a team member who can log in. Email is required only for team members, who receive an invite. Returns: uuid, firstName, lastName, role, email, phoneNumber, username, title. Required: firstName, lastName, role, projectUuids.
- **Get single Raken member by ID** (Get). Get one member by UUID, including time settings, project UUIDs and certifications. Returns: uuid, firstName, lastName, role, email, phoneNumber, username, title. Required: id.
- **List all Raken members** (List). List members, filterable by query, status (ACTIVE only by default), project, classification, role or last-updated window. Returns: uuid, firstName, lastName, role, email, phoneNumber, username, title.
- **Update a Raken member by ID** (Update). Update a member by UUID. PATCH semantics: a null value removes a field. Returns: uuid, firstName, lastName, role, email, phoneNumber, username, title. Required: id.
- **List all Raken checklists** (List). List checklists, filterable by project, status (COMPLETED by default), creator, template, type, created range or checklist date range. The maximum limit is 100. Returns: uuid, name, projectUuid, templateUuid, pdfUrl, createdAt, updatedAt, status.
- **Get single Raken checklist by ID** (Get). Get one checklist by UUID, including its sections, questions and responses. Returns: uuid, name, projectUuid, templateUuid, pdfUrl, createdAt, updatedAt, status. Required: id.
- **List all Raken checklists templates** (List). List checklist templates, filterable by status (ACTIVE by default) and checklist type. The maximum limit is 100. Returns: uuid, name, createdAt, updatedAt, status, checklistType.
- **Create a Raken certification** (Create). Create a certification of a given certification type. Returns: uuid, name, createdBy, updatedBy, createdAt, updatedAt, certificationType. Required: name, certificationTypeUuid.
- **List all Raken certifications** (List). List certifications, filterable by certification type and by created or updated ranges (capped to 31 days). Returns: uuid, name, createdBy, updatedBy, createdAt, updatedAt, certificationType.
- **Update a Raken certification by ID** (Update). Update a certification by UUID. PATCH semantics: a null value removes a field. Returns: uuid, name, createdBy, updatedBy, createdAt, updatedAt, certificationType. Required: id, name, certificationTypeUuid, certificationTypeName.
- **Create a Raken cost code** (Create). Create a cost code for a project. Returns: uuid, code, division, description, createdAt, updatedAt. Required: code, division, projectUuid.
- **List all Raken cost codes** (List). List cost codes, optionally for one project (projectUuid) or a last-updated window (capped to 31 days). Returns: uuid, code, division, description, createdAt, updatedAt.
- **Update a Raken cost code by ID** (Update). Update a cost code's division or description by UUID. PATCH semantics: a null value removes a field. Returns: uuid, code, division, description, createdAt, updatedAt. Required: id.
- **Create a Raken group** (Create). Create a group. Returns: uuid, class, createdBy, updatedBy, createdAt, updatedAt, name. Required: name, class.
- **List all Raken groups** (List). List groups, searchable by name and class and filterable by class name, created or updated ranges (capped to 31 days). Returns: uuid, class, createdBy, updatedBy, createdAt, updatedAt, name, projectUuids.
- **Update a Raken group by ID** (Update). Update a group by UUID. PATCH semantics: a null value removes a field. Returns: uuid, class, createdBy, updatedBy, createdAt, updatedAt, name, projectUuids. Required: id, name, class.
- ...and 2 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
