---
title: "Standard MCP tools"
description: "Every tool of the standard Lookio MCP server, with the scope it needs, what it costs and what it changes, so you know what an agent can do."
canonical: "https://lookio.app/docs/mcp/standard-tools"
updated: "2026-11-03"
---

# Standard MCP tools

The standard server at `https://mcp.lookio.app/mcp` offers one tool per task. A connection sees only the tools its scopes allow. `send_feedback` needs no scope, so it is always offered. The conversation tools are offered to a person's connection and to an API key alike: a person reaches their own chats, a key the conversations it started. The logs tools read the workspace's four logs: conversations, answers, indexing and activity.

Tool descriptions are written for the model. They say what a tool costs in the first sentence and what to do next, such as "poll `get_resource` until it is `ready`".

## Account

| Tool                 | Scope          | What it does                                                                                                                  |
| -------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `get_account`        | `account:read` | The workspace, the plan, the credit balance and the plan limits. `credential.scopes` lists what this connection may do. Free. |
| `get_credit_balance` | `account:read` | The balance and every credit grant with its expiry. Free.                                                                     |
| `get_usage`          | `usage:read`   | Credits spent and answers completed over a period, by day, week or month. 30 days by default. Free.                           |
| `send_feedback`      | none           | Records feedback when a tool or workflow behaves differently from what was expected. Free.                                    |

## Resources

| Tool                   | Scope              | What it does                                                                                                                                                                                                                                                                                     |
| ---------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `list_resources`       | `resources:read`   | Resources, newest first, with their import status. Pages with `cursor`.                                                                                                                                                                                                                          |
| `get_resource`         | `resources:read`   | One resource and its status. Call it until the status is `ready` or `failed`.                                                                                                                                                                                                                    |
| `get_resource_content` | `resources:read`   | The indexed text, in Markdown, and what could not be read. A long text comes in windows: while `has_more` is true, continue with `offset` set to `next_offset`. (`truncated` is about the resource itself being longer than the 200,000 characters Lookio keeps readable, not about the window.) |
| `add_text_resource`    | `resources:write`  | Adds a text.                                                                                                                                                                                                                                                                                     |
| `add_web_page`         | `resources:write`  | Adds one public web page.                                                                                                                                                                                                                                                                        |
| `preview_site`         | `resources:write`  | Finds a site's pages without importing anything.                                                                                                                                                                                                                                                 |
| `add_site`             | `resources:write`  | Imports a site with include and exclude rules. Defaults to manual on Free and weekly on paid plans. Recurring updates require a paid plan.                                                                                                                                                       |
| `list_site_pages`      | `resources:read`   | The pages of a site and why one failed. Filter with `status`, and page with `cursor`.                                                                                                                                                                                                            |
| `update_site_rules`    | `resources:write`  | Replaces a site's rules, then syncs. Omit the schedule to keep the current interval. Recurring updates require a paid plan.                                                                                                                                                                      |
| `retry_failed_pages`   | `resources:write`  | Reads a site's failed pages again.                                                                                                                                                                                                                                                               |
| `update_resource`      | `resources:write`  | Changes a title, tags or source, or a text resource's text.                                                                                                                                                                                                                                      |
| `reindex_resource`     | `resources:write`  | Reads a resource again, or syncs a site.                                                                                                                                                                                                                                                         |
| `delete_resource`      | `resources:delete` | Deletes a resource and everything indexed from it. Permanent.                                                                                                                                                                                                                                    |

These operations spend no credits. Recurring site updates require a paid plan.

## Tags

| Tool         | Scope            | What it does                                                                   |
| ------------ | ---------------- | ------------------------------------------------------------------------------ |
| `list_tags`  | `resources:read` | Every tag, with how many resources carry it and how many assistants follow it. |
| `rename_tag` | `admin`          | Renames a tag everywhere, or merges it into an existing one.                   |
| `delete_tag` | `admin`          | Removes a tag from every resource and assistant.                               |

## Assistants and questions

