# AI agents (MCP)

> Let Claude, Cursor, and other AI agents set up and manage your search through Findlane's MCP server.

Findlane has an MCP server, so AI agents can set up and look after your search. Connect it once and ask, for example, "Add Findlane search to this app". The agent creates an index, loads your records, chooses the settings, tests some searches, allows your site's origin, and writes the search UI.

## Connect

The server's address is `https://api.findlane.dev/mcp`. When an agent first connects, Findlane opens in your browser: sign in, choose the workspace the agent can manage, and allow it.

### Claude Code

```sh
claude mcp add --transport http findlane https://api.findlane.dev/mcp
```

Then run `/mcp` in Claude Code, choose **findlane**, and sign in.

### Cursor

Add the server to `~/.cursor/mcp.json`, or to `.cursor/mcp.json` in a project:

```json
{
  "mcpServers": {
    "findlane": { "url": "https://api.findlane.dev/mcp" }
  }
}
```

### VS Code

Add the server to `.vscode/mcp.json`:

```json
{
  "servers": {
    "findlane": { "type": "http", "url": "https://api.findlane.dev/mcp" }
  }
}
```

### Claude

In Claude's settings, open **Connectors**, choose **Add custom connector**, and enter the address.

Other clients work too if they support remote MCP servers (Streamable HTTP) with OAuth.

## What agents can do

| Tool                                                       |                                                                                                 |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `get_workspace`, `list_indexes`                            | The plan, usage, and indexes.                                                                   |
| `create_index`, `get_index`, `delete_index`                | Create, inspect, and delete indexes. `get_index` lists every field with its type.               |
| `get_records`, `upsert_records`, `delete_records`          | Read records, and write or delete up to 100 a call.                                             |
| `create_upload_key`                                        | A write key for one index that expires in an hour, with commands to upload a file of records.   |
| `update_settings`, `wait_for_settings`                     | Change any [search setting](/docs/settings.md), such as facets, sorts, or synonyms.                |
| `search`                                                   | Try searches, filters, facets, and sorts.                                                       |
| `set_allowed_origins`, `set_public_policy`, `rotate_public_id` | [Browser search access](/docs/security.md#public-ids-and-allowed-origins).                     |
| `get_search_analytics`                                     | Top searches, and searches that found nothing.                                                  |
| `list_api_keys`, `create_api_key`, `delete_api_key`        | [API keys](/docs/security.md#api-keys) for your servers.                                           |
| `search_docs`, `read_docs`                                 | Search these docs by section, or read a page as Markdown.                                       |

It also has two prompts. In Claude Code, run them as `/mcp__findlane__add-search` and `/mcp__findlane__fix-no-results`:

- **add-search** sets up an index from your project's data and builds the search UI.
- **fix-no-results** reads the searches that found nothing and fixes what settings can fix, such as missing synonyms.

Agents load small batches of records directly. For a whole catalog, they create an upload key and run a command from your shell, so your records don't pass through the conversation.

## Access and safety

- **One workspace.** A connection manages the workspace you chose, with your role: owners can change everything, and other members can read settings, search, and see analytics. It can't change members, billing, or workspace settings.
- **Free test searches.** Searches an agent runs to check its work aren't counted toward your plan or shown in analytics. A workspace can run 600 an hour.
- **Confirmations.** Deleting an index or records, deleting a key, and rotating a public ID need the name typed back, and clients ask you before running them.
- **Records are data.** Agents are told not to follow instructions found in records, search results, or analytics.
- **Keys.** Keys an agent creates appear on the **API keys** page with the app's name. Upload keys expire after an hour.
- **Limits.** 120 requests a minute per connection, and 100 records or 256 KB a call.

To disconnect an agent, revoke it under **Connected apps** on the **API keys** page. Its access stops at once.
