# Lightfield MCP connector

Connecting Lightfield to Elaichi lets Claude, ChatGPT, Cursor and the Elaichi Agent read and update your Lightfield accounts, contacts and lists as the signed-in person, with every action recorded in an audit log.

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

## Facts

| | |
| --- | --- |
| Application | Lightfield |
| Category | CRM |
| AI tools | 87 |
| 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 Lightfield is connected

- Update the Acme account: owner is Priya, stage is proposal.
- Which contacts are on the Q3 enterprise list?
- Show the field history for the Northwind account this month.

## Connect Lightfield in Elaichi

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

1. Open Connections, choose Add connection, and pick Lightfield.
2. Optionally set Share with, then press Connect.
3. Paste a Lightfield API key. One person generates a token in Lightfield 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 Lightfield tools are exposed, rename them, or freeze arguments before anyone points a client at it.

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

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

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

### Catch the account up after a call

Sales. Describe what changed on the call and the Lightfield account and contact records are updated for you, without clicking through every field.

### Check who is on a target list

Sales. Ask which accounts, contacts and opportunities sit on a Lightfield list before a territory review or an outreach push.

### Build a list for the next campaign

Marketing. Create a new Lightfield list and fill it with the contacts that match a plain description, such as everyone at manufacturing accounts in the Northeast.

### See how an account changed over time

Customer Success. Pull the field history for a Lightfield account to see when the owner, stage or renewal date changed and what the value was before.

### Clean up duplicate contacts safely

Revenue Operations. Find duplicate contacts in Lightfield, remove the extra copies, and restore one if a deletion turns out to be a mistake.

### Add new prospects without leaving the chat

Sales Development. Paste the details from an inbound email and a new Lightfield contact and account are created with the right fields filled, based on how your Lightfield fields are defined.

## Frequently asked questions

### How do I connect Lightfield to Claude?

In Elaichi, choose Lightfield and paste your Lightfield API key when asked. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in with Elaichi and Lightfield is ready to use in Claude.

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

Yes. Once Lightfield 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 Lightfield once and every client gets it.

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

An AI agent connected through Elaichi can look up Lightfield accounts and contacts, create new ones, update them after a call, and remove or restore records. It can build Lightfield lists, show which accounts, contacts and opportunities are on a list, and pull the history of how a field changed over time. Short, concrete asks such as "update the Acme account owner to Priya" work better than long paragraphs.

### Does connecting Lightfield give the AI access to everything in my CRM?

The AI can only reach what the Lightfield API key you connected can reach, and each person still signs in to Elaichi as themselves, so every Lightfield action is tied to a named person. Elaichi can then narrow that access further with roles and restrictions. It never widens what Lightfield itself allows.

### Can my team share one Lightfield connection?

Yes. One person connects Lightfield in Elaichi and shares the connection with a team, and nobody else ever handles the Lightfield API key. Each teammate still signs in to Elaichi as themselves, so the audit log names who created, changed or removed each Lightfield record.

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

Yes. Restrictions in Elaichi work per action, so you can allow reading Lightfield accounts and contacts while blocking deletion or updates. A restricted action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt, however worded, can reach it.

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

Offboarding a person in Elaichi ends their access to Lightfield through every client at once. A Lightfield connection they shared keeps working for everyone else on the team. If you want to remove Lightfield entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client.

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

Yes. Lightfield 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.

## All 87 Lightfield tools

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

