# Fieldwire MCP connector

The Fieldwire connector brings Fieldwire accounts, users, attachments and files to Claude, ChatGPT, Cursor and the Elaichi Agent, so each person can look things up and update them inside their own Fieldwire access.

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

## Facts

| | |
| --- | --- |
| Application | Fieldwire |
| Category | Product Development |
| AI tools | 320 |
| Authentication | Connects with an API key |
| Bring 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 | 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 Fieldwire is connected

- Invite the new electrical subcontractor to our Fieldwire account
- List the attachments on the hospital project template
- Show me every user on the Riverside account

## Connect Fieldwire in Elaichi

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

1. Open Connections, choose Add connection, and pick Fieldwire.
2. Optionally set Share with, then press Connect.
3. Paste a Fieldwire API key. One person generates a token in Fieldwire and pastes it once. Everyone else works through Share with, and never sees it.

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

## Fieldwire 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.

## Fieldwire 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.

## Fieldwire 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 Fieldwire 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 Fieldwire 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 Fieldwire through Elaichi

### Invite a new subcontractor in minutes

Office admin. Ask for a new crew lead to be invited to the Fieldwire account with the right profile details filled in, instead of clicking through the invite form for each person.

### Pull the attachments on a project template

Project management. Before kickoff, list every attachment on the project template you are starting from and check nothing is missing or out of date.

### Find the right file without hunting

Field operations. Give the file reference from a message or a report and get the file details back, without opening Fieldwire and scrolling through folders.

### Clean up users after a project closes

IT. Update or remove a batch of account users at once when a crew rolls off, so the account only holds the people still on site.

### Restore an attachment removed by mistake

Quality control. When a photo or document on the account was deleted in error, ask for it to be restored and confirm it is back.

### Keep account data types consistent

Project controls. Review the custom data types set up on the Fieldwire account, add a missing one, and tidy names so every project records things the same way.

## Elaichi vs Zapier MCP vs Composio for Fieldwire

All three can connect Fieldwire 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 Fieldwire tools | Allow or restrict single Fieldwire 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 Fieldwire 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 Fieldwire to Claude?

Connect Fieldwire in Elaichi by pasting a Fieldwire API key; there is no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude asks you to sign in to Elaichi as yourself, and your Fieldwire accounts, users, attachments and files are ready to ask about.

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

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

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

With Fieldwire connected, you can ask for the users on an account, invite someone new, update a profile, list the attachments on a project template, look up a file by its reference, or restore an attachment that was removed. Short, concrete asks such as "invite Dana to the Riverside account" work better than long sentences.

### Does connecting Fieldwire give the AI access to every account and project?

No. Everything the AI does in Fieldwire runs inside the access of the person who signed in, so it sees the accounts, users and attachments that person can already see. Elaichi can narrow that access further with roles and restrictions, and it can never widen it.

### Can my team share one Fieldwire connection?

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

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

Yes. Restrictions in Elaichi work per action, so you can allow reading Fieldwire users and attachments while blocking deletes or updates. A restricted action is left out of the AI client's tool list entirely, so it cannot be called no matter what the prompt says.

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

Offboarding a person in Elaichi ends their access to Fieldwire through every client at once. A shared Fieldwire connection keeps working for everyone else on the team. If you want it gone completely, disconnect Fieldwire once in Elaichi and it is removed from Claude, ChatGPT, Cursor and every other client.

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

Yes. Fieldwire 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 Fieldwire?

Yes. Both let Claude, ChatGPT or Cursor use Fieldwire. 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 Fieldwire call.

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

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 Fieldwire: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 320 Fieldwire tools

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

