Standard MCP tools
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.
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.
| 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. |
Logs
The workspace’s four logs, all free. See 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 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_assistantreturns the whole answer.
For anything a tool does not cover, 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.
Errors
A failed tool call returns an error result with the same code, message and docs_url that the REST API uses. See Errors.