- **Lightfield auth validate** (Validate). Validate the current lightfield API key and confirm it is active before making scoped API requests. Returns: id, createdAt, fields, httpLink. Takes no parameters beyond authentication.
- **Lightfield accounts get definitions** (Get). Get the field and relationship definitions available on Lightfield accounts, covering both system-defined and custom fields. Returns: fieldDefinitions, objectType, relationshipDefinitions. Useful for discovering field keys, select options, and relationship cardinalities before creating or updating records. Takes no parameters.
- **Lightfield accounts list field history** (List). Get the value-change history for a single field on a Lightfield account, newest first, with consecutive identical values collapsed. Returns history entries with displayValue, value, valueType, isCreate, and recordedAt. Required: account_id, field_key. Only attribute-backed fields have history — column-backed system fields return an error.
- **Create a Lightfield account** (Create). Create a new Lightfield account record. Returns the created account including id, fields, relationships, createdAt, updatedAt, and httpLink. Required: fields (must include $name). Read-only: $howTheyMakeMoney and $accountStatus cannot be set; a $website improves background enrichment matching.
- **Update a Lightfield account by ID** (Update). Update an existing Lightfield account by id; only the fields and relationships included in the request are modified. Returns the updated account including id, fields, relationships, createdAt, updatedAt, and httpLink. Required: id. Read-only: $howTheyMakeMoney and $accountStatus cannot be updated.
- **Get single Lightfield account by ID** (Get). Get a single Lightfield account by id. Returns the account record including id, fields, relationships, createdAt, updatedAt, httpLink, and externalId. Required: id.
- **List all Lightfield accounts** (List). List Lightfield accounts, paginated (max 25 per page). Returns account records including id, createdAt, fields, httpLink, relationships, updatedAt, and externalId. Pass status=trashed to list accounts currently in the trash instead of live records.
- **Delete a Lightfield account by ID** (Delete). Delete a Lightfield account by id. The account is soft-deleted to the trash and can be restored later; associated contacts, tasks, and notes are untouched. Returns the deleted record (id, createdAt, fields, httpLink, relationships, updatedAt, externalId). Required: id. No-op if the account is already in the trash.
- **Lightfield accounts restore** (Restore). Restore a trashed Lightfield account back to active. Returns the restored account record including id, createdAt, fields, httpLink, relationships, and externalId. Required: account_id. No-op if the account is not trashed; find trashed accounts by listing with status=trashed.
- **Lightfield contacts get definitions** (Get). Get the schema of all field and relationship definitions available on contacts in Lightfield, including both system-defined and custom fields. Returns: fieldDefinitions, relationshipDefinitions, objectType.
- **Lightfield contacts list field history** (List). Get the value-change history for a single field on a Lightfield contact, newest first, with consecutive identical values collapsed. Returns: data, hasMore, nextCursor. Required: contact_id, field_key. Only attribute-backed fields have history; column-backed system fields return an error. Max 100 entries per page.
- **Create a Lightfield contact** (Create). Create a contact in Lightfield; it is automatically enriched in the background after creation. Returns the created contact with id, fields, relationships, httpLink, createdAt, updatedAt, and externalId. Required: fields. $name is an object { firstName, lastName }, not a plain string; use list filtering first to avoid duplicates.
- **Update a Lightfield contact by ID** (Update). Update an existing Lightfield contact by id; only included fields and relationships are modified. Returns the updated contact with id, fields, relationships, httpLink, createdAt, updatedAt, and externalId. Required: id. $name is an object { firstName, lastName }, not a plain string.
- **Get single Lightfield contact by ID** (Get). Get a single Lightfield contact by id. Returns the full contact record with id, fields, relationships, httpLink, createdAt, updatedAt, and externalId. Required: id.
- **List all Lightfield contacts** (List). List contacts in lightfield with pagination and trash-state filtering. Returns: id, createdAt, updatedAt, fields, httpLink, relationships, externalId. Pass status=trashed to list contacts currently in the trash (requires the contacts:restore scope).
- **Delete a Lightfield contact by ID** (Delete). Delete a contact in lightfield. Soft-deletes the contact by moving it to the trash, where it can be restored from the Lightfield UI; deleting an already-trashed contact is a no-op. Returns the deleted record (id, createdAt, fields, httpLink, relationships, updatedAt, externalId). Required: id.
- **Lightfield contacts restore** (Restore). Restore a trashed contact in lightfield, bringing it back to active. Restoring a contact that is not trashed is a no-op and returns the existing record. Returns the restored contact including id, createdAt, fields, updatedAt, and externalId. Required: contact_id.
- **Create a Lightfield list** (Create). Create a new list in Lightfield. Returns the created list including id, createdAt, fields, and httpLink. Requires fields.$name and fields.$objectType ($account, $contact, or $opportunity). Supports idempotency via the Idempotency-Key header.
- **Update a Lightfield list by ID** (Update). Update a Lightfield list by id; only fields included in the request are modified. Returns the updated list including id, createdAt, fields, and httpLink. Required: id. Supports idempotency via the Idempotency-Key header.
- **Get single Lightfield list by ID** (Get). Get a single Lightfield list by id. Returns the list record including id, createdAt, fields (typed values; system fields are $-prefixed), and httpLink. Required: id.
- **List all Lightfield lists** (List). List Lightfield lists with pagination. Returns list records including id, createdAt, fields, and httpLink. Max 25 per page.
- **Lightfield lists list accounts** (List). List the accounts that belong to a Lightfield list. Returns account records including id, createdAt, fields, relationships, updatedAt, and externalId. Required: list_id. Max 25 per page.
- **Lightfield lists list contacts** (List). List contacts that belong to a specific list in Lightfield. Returns a paginated array of contact records including id, createdAt, fields (typed field map), httpLink, relationships, updatedAt, and externalId. Required: list_id. Max 25 records per page.
- **Lightfield lists list opportunities** (List). List opportunities that belong to a specific list in Lightfield. Returns a paginated array of opportunity records including id, createdAt, fields (typed field map), httpLink, relationships, updatedAt, and externalId. Required: list_id. Max 25 records per page.
- **Delete a Lightfield list by ID** (Delete). Delete a Lightfield list by moving it to the trash; the list is soft-deleted and can be restored from the Lightfield UI, while its member entities are unaffected. Returns the deleted record (id, createdAt, fields, httpLink, relationships, updatedAt, externalId). Required: id. Deleting an already-trashed list is a no-op that returns the existing record.
- **Lightfield meetings get definitions** (Get). Get the field and relationship definitions for lightfield meetings. Returns: fieldDefinitions, objectType, relationshipDefinitions.
- **Create a Lightfield meeting** (Create). Create a past-dated meeting record in lightfield. Returns the created meeting with id, accessLevel, createdAt, fields, and relationships. Only the $transcript relationship is writable on create. Required: fields ($title, $startDate, $endDate); both times must be in the past.
- **Update a Lightfield meeting by ID** (Update). Update an existing lightfield meeting by id. Only fields.$privacySetting and relationships.$transcript.replace are writable; clearing or removing $transcript is not supported. Returns: id, accessLevel, createdAt, updatedAt, fields, relationships, objectType, httpLink, externalId. Required: id.
- **Get single Lightfield meeting by ID** (Get). Get a single lightfield meeting by id. Fields and transcript visibility are privacy-redacted per caller and the response includes a read-only accessLevel. Returns: id, accessLevel, createdAt, updatedAt, fields, relationships, objectType, httpLink, externalId. Required: id.
- **List all Lightfield meetings** (List). List lightfield meetings. Returns meeting records with id, accessLevel, createdAt, fields, and relationships; transcript or content fields may be redacted per caller. Pass status=trashed to list meetings currently in the trash. Max 25 per page.
- **Delete a Lightfield meeting by ID** (Delete). Delete a meeting in Lightfield by moving it to the trash; the soft-deleted meeting can be restored later. Returns the deleted record (id, accessLevel, createdAt, fields, relationships, updatedAt). Required: id. Deleting a meeting that is already trashed returns a 404.
- **Lightfield meetings restore** (Restore). Restore a trashed meeting in Lightfield, bringing it back to active. Returns the restored meeting including id, accessLevel, createdAt, fields, and updatedAt. Required: meeting_id. Restoring a meeting that is not trashed is a no-op and returns the existing record.
- **Lightfield notes get definitions** (Get). Get the note field and relationship definitions in lightfield. Useful for understanding the shape of note data before creating or updating records. Returns: error.
- **Create a Lightfield note** (Create). Create a new note in lightfield. The note author is automatically set to the API key owner. Returns the created note including id, createdAt, fields, httpLink, and relationships. Required: fields (with $title).
- **Update a Lightfield note by ID** (Update). Update an existing lightfield note by id — only included fields and relationships are modified; omitted fields are left unchanged. Returns the updated note including id, fields, relationships, updatedAt, and httpLink. Required: id.
- **Get single Lightfield note by ID** (Get). Get a single lightfield note by id. Returns the note including id, createdAt, fields, relationships, and httpLink. Required: id.
- **List all Lightfield notes** (List). List lightfield notes, paginated. Returns note records including id, createdAt, fields, relationships, and updatedAt. Pass status=trashed to list notes currently in the trash instead of live records.
- **Delete a Lightfield note by ID** (Delete). Delete a Lightfield note by moving it to the trash (soft-delete; the note can be restored from the Lightfield UI). Deleting an already-trashed note is a no-op that returns the existing record. Required: id. Returns the deleted record (id, createdAt, fields, httpLink, relationships, updatedAt, externalId).
- **Lightfield notes restore** (Restore). Restore a trashed Lightfield note, bringing it back to active. Restoring a note that is not trashed is a no-op and returns the existing record; trashed notes can be found by listing notes filtered to status=trashed. Returns the restored note record: id, createdAt, fields, httpLink, relationships, updatedAt, externalId. Required: note_id.
- **Lightfield opportunities get definitions** (Get). Get the field and relationship definitions available on opportunities in Lightfield, covering both system-defined and custom fields. Returns: fieldDefinitions, objectType, relationshipDefinitions. Useful for understanding record shape before creating or updating opportunities.
- **Lightfield opportunities list field history** (List). Get the value-change history for a single field on an opportunity, newest first, with consecutive identical values collapsed. Returns each entry with: value, valueType, displayValue, recordedAt, isCreate. Required: opportunity_id, field_key. Only attribute-backed fields have history; max 100 entries per page.
- **Create a Lightfield opportunity** (Create). Create a new opportunity in Lightfield. Returns the created record: id, createdAt, fields, relationships, httpLink, updatedAt, and externalId. Requires fields with $name and relationships with $account. Lightfield generates the opportunity summary in the background; $opportunityStatus is read-only and cannot be set via the API.
- **Update a Lightfield opportunity by ID** (Update). Update an existing opportunity by id in Lightfield; only included fields and relationships are modified. Returns the updated record: id, createdAt, fields, relationships, httpLink, updatedAt, and externalId. Required: id. $opportunityStatus is read-only and cannot be updated.
- **Get single Lightfield opportunity by ID** (Get). Get a single opportunity by id in Lightfield. Returns the opportunity record: id, createdAt, fields (map of typed field values), relationships, httpLink, updatedAt, and externalId. Required: id.
- **List all Lightfield opportunities** (List). List opportunities in Lightfield, paginated with offset and limit (max 25 per page, default 25). Filter by $field query parameters (e.g. ?$account=acc_123) and pass status=trashed to list records currently in the trash. Returns: id, createdAt, updatedAt, fields, httpLink, relationships, externalId. Optional: status.
- **Delete a Lightfield opportunity by ID** (Delete). Delete an opportunity in Lightfield by moving it to the trash (soft delete; it can be restored, and associated tasks, notes, and meetings are kept). Calling delete on an already-trashed opportunity is a no-op that returns the existing record. Required: id. Returns the deleted record (id, createdAt, fields, httpLink, relationships, updatedAt, externalId).
- **Lightfield opportunities restore** (Restore). Restore a trashed opportunity in Lightfield, bringing it back to active. Find trashed opportunities first via list with status=trashed. Calling restore on an opportunity that is not trashed is a no-op that returns the existing record. Returns: id, createdAt, updatedAt, fields, httpLink, relationships, externalId. Required: opportunity_id.
- **Lightfield tasks get definitions** (Get). Get the field and relationship definitions available on tasks in Lightfield. Returns fieldDefinitions, objectType, and relationshipDefinitions — use it to discover the available system fields and relationship keys before creating or updating task records.
- **Create a Lightfield task** (Create). Create a new task in Lightfield. Returns the created task including id, fields, relationships, createdAt, and httpLink. Required: $title, $status, and $assignedTo. Supports idempotency via the Idempotency-Key header.
- **Update a Lightfield task by ID** (Update). Update an existing task in Lightfield by id — only the included fields and relationships are modified. Returns the updated task including id, fields, relationships, updatedAt, and httpLink. Required: id. Supports idempotency via the Idempotency-Key header.
- ...and 37 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