| Tool               | Scope               | What it does                                                                                                                                |
| ------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_assistants`  | `assistants:read`   | A summary of the assistants this connection may use: name, what each reads, how many resources, followed tags and the start of its context. |
| `get_assistant`    | `assistants:read`   | One assistant in full, with its complete context, guidelines, resource ids and followed tags.                                               |
| `create_assistant` | `assistants:write`  | Creates an assistant. Its `knowledge` mode is `all`, `selected` or `tags`. Free.                                                            |
| `update_assistant` | `assistants:write`  | Changes the fields you send and keeps the others.                                                                                           |
| `delete_assistant` | `assistants:delete` | Deletes an assistant. Its resources are kept. Refused while a widget uses it.                                                               |
| `ask_assistant`    | `query`             | Asks a question and returns the answer with its citations. **Spends credits.**                                                              |

`ask_assistant` costs 30 credits in the default Flash mode, 10 in Eco and 80 in Deep, whatever the answer length or whether it finds a source. Only an assistant with no resources is refused before the model and costs nothing. It takes a `mode`. Every answer is kept in a conversation: the result carries its `conversation_id` and the answer's `message_id`, and a follow-up passes only the new question with that `conversation_id`. An API key can also pass `end_user`, its own id for the person asking, and `store: false` to keep nothing. `history` is for a conversation you keep yourself. An optional `idempotency_key` makes a retried call return the first result instead of asking twice. The tool tells the model to quote the citations when it relays the answer. Because it spends credits, it is marked as an action that clients should confirm.

## Conversations

A person reaches their own chats, which are personal. An API key reaches the conversations it started, and can narrow them to one of its users with `end_user`. See [Conversations and end users](/docs/platform/conversations-and-end-users).

| Tool                   | Scope             | What it does                                                                                                                                                                                                                       |
| ---------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_conversations`   | `assistants:read` | Your own conversations, latest activity first, optionally with one assistant or, for a key, one `end_user`. Pages with `cursor`. Free.                                                                                             |
| `get_conversation`     | `assistants:read` | One of your conversations with its messages, citations, answer ids and thumbs. Free.                                                                                                                                               |
| `rename_conversation`  | `query`           | Changes the title of one of your conversations. Free.                                                                                                                                                                              |
| `delete_conversation`  | `query`           | Permanently deletes one of your conversations and its messages. A key's conversation also leaves the logs.                                                                                                                         |
| `send_answer_feedback` | `query`           | Records a thumb, with an optional comment, on one answer of a key's conversation. Free. API keys only. Not `send_feedback`, which reports a problem with Lookio itself. See [Feedback on answers](/docs/platform/answer-feedback). |

## Logs

The workspace's four logs, all free. See [Logs](/docs/platform/logs) for what each one holds, who reads it and how long it is kept. Every list pages with `cursor`: pass `next_cursor` back unchanged while `has_more` is true. The conversation tools were called `list_logs`, `get_log_conversation` and `get_log_stats` before 18 October 2026.

**Conversations.** What people outside the workspace asked: the visitors of widgets and the users of your product who ask through an API key or the MCP server. A member's own chats are never here. A person needs the right to edit assistants.

| Tool                         | Scope              | What it does                                                                                                                                                                                |
| ---------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_conversation_logs`     | `assistants:write` | Conversations latest first, filtered by `channel`, `widget_id`, `api_key_id`, `assistant_id`, `rating`, `end_user`, `q`, `from` and `to`. `rating` `down` finds where the assistant failed. |
| `get_conversation_log`       | `assistants:write` | One logged conversation in full: messages, citations, mode, cost, duration, thumbs and comments.                                                                                            |
| `get_conversation_log_stats` | `assistants:write` | Conversations, questions, people, credits, thumbs and conversations per channel, over the same filters.                                                                                     |

**Answers.** Every answer from any channel (`chat`, `lookio_ai`, `api`, `mcp`, `widget`), metadata only: no question or answer text. A line carries the `conversation_id` when the exchange was kept.

| Tool                   | Scope        | What it does                                                                                                                                                        |
| ---------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_answer_logs`     | `usage:read` | Answers latest first, filtered by `channel`, `assistant_id`, `widget_id`, `api_key_id`, `member_id`, `result` (`answered` or `no_answer`), `mode`, `from` and `to`. |
| `get_answer_log_stats` | `usage:read` | Answers, answered and not, credits, tokens, average time and answers per channel, over the same filters.                                                            |

**Indexing.** Every file, page or text read and indexed, with its status and the reason of a failure.

