# Coda (/search/coda)

Connect Coda to search page and table-row content. **Member accounts** and **Service account** modes both require each reader's personal Coda connection. A service source also restricts the allowed parent documents.

## Connect \[#connect]

1. An admin adds **Coda** in **Settings → Sources** and selects **Member accounts**, or configures the service source below.
2. Each teammate opens **Integrations → Coda → ⋯ → Connect** and authorizes their account.
3. Search text in a page or row that account can access, then read a result.

The managed Coda MCP provider must be configured before **Connect** is available. Members authorize that provider rather than choosing an arbitrary server URL. Coda may use [Superhuman sign-in](https://help.coda.io/en/articles/5473507-reset-your-password).

## Search and read \[#search-and-read]

Use a focused phrase from a page or table row. A native query can target a document URI such as `superhuman://docs/DOC_ID`; older `coda://docs/DOC_ID` references also work.

Date-bounded queries without terms can use the provider's recency listing. Coda does not accept these exact date bounds directly, so Sim checks returned timestamps and reports limited coverage. Results and reads are bounded; continuation is used where the server advertises it.

Sim validates the advertised schemas and uses only `search`, `url_convert`, `content_read`, `document_outline`, and `table_rows_read`, with the member's current grant. Search cannot invoke Coda write tools or use another server URL.

Existing personal REST-token connections can still search document titles. This compatibility path requires Coda's reported account email to match the reader's verified Sim email and does not provide MCP page or table-row content search.

## Add a service boundary \[#add-a-service-boundary]

A service boundary needs a standard Coda REST API token, separate from each reader's MCP OAuth grant. Do not use an MCP-restricted token for it.

1. Choose **Service account** in Sources, then **Add connection** or an existing Coda source.
2. Use **Service account → Add API token** for a token owned by an account that can read the allowed documents.
3. Select **Documents**. The picker shows documents the token owner has opened; use the paired document-ID field for others.
4. Optionally set **Enterprise organization ID**. This requires an Enterprise organization administrator token; workspace-admin access is insufficient.
5. Save and select the source connection. Members still connect personally in **Integrations**.

Each result's parent document must be within the selected scope and currently readable by the service token. An empty selection does not bypass token access checks. With an Enterprise organization ID, the Admin API must verify the exact document in that organization. The member's MCP access remains required on search and read.

To rotate the service token, add the replacement credential and update the source.

## Troubleshooting \[#troubleshooting]

| Problem | Check |
| - | - |
| `Not configured` | Ask an admin to configure the managed Coda MCP provider. |
| Only document titles match | Use personal MCP OAuth instead of a legacy REST token. |
| Document missing from service picker | Open it with the token owner or enter its document ID. |
| No results | Check member access, selected documents, and service-token access. |
| Enterprise verification fails | Check the exact organization ID, org-admin role, and token validity. |
| MCP schema or authorization changed | Reconnect or update the managed provider. Search reports unsupported tools instead of invoking them. |

## Related docs \[#related-docs]

- [Coda public API](https://coda.io/developers/apis/v1)
- [Enterprise Admin API](https://coda.io/developers/apis/admin/v1)
- [Knowledge-base connectors](/knowledgebase/connectors) — separate REST ingestion