- **List all Fieldwire accounts** (List). Get the authenticated Fieldwire account's information. Returns: id, company_address, company_name, has_photo_attachments_toggle, has_tasks_toggle, is_3d_bim_enabled, and 7 more fields. Takes no parameters.
- **Fieldwire accounts bulk update** (Update). Update the authenticated Fieldwire account. Returns the updated account object including id, company_address, invoice_email, and the owner user object.
- **List all Fieldwire account users** (List). List all users on your Fieldwire account plus users invited to its projects. Returns each entry's user object (id, email, first_name, last_name, account_role, created_at) and the projects count of how many projects the user is in. Excludes Sample Projects and users on other paying accounts.
- **Get single Fieldwire account user by ID** (Get). Get a single user on your Fieldwire account by id. Returns the user object (id, email, first_name, last_name, account_role, created_at) plus the count of projects that user is in. Required: id.
- **Update a Fieldwire account user by ID** (Update). Update the account info for a user on your Fieldwire account by id. Returns the updated user record including id, email, first_name, last_name, account_role, and created_at. Required: id.
- **Delete a Fieldwire account user by ID** (Delete). Remove a user from your Fieldwire account by id. Returns an empty 204 response on success. Required: id.
- **Fieldwire account users update profile** (Update). Update a Fieldwire account user's profile (company, job title, phone number). Returns the updated user record including id, email, first_name, last_name, company, job_title, phone_number, account_role, and created_at/updated_at timestamps. Required: user_id.
- **Fieldwire account users invite** (Invite). Invite a new or existing user to a Fieldwire account. Returns the invited user's account record — id, email, first_name, last_name, account_role, is_confirmed, email_addresses — plus the count of projects (projects) they belong to. Required: account_role, email.
- **Fieldwire users batches bulk update** (Update). Batch-update the account_role for a list of Fieldwire account users. Returns an empty 204 response on success. Required: ids.
- **Fieldwire users batches bulk delete** (Delete). Deprecated: remove a batch of Fieldwire users from the account and all its projects via a JSON batch payload. Returns an empty 204 response on success. Superseded by the batch_project_users and batch_account_users endpoints. Required: ids.
- **Fieldwire users batch account users bulk delete** (Delete). Returns an empty 204 response on success. Required: ids.
- **Create a Fieldwire API keys jwt** (Create). Generate a JSON Web Token (JWT) access token in Fieldwire from a refresh token or API token. The token has a limited lifetime. Returns: access_token. Required: api_token.
- **Get single Fieldwire file by ID** (Get). Get a stored file by id in Fieldwire. Returns the access-control file record including its url, file_type, entity_type, and the attached entity object (id, name, role). Required: id.
- **List all Fieldwire project template account attachments** (List). List all account attachments in a Fieldwire project template. Returns each attachment's id, name, file_size, file_url, project_template_id, and created_at. Required: project_template_id.
- **List all Fieldwire account account attachments** (List). List all account attachments in the Fieldwire account. Returns each attachment's id, name, file_size, file_url, account_id, and created_at/updated_at timestamps.
- **Create a Fieldwire account account attachment** (Create). Create a new account attachment in Fieldwire. Returns the created attachment including id, name, file_size, file_url, account_id, and created_at. Required: name, file_url, creator_user_id, last_editor_user_id.
- **Get single Fieldwire account account attachment by ID** (Get). Get a single Fieldwire account attachment by id. Returns: id, account_id, project_template_id, project_template_folder_id, name, file_url, and 10 more fields. Required: id.
- **Update a Fieldwire account account attachment by ID** (Update). Update an existing Fieldwire account attachment by id. Returns the updated attachment including id, name, file_size, file_url, account_id, and updated_at. Required: id.
- **Delete a Fieldwire account account attachment by ID** (Delete). Delete a Fieldwire account attachment by id. Returns an empty 204 response on success. Required: id.
- **Fieldwire account account attachments restore** (Restore). Restore a previously deleted account attachment in Fieldwire by id. Returns the restored object including its id, name, account_id, file_url, file_size, created_at, updated_at, and deleted_at. Required: account_attachment_id.
- **List all Fieldwire account account data types** (List). List all Fieldwire account data_types configured for the account. Returns records with id, name, kind, placeholder, unit, is_strict, account_id, and created/updated timestamps.
- **Create a Fieldwire account account data type** (Create). Create a new Fieldwire account data_type in the account. Accepts a JSON body of data_type attributes such as name, placeholder, kind, unit, is_strict, and per-kind default values. Returns the created record including id, name, kind, account_id, and created_at. Required: creator_user_id, last_editor_user_id, name.
- **Get single Fieldwire account account data type by ID** (Get). Get a single Fieldwire account data_type by id. Returns the full record: id, name, kind, placeholder, unit, is_strict, account_id, and created/updated timestamps. Required: id.
- **Update a Fieldwire account account data type by ID** (Update). Update a Fieldwire account data_type by id with a JSON body of the attributes to change (name, placeholder, kind, unit, is_strict, per-kind default values). Returns the updated record including id, name, kind, account_id, and updated_at. Required: id.
- **Delete a Fieldwire account account data type by ID** (Delete). Delete a Fieldwire account data_type by id. Returns an empty 204 response on success. Required: id.
- **Fieldwire account account data types restore** (Restore). Restore a previously deleted account data_type in Fieldwire by id. Returns the restored object including its id, name, kind, unit, is_strict, default values, and created_at/updated_at timestamps. Required: account_data_type_id.
- **List all Fieldwire account data type used by templates** (List). List the Fieldwire account form templates (AFTs) that use a given account data_type. Returns each template's id, name, kind, version, view_edit_permissions, is_generated, and created_at/updated_at timestamps. Required: account_data_type_id.
- **List all Fieldwire account data type list usage links** (List). List the usage links for a Fieldwire account data_type — the Account Form Templates (AFTs) or Project Template Task Type Attributes that use it. Returns: id, linked_entity_type, parent_linked_entity_id, parent_linked_entity_name. Required: account_data_type_id.
- **List all Fieldwire account account data type values** (List). List all account_data_type_values in the Fieldwire account. Each record carries a UUID id, its parent account_data_type_id, exactly one populated typed value field (bigint_value, string_value, text_value, checkbox_value, decimal_value, datetime_value, or date_value), plus ordinal and created_at. Returns: id, creator_user_id, last_editor_user_id, and 17 more fields.
- **Create a Fieldwire account account data type value** (Create). Create a new account_data_type_value in the Fieldwire account by supplying the parent account_data_type_id and the typed value field matching the parent type's kind. Returns the created record including id, account_data_type_id, bigint_value, ordinal, created_at, and updated_at. Required: creator_user_id, last_editor_user_id, account_data_type_id.
- **Get single Fieldwire account account data type value by ID** (Get). Get a single Fieldwire account_data_type_value by id. Returns the full record including id, account_data_type_id, the typed value field for its kind (bigint_value, string_value, text_value, checkbox_value, decimal_value, datetime_value, or date_value), ordinal, and created_at. Required: id.
- **Update a Fieldwire account account data type value by ID** (Update). Update a Fieldwire account_data_type_value by id, patching its value fields (bigint_value, string_value, text_value, checkbox_value, decimal_value, datetime_value, date_value) and ordinal. Returns the updated record including id, account_data_type_id, ordinal, created_at, and updated_at. Required: id.
- **Delete a Fieldwire account account data type value by ID** (Delete). Delete a Fieldwire account_data_type_value by id. Returns an empty 204 response on success. Required: id.
- **Fieldwire account account data type values restore** (Restore). Restore a deleted Fieldwire account data_type value by id. Returns the restored value object including id, bigint_value, string_value, checkbox_value, account_data_type_id, created_at, and updated_at. Required: account_data_type_value_id.
- **List all Fieldwire account account form template form statuses** (List). List all account form template form statuses configured for the Fieldwire account. Returns: id, creator_user_id, last_editor_user_id, owner_user_id, account_form_template_id, account_id, and 12 more fields. Max 1000 per page.
- **Create a Fieldwire account account form template form status** (Create). Create a new account form template form status in Fieldwire. Returns the created status including id, name, ordinal, account_form_template_id, required_role_in, and required_role_out. Required: creator_user_id, last_editor_user_id, account_form_template_id, name.
- **Get account account form template form status by ID** (Get). Get a Fieldwire account form template form status by id. Returns: id, creator_user_id, last_editor_user_id, owner_user_id, account_form_template_id, account_id, and 12 more fields. Required: id.
- **Update account account form template form status by ID** (Update). Update a Fieldwire account form template form status by id. Returns the updated status including id, name, ordinal, account_form_template_id, required_role_in, and required_role_out. Required: id.
- **Delete account account form template form status by ID** (Delete). Delete a Fieldwire account form template form status by id. Returns an empty 204 response on success. Required: id.
- **Fieldwire account account form template form statuses restore** (Restore). Restore a deleted account form template form status in Fieldwire by id. Returns the restored status record including id, name, ordinal, deleted_at, account_form_template_id, required_role_in, and required_role_out. Required: account_form_template_form_status_id.
- **Fieldwire account account form template form statuses reorder** (Action). Reorder an account_form_template_form_status in Fieldwire by moving the status with id before a sibling status; if no sibling_id is supplied, the status moves to the end of the order. Returns the reordered statuses including id, name, ordinal, is_editable, and required_role_in. Required: account_form_template_form_status_id, sibling_id.
- **List all Fieldwire account account form template permissions** (List). List all form template permissions in the Fieldwire account, showing which roles are granted each permission kind on account form templates. Returns each record's id, account_id, account_form_template_id, role, kind, enabled, and created_at/updated_at timestamps. No required parameters.
- **List all account account form template section record inputs** (List). List all account form template section record inputs in your Fieldwire account. Returns: id, creator_user_id, last_editor_user_id, account_data_type_id, account_form_template_section_record_id, account_id, and 14 more fields.
- **Create account account form template section record input** (Create). Create a new account form template section record input in Fieldwire. Returns the created input including id, kind, ordinal, min_values, max_values, and account_data_type_id. Required: creator_user_id, last_editor_user_id, account_form_template_section_record_id.
- **Get account account form template section record input by ID** (Get). Get a single account form template section record input by id in Fieldwire. Returns: id, creator_user_id, last_editor_user_id, account_data_type_id, account_form_template_section_record_id, account_id, and 14 more fields. Required: id.
- **Update account account form template section record input by ID** (Update). Update an account form template section record input by id in Fieldwire. Returns the updated input including id, kind, ordinal, min_values, max_values, and account_data_type_id. Required: id.
- **Delete account account form template section record input by ID** (Delete). Delete an account form template section record input by id in Fieldwire. Returns an empty 204 response on success. Required: id.
- **Account account form template section record inputs restore** (Restore). Restore a deleted account form template section record input in Fieldwire. Returns the restored input object including its id, kind, ordinal, min_values, max_values, and deleted_at. Required: account_form_template_section_record_input_id.
- **Account account form template section record inputs reorder** (Action). Reorder a form template section record input in Fieldwire by moving it before a sibling input. Returns the reordered record input(s) including id, ordinal, kind, account_data_type_id, and updated_at. Omit sibling_id to move the input to the end of the order. Required: account_form_template_section_record_input_id, sibling_id.
- **List all Fieldwire account account form template section records** (List). List all account form template section records in the Fieldwire account. Returns records with id, name, ordinal, min_values, max_values, and account_form_template_section_id.
- ...and 270 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