| Tool                     | Scope            | What it does                                                                                                                                                                         |
| ------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `list_indexing_logs`     | `resources:read` | Indexings latest first, filtered by `resource_id`, `status`, `source_type`, `q`, `include_unchanged`, `from` and `to`. Unchanged pages of a site sync are left out unless asked for. |
| `get_indexing_log_stats` | `resources:read` | Indexings, indexed, failed, in progress, unchanged and words indexed, over the same filters.                                                                                         |

**Activity.** Who changed what in the workspace, never content. Admins only, through a personal connection with the `admin` scope: an API key cannot read it.

| Tool                | Scope   | What it does                                                                                                                                                                                                                           |
| ------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_activity_log` | `admin` | Changes latest first, filtered by `actor_id`, `origin` (`app`, `api`, `cli`, `mcp`, `agent`, `system`), `target_type`, `target_id`, `action`, `q`, `from` and `to`. Answers "who changed this assistant?" and "what did this key do?". |

## Widgets

A [widget](/docs/widget/overview) shows one of your assistants to anonymous visitors on a website.

| Tool                        | Scope               | What it does                                                                                                                                                                                                                                                                                                                                |
| --------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_widgets`              | `assistants:read`   | The widgets, with their status, allowed domains, settings, limits, install snippets and this month's numbers. Free.                                                                                                                                                                                                                         |
| `get_widget`                | `assistants:read`   | One widget with its snippets: `bubble`, `embed`, `hosted` and `iframe`. Free.                                                                                                                                                                                                                                                               |
| `create_widget`             | `assistants:write`  | Creates a widget and returns its snippets. Free to create, but visitors' answers are charged to the workspace in the widget's mode, capped by its limits. Set `allowed_domains`, or nothing shows on any site. A new widget has the chat bubble on, and the in-page and hosted page formats off (`settings.embed`, `settings.hosted_page`). |
| `update_widget`             | `assistants:write`  | Changes only what you send: pause it, change its assistant, mode, domains, settings or limits. Free.                                                                                                                                                                                                                                        |
| `duplicate_widget`          | `assistants:write`  | Copies a widget under a new id, named `<name> (copy)`, installed nowhere yet. Counts against the plan's widget limit. Free.                                                                                                                                                                                                                 |
| `clear_widget_image`        | `assistants:write`  | Removes a widget's launcher image or favicon (`kind`: `launcher` or `favicon`). Setting an image has no tool: use `PUT /v1/widgets/{widget_id}/images/{kind}`, the CLI or the app.                                                                                                                                                          |
| `delete_widget`             | `assistants:delete` | Permanently deletes a widget and its visitors' conversations. Pausing it with `update_widget` keeps it.                                                                                                                                                                                                                                     |
| `list_widget_conversations` | `assistants:write`  | What visitors asked through a widget, latest first, with their thumbs and the cost. The logs filtered on the widget.                                                                                                                                                                                                                        |
| `get_widget_conversation`   | `assistants:write`  | One visitor conversation with its messages, citations, cost, thumbs and comments.                                                                                                                                                                                                                                                           |

Tools that create or change a record, such as `add_text_resource`, `add_web_page`, `add_site`, `create_assistant` and `create_widget`, also take an optional `idempotency_key`.

## Members

| Tool                     | Scope   | What it does                                                                                              |
| ------------------------ | ------- | --------------------------------------------------------------------------------------------------------- |
| `list_members`           | `admin` | Members, their permissions and the assistants each may use. Admins only.                                  |
| `set_member_permissions` | `admin` | Sets some permissions of a member and replaces the assistants they may use. Admins only, paid plans only. |

## What is not available over MCP

- Uploading a file. Use the app, the CLI or the API.
- Streaming an answer. `ask_assistant` returns the whole answer.

For anything a tool does not cover, [Code Mode](/docs/mcp/code-mode) can call any JSON endpoint of the REST API.

## Tool hints

Each tool declares whether it only reads, whether it can destroy data and whether repeating it is harmless, using the MCP annotations `readOnlyHint`, `destructiveHint` and `idempotentHint`. Clients use them to decide what to confirm with you. Destructive tools also tell the model to confirm with the person first. See [Safety and permissions](/docs/mcp/safety-and-permissions).

## Errors

A failed tool call returns an error result with the same `code`, `message` and `docs_url` that the REST API uses. See [Errors](/docs/api/errors).
