DataSearcher MCP
Enables executing SQL queries and performing data analysis directly on ClickHouse databases, including automatic SQL dialect translation.
Provides an embedded analytical engine for ML tasks (clustering, forecasting) and federated queries across multiple databases, with automatic SQL translation.
Enables executing SQL queries and performing data analysis directly on MySQL databases, including automatic SQL dialect translation.
Provides LLM-based classification (classify_rows) and semantic search (semantic_search) using locally hosted Ollama models.
Enables executing SQL queries and performing data analysis directly on PostgreSQL databases, including automatic SQL dialect translation.
Enables executing SQL queries and performing data analysis directly on SQLite databases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DataSearcher MCPshow top 5 regions by revenue"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DataSearcher MCP
Подключи базу данных к Claude или Cursor — и спрашивай на русском: «какие товары продаются хуже всего», «найди аномалии в продажах», «прогноз на 3 месяца». 46 инструментов: SQL, статистика, ML, графики, дашборды + enterprise: read-only guard, PII masking, аудит-логи, Knowledge Base, dbt, DataHub, semantic search.
Что это такое?
DataSearcher MCP — это мост между вашей базой данных и ИИ-ассистентом (Claude Desktop, Cursor, VS Code).
Обычно, чтобы проанализировать данные из БД, нужно писать SQL-запросы вручную или открывать BI-систему. С этим MCP-сервером вы просто разговариваете с ИИ на обычном русском языке, а он сам:
пишет и выполняет SQL к вашей базе (read-only, с защитой от изменений)
строит графики и дашборды
находит аномалии, корреляции, инсайты
прогнозирует тренды (ML)
генерирует HTML-отчёты и XLSX-экспорты
маскирует PII (email, телефон, ИНН) в результатах
логирует все запросы для аудита
Пример диалога
Вы: Подключись к моей PostgreSQL и покажи топ-5 регионов по выручке
ИИ: [вызывает sql_query → SQL выполняется прямо в вашей PostgreSQL]
Вот топ-5 регионов по выручке:
| Регион | Выручка | Заказов |
|--------------|-------------|---------|
| Москва | 1 358 468 ₽ | 55 |
| Новосибирск | 1 036 564 ₽ | 45 |
...
Вы: Найди аномалии в суммах заказов
ИИ: [вызывает detect_anomalies → z-score + IQR]
Обнаружено 3 выброса в колонке amount:
- Заказ #1047: 49 870 ₽ (z-score = 4.2)
- Заказ #2891: 48 200 ₽ (z-score = 3.8)
...
Вы: Построй дашборд и сохрани как HTML
ИИ: [вызывает create_public_dashboard → генерирует HTML с графиками и фильтрами]
Дашборд создан! Откройте файл:
/tmp/datasearcher_mcp_dashboards/abc123/dashboard.htmlПочему это круто?
Без DataSearcher MCP | С DataSearcher MCP |
Пишешь SQL вручную | ИИ сам пишет и выполняет SQL |
Открываешь BI-систему для графиков | Графики и дашборды прямо в чате |
Excel для сводных таблиц |
|
Python + Jupyter для ML | Прогнозы и кластеризация через чат |
Каждая БД — свой диалект SQL | Пишешь на DuckDB SQL — сервер переводит |
Нет защиты от случайного DROP | Read-only guard блокирует DML/DDL |
PII в открытом виде | Авто-маскирование email/телефон/ИНН |
Нет аудита кто что запросил | Полный лог запросов и ошибок |
Related MCP server: GraphJin
Чем отличается от других MCP-серверов?
1. SQL выполняется в вашей базе, а не во встроенной
Когда вы спрашиваете «покажи продажи по регионам», SQL выполняется напрямую в вашей PostgreSQL/MySQL/ClickHouse — с индексами, оптимизатором, кешем. DuckDB подключается только для ML-задач (кластеризация, прогнозы), выгружая только нужные колонки.
2. Пишешь на одном SQL — работает в любой БД
Написали DATE_TRUNC('month', date_col) (DuckDB-синтаксис)? Сервер автоматически переведёт под диалект source DB через sqlglot.
3. Кросс-БД JOIN через federated-режим
Прицепите PostgreSQL и MySQL к DuckDB одновременно и сделайте JOIN между ними — без выгрузки данных.
4. Enterprise-безопасность
Read-only guard — блокирует INSERT/UPDATE/DELETE/DROP/TRUNCATE
PII auto-detection + masking — автоматически находит email, телефон, ИНН, СНИЛС, паспорт и маскирует в результатах
Schema ACL — фильтрация raw/staging таблиц,
allowed_schemas/blocked_tablesRate limiting — ограничение SQL/ML запросов в минуту
HTTP Bearer auth — для удалённого доступа
Query timeout — защита от тяжёлых запросов
5. Knowledge Base + метаданные
SQLite-хранилище бизнес-описаний: что значит каждая таблица и колонка, кто владелец данных, какие метрики как считаются. Наполняется из:
Схемы БД (автоматически)
dbt manifest (описания, тесты, теги)
DataHub (lineage, глоссарий)
Ручной правки через
update_metadata
6. Семантический поиск + Example Store
semantic_search— поиск по текстовым данным через LLM embeddingsExample Store — база пар «NL-запрос → SQL» для few-shot обучения
search_knowledge— поиск по метаданным и примерам
7. REST API как источник данных
Подключайте не только БД, но и REST API — данные выгружаются в DuckDB и доступны всем 46 инструментам анализа.
8. BI link builder
Генерация URL для Superset, Grafana, Yandex Datalens, Tableau, Power BI с предзаполненными фильтрами.
Быстрый старт
Шаг 1. Установка
git clone https://github.com/MarkIvor/mcp-datasearcher.git
cd mcp-datasearcher
pip install -e ".[all]"Шаг 2. Настройка подключений
cp connections.example.yaml connections.yamlconnections:
- name: my_db
db_type: postgresql # postgresql | mysql | clickhouse | sqlite | api
host: localhost
port: 5432
database: mydb
username: ${DB_USER}
password: ${DB_PASSWORD}
mode: auto # auto | remote | dump | federated
# ── Семантический слой ──
allowed_schemas: [mart, analytics]
blocked_tables: [raw_*, stg_*, tmp_*]
# REST API тоже можно:
- name: crm_api
db_type: api
base_url: https://api.company.com/v1
auth_header: "Authorization: Bearer ${CRM_TOKEN}"
endpoints:
- path: /customers
table_name: customers
mode: dump
# dbt (опционально):
# dbt:
# manifest_path: ./target/manifest.json
# DataHub (опционально):
# datahub:
# server_url: http://datahub.company.com:8080
# token: ${DATAHUB_TOKEN}Шаг 3. Подключение к Claude Desktop
{
"mcpServers": {
"datasearcher": {
"command": "datasearcher-mcp",
"args": ["--config", "/path/to/connections.yaml"]
}
}
}Cursor (.cursor/mcp.json):
{"mcpServers": {"datasearcher": {"command": "datasearcher-mcp", "args": ["--config", "/path/to/connections.yaml"]}}}Docker:
cp connections.example.yaml connections.yaml
docker compose up -d # → http://localhost:8000/mcpHTTP:
datasearcher-mcp --transport http --host 0.0.0.0 --port 8000 --auth-token secret12346 инструментов
SQL и подключения
Инструмент | Что делает |
| SQL-запрос (read-only, markdown/json/csv, авто-трансляция диалектов) |
| План выполнения SQL (EXPLAIN) |
| Структура таблицы (remote или DuckDB) |
| Подключить новую БД в рантайме |
| Обновить схему после изменений в БД |
| Проверить доступность подключения |
| Загрузить CSV/Excel/Parquet |
Аналитика данных
Инструмент | Что делает |
| Умное саммари таблицы |
| Статистика по колонкам |
| Аудит качества (пропуски, дубликаты) |
| Топ-5 инсайтов автоматически |
| Выборка строк |
| Дубликаты (точные и fuzzy) |
| Выбросы (z-score, IQR) |
| Паттерны в тексте (email, ИНН, телефон) |
| SQL с форматами markdown/json/csv |
Статистика и связи
Инструмент | Что делает |
| Корреляции (Пирсон/Спирмен) |
| Форма распределения |
| Кросс-табуляция + Хи-квадрат |
| Сводная таблица (Excel PIVOT) |
| t-тест, Mann-Whitney, KS, Хи-квадрат |
| Сегментация, RFM-анализ |
| Сравнение двух таблиц |
| Тренды, сезонность, скользящее среднее |
ML и прогнозы
Инструмент | Что делает |
| Прогноз тренда (регрессия) |
| Кластеризация K-Means/DBSCAN |
| Важность признаков (Random Forest) |
| Классификация строк через LLM |
| Семантический поиск через embeddings |
| Генерация SQL из описания на русском |
Визуализация и отчёты
Инструмент | Что делает |
| График → PNG + JSON |
| Дашборд 4-6 графиков |
| Standalone HTML с фильтрами |
| Нарратив с графиками |
| Экспорт в CSV |
| Экспорт в XLSX с форматированием |
| URL для Superset/Grafana/Datalens |
Управление данными
Инструмент | Что делает |
| Нормализация, one-hot, извлечение дат |
| JOIN (с авто-определением ключей по FK) |
| Обновить метаописание в Knowledge Base |
| Список расчётных метрик с формулами |
| Скан PII в таблице |
| Логи запросов/ошибок/аудита |
| Добавить эталон «NL→SQL» в Example Store |
| Поиск по базе знаний и примерам |
| Импорт метаданных из dbt manifest |
| Синхронизация с DataHub |
Ресурсы (5)
schema://tables— таблицы с типами, бизнес-описаниями, PII-меткамиschema://diagram— Mermaid ER-диаграммаknowledge://tables— метаданные, владельцы, метрикиconnection://list— подключения и режимыreasoning://last— Chain of Thought (история запросов)
Промпты (2)
analyze_table— системный промпт аналитикаweekly_report— шаблон еженедельного отчёта
Enterprise-фичи
Read-only guard
Все SQL-запросы проверяются: INSERT/UPDATE/DELETE/DROP/TRUNCATE/ALTER — заблокированы. Разрешены только SELECT/WITH/EXPLAIN/SHOW/DESCRIBE.
# Настройка
DATASEARCHER_MCP_READ_ONLY=true # false = отключить guardPII auto-detection + masking
При загрузке схемы сервер сканирует текстовые колонки и автоматически определяет: email, телефон (РФ), ИНН, СНИЛС, паспорт, банковскую карту, IP-адрес.
В результатах SQL-запросов PII маскируется: a***@company.com, +7(912)***-**-89, 7710******.
DATASEARCHER_MCP_PII_MASKING=trueKnowledge Base (SQLite)
Бизнес-метаданные в SQLite: описания таблиц, колонок, владельцы, теги, расчётные метрики. Наполняется из 4 источников (fallback-цепочка):
Схема БД — автоматически (DESCRIBE, information_schema, FK)
dbt manifest —
load_dbtинструмент (описания, тесты, теги, слои)DataHub —
sync_datahubинструмент (lineage, глоссарий, владельцы)Ручная правка —
update_metadataинструмент
Логирование и аудит
Каждый SQL-запрос, ML-вызов, ошибка — логируется в SQLite (append-only):
query_log: timestamp, tool, SQL, таблица, длительность, статус
error_log: тип ошибки, сообщение, SQL, stack trace
audit_log: действия (attach, refresh, load_file, update_metadata)
DATASEARCHER_MCP_LOG_ENABLED=trueRate limiting
Per-tool throttling: SQL — 60/мин, ML — 10/мин (настраивается).
Schema ACL
Фильтрация таблиц по бизнес-слою:
allowed_schemas: [mart, analytics] # только эти схемы
blocked_tables: [raw_*, stg_*, tmp_*] # glob-паттерны исключенийREST API connector
Подключение данных из REST API как обычных таблиц:
- name: crm_api
db_type: api
base_url: https://api.company.com/v1
auth_header: "Authorization: Bearer ${CRM_TOKEN}"
endpoints:
- path: /customers
table_name: customers
pagination: offset # offset | cursor | none
mode: dump # выгрузить в DuckDBРежимы работы подключений
Режим | Как работает | Когда использовать |
| SQL → source DB, ML → DuckDB (лениво) | Универсальный |
| Всё SQL в source DB, без DuckDB | БД быстрая, ML не нужен |
| Таблицы выгружаются в DuckDB при старте | Файлы, маленькие БД |
| Source DB прицепляется к DuckDB | Кросс-БД JOIN |
Поддерживаемые БД
БД | db_type | Remote SQL | Federated |
PostgreSQL |
| ✅ | ✅ |
MySQL / MariaDB |
| ✅ | ✅ |
ClickHouse |
| ✅ | — |
SQLite |
| ✅ | ✅ |
REST API |
| — | — |
CSV | файл | — | — |
Excel (.xlsx) | файл | — | — |
Parquet | файл | — | — |
LLM для классификации и поиска
| Как работает | Когда использовать |
| LLM-клиент ( | Ollama, vLLM, OpenAI |
| Модель хоста через MCP sampling | Claude Desktop |
| Инструкция для хоста | Без LLM |
Работает на бюджетных LLM — достаточно 7B-14B.
Переменные окружения
Префикс DATASEARCHER_MCP_:
Переменная | По умолчанию | Описание |
|
| Файл подключений |
|
| Read-only guard (блок DML/DDL) |
|
| Авто-маскирование PII |
|
| Логирование запросов/ошибок |
|
| Rate limiting |
|
| SQL-запросов в минуту |
|
| ML-запросов в минуту |
|
| Таймаут SQL (сек) |
|
| Трансляция SQL между диалектами |
| `` | Bearer token для HTTP auth |
|
| DuckDB при старте |
|
| Режим по умолчанию |
|
| Example Store (few-shot) |
| — | URL LLM API (OpenAI-compatible) |
| — | Модель LLM |
Архитектура
datasearcher-mcp/
src/datasearcher_mcp/
__main__.py # CLI: --transport, --config, --auth-token
config.py # 30+ настроек (pydantic-settings)
engine.py # движок: remote/dump/auto/federated, ACL, KB, PII
server.py # FastMCP: 46 tools + 5 resources + 2 prompts
session.py # DuckDB-сессия (ленивая)
sql_guard.py # read-only enforcement (блок DML/DDL)
error_handler.py # человекочитаемые SQL-ошибки
logging_db.py # SQLite append-only логи (query/error/audit)
pii_detector.py # авто-детекция + маскирование PII
rate_limiter.py # per-tool throttling
knowledge_base.py # SQLite KB (описания, владельцы, метрики)
dbt_loader.py # парсинг dbt manifest.json
datahub_client.py # DataHub GraphQL клиент
example_store.py # NL→SQL пары + semantic search
bi_linker.py # URL builder для BI-инструментов
llm_client.py # LLM-клиент (OpenAI-compatible)
embeddings.py # semantic search через embeddings
connectors/
base.py, sqlalchemy_base.py
postgres.py, mysql.py, clickhouse.py, sqlite_conn.py
api.py # REST API коннектор
tools/ # 30 аналитических инструментов
render/ # matplotlib PNG + парсинг маркеров
prompts/ # системный промпт аналитикаКлючевые решения
Решение | Почему так |
DuckDB выключен по умолчанию | Source DB умнее (индексы, оптимизатор) |
sqlglot для трансляции SQL | Один SQL — работает в любой БД |
Federated через DuckDB extensions | Кросс-БД JOIN без ETL |
Read-only guard | Защита production-данных от случайных изменений |
PII auto-detection | Compliance без ручной разметки |
SQLite для KB и логов | Zero-dependency, embedded, не требует сервера |
Example Store | Few-shot обучение из прошлых запросов |
Технологии
Слой | Технология |
MCP | mcp[cli] 1.28 (FastMCP, stdio/SSE/HTTP) |
SQL | Source DB (push-down) или DuckDB (lazy/federated) |
Трансляция SQL | sqlglot |
ML | scikit-learn, scipy, numpy |
Графики | matplotlib (PNG) |
KB / логи | SQLite (embedded) |
Embeddings | OpenAI-compatible /v1/embeddings |
Драйверы БД | psycopg2, pymysql, clickhouse-connect, aiosqlite |
Файлы | CSV/Parquet (DuckDB), Excel (openpyxl) |
Дашборды | HTML + DuckDB-WASM + Chart.js |
Auth | Bearer token (Starlette) |
Лицензия
MIT
Available Tools
46 toolsadd_exampleA
Добавить эталонный пример «NL-запрос → SQL» в Example Store (ТЗ 1.3). Используется для few-shot обучения generate_sql.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | ||
| query | Yes | ||
| is_golden | No | ||
| table_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool appends an example, but it does not mention whether duplicate queries are allowed, whether existing examples are replaced, how is_golden affects behavior, or any validation or side effects. The mutation implications are only implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action and followed by the purpose. Both sentences earn their place, and there is no redundant or filler wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core operation and purpose are clear, and an output schema exists so return values need not be described. However, the tool has four parameters with no schema descriptions and no annotations, and the description leaves the optional parameters' semantics and behavioral edge cases unexplained. It is adequate for a simple call but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the phrase 'NL-запрос → SQL' gives meaningful semantics for query and sql, the two required parameters. However, is_golden and table_name are left entirely to inference, and their defaults and roles are not explained. The description partially compensates for the schema, but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it adds a reference example (NL-query → SQL) to the Example Store, and explicitly ties this to few-shot training for generate_sql. This distinguishes it from sibling tools like sql_query or generate_sql, which consume rather than add examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating the tool is used for few-shot training of generate_sql, which implies when an agent should add an example. It does not explicitly state when not to use it or name alternatives, but the intended use is concrete enough for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_databaseA
Подключить новую БД в рантайме без перезапуска сервера. (фича B) Поддерживаемые db_type: postgresql, mysql, clickhouse, sqlite. mode: remote (push-down SQL), dump (выгрузка в DuckDB), auto (по умолчанию).
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | ||
| mode | No | auto | |
| name | Yes | ||
| port | No | ||
| db_type | Yes | ||
| database | No | ||
| password | No | ||
| username | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It adds useful detail about runtime behavior, supported db_type values, and the meaning of remote/dump/auto modes. However, it does not disclose side effects, required privileges, persistence of the attachment, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core purpose in the first line. The only minor filler is the parenthetical '(feature B)', but overall every major sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers essential domain concepts like db_type and mode, and an output schema exists for return values. However, for an 8-parameter mutation-like tool with no annotations, it omits prerequisites, side effects, and details about what 'name' refers to, leaving meaningful ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It enriches db_type with supported values and explains the mode enum semantics beyond the raw choices. Most other parameters are self-explanatory from their names, but 'name' and the exact connection semantics remain under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: attaching a new database at runtime without restarting the server. It names the operation, the resource, and key constraints, making it distinct from read-only or analysis tools. However, it does not explicitly contrast itself with siblings like test_connection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without restarting the server' gives a clear usage context: use this when you need to attach a database during runtime rather than through a restart/config change. It also mentions supported db_type values and modes, which clarifies common variants. It does not name alternatives or exclusions explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auto_insightsD
Авто-инсайты: топ-5 находок с графиками одним вызовом.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only gives a high-level promise and does not state whether the tool is read-only, requires a connected table, handles empty tables, or has any side effects. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (one sentence) but is under-specified rather than concise. It front-loads the tool name and gives no operational detail, so the sentence is not efficiently informative. The brevity does not serve the agent's needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool likely performs complex analysis and returns charts, the description is far from complete. It lacks any explanation of prerequisites, return format, parameter usage, or output schema details, making it inadequate for an agent to call correctly. The presence of an output schema does not compensate for the missing behavioral and parameter context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for its two parameters (table_name and focus), and the description does not explain their roles or required formats. An agent cannot infer what table_name refers to or how to use the optional focus parameter, so the description adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it returns 'top-5 findings with charts in one call,' giving a basic idea, but it does not specify what kind of data, what constitutes a 'finding,' or how it differs from other analysis tools like smart_summary or detect_anomalies. The verb is implicit and the resource is vague, so it only partially clarifies purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No mention of when to use this tool versus alternatives, no conditions or exclusions. The description provides zero guidance on selection criteria, leaving the agent to guess based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_bi_linkC
Сгенерировать URL для внешнего BI-инструмента с предзаполненными фильтрами (ТЗ 3.4). params: JSON {"region": "Москва", "product": "Widget A"} time_from/time_to: для Grafana (например '2024-01-01', '2024-02-01')
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | ||
| params | No | ||
| time_to | No | ||
| base_url | Yes | ||
| time_from | No | ||
| dashboard_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates the tool generates URLs but does not state whether this is a read-only operation, whether it makes external network calls, requires authentication, or has side effects. It also omits any error handling or edge-case behavior. The description gives a definition of intent but no transparency on execution behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief—essentially one sentence with examples. It front-loads the purpose and then gives parameter hints. However, it mixes purpose with parameter examples in a somewhat unstructured way, and the Russian text uses shorthand that is not universally clear. It is concise but could be better organized with headings or a clearer separation of purpose, parameters, and examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, zero schema descriptions, and no annotations, the description is underwhelming. It only clarifies two parameters (params, time_from/time_to) while leaving the required tool and base_url, plus dashboard_id, unexplained. The tool parameter is crucial because it determines the URL format for different BI systems, yet the description doesn't mention how the tool selection alters behavior. An agent would struggle to correctly invoke this for, say, Power BI versus Grafana without additional info. An output schema exists, but the description should still cover the core parameters sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides meaningful examples for 'params' (a JSON object of filters) and time_from/time_to (Grafana date format), which adds value beyond the schema's bare string type. However, it does not explain the required parameters 'tool' and 'base_url', nor the optional 'dashboard_id', leaving half of the parameters undefined. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Сгенерировать URL для внешнего BI-инструмента с предзаполненными фильтрами' (Generate URL for external BI tool with pre-filled filters). This identifies the action (generate URL), the resource (external BI tool), and the key feature (pre-filled filters). It distinguishes itself from siblings like build_dashboard and create_public_dashboard, which don't generate pre-filtered external links. However, the reference to 'ТЗ 3.4' is cryptic and the description doesn't explicitly clarify the output format beyond 'URL', so a perfect score is not warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. There is no mention of conditions, scenarios, or when not to use it. It only describes what it does, not how to choose it over other link-generation or dashboard tools. Since siblings include build_dashboard and create_public_dashboard, explicit selection criteria are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_dashboardD
Набор из 4-6 ключевых графиков одним вызовом.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It adds only a small behavioral fact (a batch of 4-6 charts in one call) but omits whether this is read-only, what the response contains, whether it mutates state, and how failures or partial results are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short, but brevity here is under-specification rather than effective conciseness. The only informative content is a count range and 'one call,' which is not enough to make the description useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details are not strictly required. However, the description still lacks the selection criteria for the charts, the role of the focus parameter, and any differentiation from closely related siblings, leaving the tool incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions neither table_name nor focus. An agent cannot infer what table_name refers to, what focus controls, or how the choice of default '' affects the dashboard, so the description does nothing to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase ('A set of 4-6 key charts in one call') with no explicit verb or resource, so it only weakly indicates that the tool builds or returns a dashboard. It also does not explain what makes charts 'key,' which prevents an agent from distinguishing it from sibling tools like visualize_data or create_public_dashboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use build_dashboard versus calling individual chart tools, visualize_data, or create_public_dashboard. The phrase 'in one call' implies a convenience/batching purpose, but there is no explicit context, precondition, or alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_rowsC
Классификация строк по категориям с помощью LLM.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| where | No | ||
| columns | Yes | ||
| categories | Yes | ||
| table_name | Yes | ||
| instruction | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only mentions that an LLM is used, without disclosing whether the operation is read-only, whether it writes results, how limits or filters affect behavior, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, which makes it easy to parse. However, it is underspecified for a tool with six parameters and several sibling alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description does not need to explain return values. Still, missing parameter semantics, usage guidance, and behavioral disclosure leave the agent unable to reliably construct a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the six parameters. Required fields like table_name, columns, and categories are completely undocumented beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: classifying rows into categories using an LLM. It identifies the resource (rows) and the mechanism (LLM-based categorization), though it does not explicitly differentiate from sibling tools like segment_data or cluster_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where a sibling tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cluster_analysisC
Кластеризация K-Means/DBSCAN с auto-выбором k (elbow).
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | kmeans | |
| columns | Yes | ||
| n_clusters | No | ||
| table_name | Yes | ||
| sample_size | No | ||
| min_cluster_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden, but it only mentions the algorithms and elbow-based auto-k selection. It does not disclose whether the operation writes to the database, how DBSCAN interacts with the k/n_clusters parameter, or what transformation or result the user should expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact phrase with no wasted words and it front-loads the core method. It is concise, though it achieves conciseness by omitting important details rather than by being efficiently comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with a required string columns parameter and no schema descriptions, this description is insufficient. It does not explain how to format columns, when n_clusters is used, the role of sample_size or min_cluster_size, or what the output contains, even though an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to explain the six parameters. It only clarifies the method choices and hints at auto-selection of k, leaving table_name, columns, sample_size, and min_cluster_size unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description, 'K-Means/DBSCAN clustering with auto-selection of k (elbow),' clearly identifies the operation as clustering and names the supported algorithms. It is specific about the resource and technique but lacks an explicit verb and does not distinguish the tool from sibling tools like segment_data or classify_rows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use cluster_analysis versus sibling tools such as segment_data or detect_patterns. The phrase 'clustering' implies the general use case, but no prerequisites, exclusions, or algorithm-selection guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_tablesC
Сравнение двух таблиц: общие/уникальные строки, расхождения.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | full | |
| table_a | Yes | ||
| table_b | Yes | ||
| key_columns | Yes | ||
| compare_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains what the output categories are, but does not state whether the operation is read-only, how keys are matched, what happens when key columns are not unique, or whether this can be expensive on large tables.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and free of fluff. However, for a tool with five parameters and no schema descriptions, this level of brevity becomes under-specification rather than appropriately sized conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters, three required, and no annotation support or schema descriptions. The description conveys only the general purpose and omits critical input semantics, mode behavior, and how it relates to sibling comparison tools. The existing output schema does not compensate for missing input guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter-level meaning. It does not explain how to specify key_columns, compare_columns, or how mode alters results; the enum values are self-descriptive but the crucial column-format details are absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation, comparing two tables, and lists concrete result categories: common/unique rows and discrepancies. This separates it from merge_tables and sql_query at a high level, though it does not explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus siblings such as merge_tables, find_duplicates, or sql_query. There is no mention of prerequisites, supported table sources, or which mode to pick in which scenario, so usage must be inferred entirely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
correlation_analysisC
Корреляционный анализ (Пирсон/Спирмен).
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | pearson | |
| columns | No | ||
| table_name | Yes | ||
| min_strength | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely names the analysis type and methods; it does not say whether the operation is read-only, what it returns, how missing values are handled, or whether any filtering or thresholding is applied. The word 'analysis' weakly implies computation but not enough to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short fragment with no wasted words, but it is under-specified rather than appropriately concise. For a tool with four parameters and no annotation support, this brevity sacrifices necessary information and cannot be considered well-structured for agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description lacks annotations, parameter semantics, and usage guidance. An agent cannot tell what table_name refers to, what format columns expects, or what min_strength controls. The method options provide only a sliver of the context needed for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate for undocumented parameters. It does not: it only mentions Pearson/Spearman, which merely duplicates the existing method enum in the schema. There is no explanation of table_name, columns, or min_strength, leaving the agent without enough context to correctly fill three of the four parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Russian description translates to 'Correlation analysis (Pearson/Spearman)', which identifies the domain and supported methods but never states an explicit verb, operating resource, or result. It is less a tautology than a vague purpose statement: an agent can infer the tool computes correlations, but not that it correlates columns of a table or how it differs from statistical_test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool instead of alternatives like statistical_test, distribution_analysis, or cross_tab. No context, preconditions, exclusions, or alternative tool names are mentioned, so the agent must rely entirely on the tool's name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_public_dashboardB
Создаёт дашборд — standalone HTML с интерактивными фильтрами.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It does reveal that the output is a standalone HTML artifact with interactive filters, which is useful, but it omits side effects, the public exposure implications, access considerations, and what the returned result contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no filler. It front-loads the core action and then adds the most decision-relevant detail, the standalone HTML format with interactive filters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with an output schema and self-explanatory parameters, the description is minimally sufficient. However, the missing clarification of the 'public' aspect and the lack of differentiation from other dashboard-creation siblings mean an agent could select or invoke it incorrectly in a larger toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not mention the title or description parameters at all. The schema itself shows types and defaults, so this is not a complete failure, but the description adds no parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: it creates a dashboard, and further specifies the output as standalone HTML with interactive filters. However, it does not distinguish this from the sibling build_dashboard or clarify what 'public' means in the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like build_dashboard, visualize_data, or data_story. No contexts, exclusions, or selection criteria are provided, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cross_tabB
Кросс-табуляция двух категорий: частоты, проценты, Хи-квадрат.
| Name | Required | Description | Default |
|---|---|---|---|
| col_column | Yes | ||
| row_column | Yes | ||
| table_name | Yes | ||
| agg_function | No | count | |
| show_percent | No | ||
| value_column | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses key outputs (frequencies, percentages, chi-square) but does not clarify assumptions, side effects, handling of missing values, or whether aggregation changes the chi-square computation. Some transparency is present, but significant behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes meaning, and it is appropriately sized for the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the tool has six parameters with zero description coverage and no annotations. The description does not explain how to configure aggregation, percentage display, or value column selection, leaving the agent without enough context to invoke the tool confidently in varied scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only implicitly maps 'two categories' to row_column and col_column; agg_function, value_column, and show_percent are not explained. The mention of 'percentages' hints at show_percent, but overall the description adds little semantic value over the bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation — cross-tabulation of two categorical fields — and names concrete outputs: frequencies, percentages, and chi-square. This clearly distinguishes it as an analytical tool, though it does not explicitly differentiate from nearby siblings like pivot_table or statistical_test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'cross-tabulation of two categories' gives clear context for when the tool is appropriate: when an agent needs a contingency table for two categorical columns. It doesn't provide exclusions or name alternatives, but the intended use is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_quality_reportB
Комплексный отчёт о качестве: полнота, дубликаты, консистентность.
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes | ||
| key_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the general behavior: it reports on completeness, duplicates, and consistency. However, it does not clarify whether the operation is read-only, how key_columns influences the report, or what execution behavior to expect, leaving the agent to infer these details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to communicating the tool's core output and scope, and it is appropriately compact for a simple report tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists and return values need not be described, the definition is incomplete for practical selection and invocation: it lacks usage guidance, parameter explanation, and enough behavioral detail. An agent given this text among 40+ siblings would have difficulty deciding when to use it and how to set key_columns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not explain either parameter. 'key_columns' is left entirely undefined, and the description never connects it to the duplicate/consistency checks despite the name suggesting that relationship.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-like resource: it produces a comprehensive quality report covering completeness, duplicates, and consistency. It goes beyond a tautology by enumerating concrete quality dimensions, though it does not explicitly distinguish itself from siblings like find_duplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as profile_data, find_duplicates, or detect_anomalies. The intended use is only implied by the name and phrase 'quality report'; no exclusions or alternative conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_storyC
Data Story: нарратив с графиками — связный рассказ о данных.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only hints at the output format (narrative with charts) and says nothing about side effects, dependencies, required permissions, how table_name and theme affect behavior, or any limitations. This is insufficient for a tool with no annotation context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but 'Data Story:' redundantly repeats the tool name. The remaining phrase is under-specified rather than economically complete, and there is no structure to help an agent extract key directives quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists and the tool has only two parameters, the description still misses crucial context: how this tool differs from visualize_data or smart_summary, what inputs mean, and what behavior to expect. The minimal description leaves significant gaps for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions neither table_name nor theme. It does not explain that table_name is the data source or what theme controls. Since the schema provides only names and types, the description adds no semantic value for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says the tool produces a 'narrative with charts' and a 'coherent story about data', which conveys an intent but no explicit verb like 'generate' or 'create'. It also does not distinguish this tool from siblings such as visualize_data, smart_summary, or auto_insights, leaving the precise purpose somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use data_story versus its many sibling tools. The description implies it is for creating narrative data reports, but it never states the conditions, exclusions, or alternatives, so an agent cannot make an informed choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_anomaliesC
Обнаружение выбросов z-score и/или IQR.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | both | |
| columns | No | ||
| threshold | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the algorithmic approach (z-score and/or IQR) and implies a read-only analysis through the word 'detects', but it does not explicitly state side effects, data requirements, or how anomalies are returned. The disclosure is partial but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler or repetition. It front-loads the core purpose and method. It is concise, though slightly under-specified for a tool with four parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and 0% schema description coverage, the description is not complete enough for confident invocation. It does not explain how columns should be provided, what threshold=0 means as a default, whether the tool modifies data, or what the anomaly result contains. The output schema covers returns, but the input side remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to compensate for explaining parameters like columns and threshold. It briefly clarifies the method via 'z-score and/or IQR', but the meanings of threshold, columns format, and default behavior are left unspecified. The schema provides titles/defaults/enums, but not enough semantic depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool detects outliers using z-score and/or IQR, which is concrete and non-tautological. It does not explicitly name the target resource or contrast with siblings like detect_patterns or statistical_test, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternatives, how to choose between zscore, iqr, and both, or what prerequisites exist (e.g., numeric columns). The purpose implies an anomaly-detection scenario, but no explicit when-to-use/when-not-to-use information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_patternsC
Распознавание паттернов в тексте: email, телефон, URL, ИНН, даты.
| Name | Required | Description | Default |
|---|---|---|---|
| columns | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that patterns are recognized in text but does not say whether the operation is read-only, whether it scans the whole table or only specified columns, or what kind of results are returned beyond the existence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler and is front-loaded with the core function. While it omits important usage and parameter details, the concise structure itself is well-formed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters and many similar sibling tools, the description is incomplete: it lacks usage guidance, parameter semantics, and any clarification of behavior beyond pattern recognition. The presence of an output schema reduces the need to describe return values, but the description still does not provide enough context for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds nothing about the parameters. The input schema shows only bare property names (table_name, columns), and the tool description does not explain how columns should be specified or what values are expected, leaving an agent to guess the format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('распознавание') and identifies the resource being acted on: text patterns. It gives concrete examples (email, phone, URL, INN, dates) that make the tool's scope understandable, which is enough to distinguish its general intent from siblings even if it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of similar siblings like scan_pii, detect_anomalies, or data_quality_report. No conditions, exclusions, or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
distribution_analysisC
Анализ распределения: гистограмма, skewness, kurtosis.
| Name | Required | Description | Default |
|---|---|---|---|
| bins | No | ||
| columns | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure, but it only names three outputs. It does not mention how columns or bins are interpreted, what happens with non-numeric columns, missing values, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a compact, front-loaded phrase with no filler; every word adds information. It is concise, even if the content is thinner than an agent likely needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return values are partly covered, but the description omits parameter semantics, usage conditions, and sibling differentiation. For a 3-parameter tool in a large family of analysis tools, this is not complete enough to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain table_name, columns, or bins. The mention of histogram hints that bins relate to binning, but the parameters' meaning and defaults are not spelled out.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: analyzing the distribution of data, and lists concrete outputs (histogram, skewness, kurtosis). It is identifiable among siblings like correlation_analysis or statistical_test, though it does not explicitly name alternatives or boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose distribution_analysis over similar tools such as profile_data, statistical_test, or detect_anomalies. There are no conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dataC
Экспорт данных в CSV-файл.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | ||
| columns | No | ||
| filename | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'export data to CSV'. It does not reveal side effects, file handling, whether existing files are overwritten, permissions needed, or what the operation returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but it is under-specified rather than appropriately concise. A single phrase with no parameter or usage context does not earn its place as a complete tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no annotations, and a generic purpose, the description is far from complete. Although an output schema exists and may describe return values, the description still omits essential detail about how to use the parameters and when this tool is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four parameters: table_name, sql, columns, or filename. The agent is left without guidance on what data gets exported, how filtering works, or how the output file name is determined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action, 'export', and a concrete target format, 'CSV file', which makes the tool's core purpose understandable. It implicitly differentiates from the sibling export_xlsx by format, though it does not clarify what data is exported or how it is selected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool rather than alternatives such as export_xlsx, nor any explanation of prerequisites or typical contexts. The intended use must be inferred entirely from the tool name and format mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_xlsxC
Экспорт данных в XLSX-файл с форматированием (ТЗ 3.3). Заголовки жирным, freeze panes, автоширина, автофильтр, NULL → серый фон.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | ||
| columns | No | ||
| filename | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does disclose formatting behaviors (bold headers, freeze panes, etc.), which gives some transparency about what the tool does. However, it does not mention whether the file is overwritten, required permissions, error handling, or any side effects. The cryptic 'ТЗ 3.3' adds no behavioral insight. This is partial disclosure, not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loads the main purpose. It includes useful formatting details. However, the reference to 'ТЗ 3.3' is cryptic and may confuse rather than inform, slightly reducing effectiveness. Overall, it is efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no annotations, no schema descriptions, output schema exists but not described), the description is inadequate. It does not explain how to construct the export, what inputs are required, or what the output looks like (though output schema exists, it's not referenced). An agent would need additional knowledge to call this correctly, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate by explaining any of the four parameters. Parameter names like 'sql', 'columns', 'filename', and 'table_name' are somewhat self-explanatory, but the description offers no hints about their format, relationships, or required combinations. For a tool with 4 parameters and zero schema descriptions, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Export data to XLSX file with formatting' and lists specific formatting behaviors (bold headers, freeze panes, auto-width, auto-filter, NULL → gray). This gives a specific verb and resource, but it does not explicitly distinguish from the sibling 'export_data' tool, which could be a generic export. The formatting details add clarity, but the lack of explicit differentiation prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'export_data' or 'sql_query'. It does not mention conditions, prerequisites, or scenarios where this tool is preferred. The reader must infer that it is for formatted XLSX export, but no explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feature_importanceC
Важность признаков (Random Forest + permutation).
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | both | |
| table_name | Yes | ||
| sample_size | No | ||
| target_column | Yes | ||
| feature_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only names the methods (Random Forest + permutation) but does not mention whether the operation is read-only, what happens to the data, or how results are returned. It adds minimal behavioral context beyond the method names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with no fluff. It is front-loaded with the main purpose. However, the brevity sacrifices needed detail, which is a structural tradeoff, but for this dimension the conciseness itself is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters and an output schema, the description is severely incomplete. It does not explain the output format, the meaning of the parameters, or the intended use cases. Even with the output schema, the agent would not know typical inputs or how to configure method, sample_size, or feature_columns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameter meanings, but it does not. None of the five parameters (table_name, target_column, method, sample_size, feature_columns) are described. The description provides no value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool computes: feature importance using Random Forest and permutation methods. It gives a specific resource and task, but does not distinguish it from sibling tools like correlation_analysis or statistical_test. The purpose is understandable, but lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention when to prefer it over correlation_analysis, statistical_test, or other related tools. There is no context about the expected use case or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_duplicatesC
Поиск дубликатов: точные или fuzzy (Levenshtein).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | exact | |
| columns | No | ||
| table_name | Yes | ||
| fuzzy_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the matching algorithm (Levenshtein for fuzzy), but says nothing about whether the operation is read-only, how duplicate groups are returned, how the threshold is applied, or any side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and free of filler, which is good, but it is closer to a headline than an operational definition. For a tool with four parameters and no annotation support, the single sentence is too terse to be considered well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and minimal description, the agent is missing important context: what columns default to, how fuzzy_threshold behaves, and what kind of output to expect beyond the output schema signal. The description is only minimally viable for simple calls using defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only covers the exact/fuzzy mode concept. The meanings of columns, fuzzy_threshold, and table_name are left to their titles, and the description does not explain defaults such as an empty columns string or a threshold of 0.8.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the resource ('duplicates') and the operation ('search'), and it adds a distinguishing method detail: exact or fuzzy matching via Levenshtein. This helps separate it from generic analytics siblings such as profile_data or data_quality_report. It is still slightly ambiguous whether duplicates are row-level or column-value-level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement about when to use this tool instead of siblings like detect_anomalies, detect_patterns, or data_quality_report. No exclusions, prerequisites, or alternative tool names are mentioned, so the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_sqlC
Генерация DuckDB SQL из описания на естественном языке (требует LLM).
| Name | Required | Description | Default |
|---|---|---|---|
| execute | No | ||
| table_name | Yes | ||
| description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that the tool requires an LLM, which hints at cost or latency, but it does not disclose the meaning or side effects of the execute parameter, whether generated SQL is run against the database, or any read/write implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler or repetition. The core behavior is front-loaded, and the LLM requirement is a meaningful additional note. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the definition omits essential operational context: what 'execute' does by default, whether a database must be attached first, and whether the result is SQL text, query results, or both. For a tool with three parameters and overlapping siblings, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undeclared parameter meanings. It clarifies that 'description' is a natural-language spec, but it says nothing about 'table_name' or 'execute', leaving two of three parameters semantically ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('generation') and resource ('DuckDB SQL'), and identifies the input as a natural-language description. This clearly conveys the tool's core function, though it does not explicitly distinguish itself from closely related siblings like sql_query or query_explain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use generate_sql versus alternatives such as sql_query, transform_data, or query_explain. The description only says what the tool does, not the conditions or workflow context that should lead an agent to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logsB
Получить логи запросов/ошибок/аудита (ТЗ 9).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| log_type | No | query |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'get' and enumerates log categories; it does not state read-only guarantees, response ordering, limits beyond the default, or whether the returned logs are current or scoped to a time window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short front-loaded sentence is efficient and easy to scan. The parenthetical 'ТЗ 9' is a reference that is not useful to an agent, preventing a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with an output schema, the description and schema together are enough to invoke the tool correctly. However, the lack of usage guidance and behavioral details leaves the context less complete than it could be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the limit parameter or explicitly map 'запросов/ошибок/аудита' to log_type. The schema's enum and defaults give basic meaning, but the description adds little beyond restating the categories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Получить' (get) and names the resource 'логи запросов/ошибок/аудита', which tells an agent this is a log-retrieval tool with three categories. It is clearly distinct from siblings like sql_query or get_schema, though it does not explicitly contrast with any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: call this tool when query, error, or audit logs are needed. There is no explicit comparison to alternatives or conditions for when not to use it, so the agent must infer applicability from the title and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schemaB
Структура таблицы: колонки, типы, число строк, превью.
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses what the result covers (columns, types, row count, preview), implying a read-only metadata operation, but does not explicitly state side-effect-free behavior, access requirements, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact phrase that front-loads the essential output components without filler. Every word contributes to understanding what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has an output schema, so return details may be covered there. However, the description omits usage context and parameter clarification, leaving an agent to infer how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention table_name or how it is used. The parameter name is self-explanatory, but the description adds no semantic value beyond the bare schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns table structure components: columns, types, row count, and preview. This makes the core purpose clear and distinguishes it from value-oriented siblings like sample_data or profile_data, though it lacks an explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like refresh_schema, profile_data, or sample_data. The description implies schema inspection but does not state conditions, exclusions, or preferred sibling routes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_metricsA
Список расчётных метрик с формулами из Knowledge Base (ТЗ 1.1).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the disclosure burden. 'List' implies a read-only operation and the source is stated, but behavior such as whether all metrics are returned at once, ordering, ownership, or any side effects is not disclosed. For a zero-parameter listing tool this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence that front-loads the core action and resource, and adds the meaningful context of the Knowledge Base and specification reference. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with an output schema present, the description is complete enough for an agent to invoke it correctly. It states what is listed, from where, and even references the relevant specification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly does not invent parameter details; there is nothing more it needs to explain about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and names a clear resource: calculated metrics with formulas from the Knowledge Base, referenced as ТЗ 1.1. It is unambiguous about what the tool returns, though it does not explicitly contrast itself with siblings such as search_knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to prefer this tool over alternatives like search_knowledge or get_schema. The intended use is only implied by the tool name and the phrase 'from Knowledge Base'; no exclusions or fallback routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_dbtC
Загрузить метаданные из dbt manifest.json в Knowledge Base (ТЗ 1.2).
| Name | Required | Description | Default |
|---|---|---|---|
| manifest_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the full behavioral burden. It only discloses that metadata is loaded, but not whether the load overwrites existing content, merges, or requires any prerequisites. Idempotency, permissions, and failure behavior are left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core action and resource. The parenthetical 'ТЗ 1.2' adds little for an external agent, slightly reducing efficiency, but the overall structure is compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, but the absence of annotations and the one-line description leave critical context missing for a mutating tool. An agent knows what to load but not the side effects on the Knowledge Base, whether data is replaced, or what preconditions must hold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should compensate by explaining manifest_path. It only indirectly references the dbt manifest file and says nothing about the parameter's optionality or default empty-string behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('load'), a specific source ('dbt manifest.json'), and a destination ('Knowledge Base'). It is specific enough to distinguish from generic siblings like load_file or sync_datahub, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus load_file, sync_datahub, or update_metadata. The 'ТЗ 1.2' reference is an internal spec label that provides no actionable usage context for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_fileB
Загрузка CSV/Excel/Parquet файла в DuckDB для анализа. Excel: если sheet не указан, грузит все листы. Parquet загружается через DuckDB read_parquet.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| sheet | No | ||
| table_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It adds useful behaviors: Excel loads all sheets when sheet is omitted, and Parquet is loaded via DuckDB read_parquet. However, it does not disclose whether existing tables are overwritten, how table_name is used, or what happens on errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact at two sentences with no filler. The first sentence front-loads the core purpose, and the second adds relevant format-specific details that justify their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, no annotations, and 0% schema coverage, the description is incomplete. It omits table_name semantics and does not address key edge cases like existing table behavior. The presence of an output schema reduces the need to document return values, but invocation guidance remains insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the sheet parameter's default behavior and the Parquet loading mechanism, but it leaves table_name entirely undocumented, leaving the agent unsure how that parameter affects the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: loading CSV/Excel/Parquet files into DuckDB for analysis. It clearly names supported formats and the target system, but it does not explicitly distinguish itself from sibling tools like attach_database or export_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as attach_database or sql_query. The phrase 'для анализа' implies a general use case, but no exclusions, prerequisites, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_tablesC
Умный JOIN двух таблиц с авто-детекцией ключей.
| Name | Required | Description | Default |
|---|---|---|---|
| table_a | Yes | ||
| table_b | Yes | ||
| join_type | No | inner | |
| key_columns | No | ||
| output_table | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the key behavior of automatic key detection, but it does not explain whether the operation modifies data, creates an output table, requires specific permissions, or how ambiguous or missing keys are handled. The term 'smart' is vague and leaves important side effects unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. However, it is undersized for a tool with five parameters and no annotations: it communicates the core idea but omits enough detail that the brevity becomes under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's five parameters, no annotations, and a vague 'smart' algorithm, the description is far from complete. The presence of an output schema covers return values, but the tool still lacks any explanation of when to use it, how auto-detection works, or what the key_columns override does. An agent would have to guess at critical invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate. The only parameter-related insight is that key detection is automatic, which hints at the key_columns behavior. However, table_a, table_b, join_type, and output_table are all left with only their schema titles and defaults, with no explanation of expected values or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: a smart JOIN of two tables with automatic key detection. It identifies both the verb and the resource, and the phrase 'JOIN of two tables' is enough to distinguish it from general SQL query or data comparison tools. However, it does not explicitly contrast it with any sibling tool, so it falls short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to use this tool versus alternatives like sql_query, compare_tables, or transform_data. It does not state use cases, prerequisites, or scenarios where a different tool would be preferable. The only implicit guidance is that the user has two tables and wants a join.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pivot_tableD
Сводная таблица в стиле Excel (PIVOT).
| Name | Required | Description | Default |
|---|---|---|---|
| col_column | Yes | ||
| table_name | Yes | ||
| row_columns | Yes | ||
| agg_function | No | sum | |
| value_column | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'pivot table in Excel style' and reveals nothing about whether this reads data, creates a new artifact, aggregates values, or has side effects. The description adds no behavioral information beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single phrase is very short and front-loaded, with no filler words. However, it is under-specified rather than efficiently complete, and the lack of structure means the agent gets no semantic organization to help with invocation. Conciseness is achieved at the expense of necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a five-parameter tool with no annotations, no parameter-level description coverage, and a one-line generic description. The output schema exists, but the description still fails to explain the operation's inputs, expected behavior, or relationship to sibling tools. The definition is far from complete enough for reliable agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no clarification for any parameter. The five parameters (table_name, row_columns, col_column, value_column, agg_function) remain entirely unexplained, so an agent must guess their meaning and constraints from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the concept ('Сводная таблица в стиле Excel (PIVOT)') and implies a pivot-table operation on a table, so an agent can roughly infer purpose. However, it lacks a specific verb and does not differentiate from sibling tools like cross_tab, which likely overlap heavily. The name itself does most of the work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The sibling list includes cross_tab and sql_query, which could serve similar analytical purposes, but the description gives no selection criteria or exclusions. Usage context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
predict_trendC
Прогнозирование тренда (линейная/полиномиальная регрессия).
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | month | |
| model_type | No | linear | |
| table_name | Yes | ||
| date_column | Yes | ||
| value_column | Yes | ||
| forecast_periods | No | ||
| polynomial_degree | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the regression/forecasting function. It does not reveal whether the tool writes anything, what data requirements or assumptions apply, how missing values are handled, or what the returned output looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no fluff, so it is concise. However, given seven parameters and a nontrivial forecasting task, this brevity is closer to under-specification than to appropriately sized documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists but is not shown, and the text gives no context about required inputs, model calibration, or result interpretation. An agent with only this description would lack the information needed to call predict_trend correctly with the right table, columns, and forecast settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter description coverage is 0%, and the description only hints at the model_type concept via 'linear/polynomial regression'. It leaves table_name, date_column, value_column, period, forecast_periods, and polynomial_degree semantically undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb (forecasting) and a concrete resource (trend), and names the two model types (linear and polynomial regression). It clearly conveys the core task, though it does not explicitly differentiate the tool from sibling analytics tools like time_analysis or detect_anomalies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use predict_trend over sibling tools, nor about prerequisites such as needing a time-series table with a date column and a numeric value column. No exclusions or alternatives are mentioned, so an agent is left to infer the appropriate usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profile_dataC
Профилирование: статистика по колонкам (null%, уникальность, min/max, top-5).
| Name | Required | Description | Default |
|---|---|---|---|
| columns | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the type of statistics computed but does not state whether the operation is read-only, any side effects, permission requirements, or potential performance impact. Such information is critical for a profiling tool that likely scans full tables. The description is minimal and does not go beyond the basic output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the core purpose. It avoids unnecessary words and is appropriately sized. However, it is so brief that it sacrifices substantive content, though that is not a conciseness penalty — it is structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists (so return format is covered), the description is incomplete for a tool with no annotations and two parameters. It omits parameter meanings, usage conditions, and any behavioral safety context. An agent would struggle to know how to pass the optional 'columns' parameter or whether the operation is safe to run. The description is adequate only as a terse overview.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. 'table_name' is required but never mentioned, and 'columns' (optional, default '') is not clarified regarding format (e.g., comma-separated list?) or behavior when empty. The description adds no value beyond the schema's property names, leaving the agent guessing about expected values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Профилирование' – profiling) and a concrete resource (column statistics) with explicit outputs: null%, uniqueness, min/max, top-5. This distinguishes it from sibling tools like data_quality_report or find_duplicates by specifying the exact metrics computed. Even though it's in Russian, the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as data_quality_report or distribution_analysis. There is no mention of appropriate use cases, exclusions, or comparisons to sibling tools. An agent would have to infer from the name and stats listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_explainA
Показать план выполнения SQL (EXPLAIN) и стоимость. Полезно перед тяжёлыми запросами к удалённой БД. (фича G)
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | ||
| connection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does convey that the tool returns a plan and cost rather than query results, and it implies a pre-check role. However, it does not explicitly state whether the query is executed, whether the operation is read-only, or what side effects may occur. No contradiction exists with annotations because there are none.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose, and the second gives a practical use case. The trailing '(фича G)' is minor noise that does not help an agent invoke the tool, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values do not need to be explained in the description. The main gaps are the undocumented connection parameter and the lack of an explicit safety/no-execution statement. For a simple EXPLAIN tool this is still minimally workable for an agent familiar with SQL.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. It indirectly covers 'sql' by referencing SQL, but it says nothing about the 'connection' parameter or its default behavior. This leaves an agent guessing about an optional but important parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'show SQL execution plan (EXPLAIN) and cost.' This clearly distinguishes it from sibling tools like sql_query, which executes queries, and from other analysis tools. Even without naming alternatives, the EXPLAIN semantics make the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a concrete use case: useful before heavy queries to a remote database. This tells an agent when to prefer this tool over directly executing a query. It does not list exclusions or explicitly name alternative tools, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_schemaA
Обновить схему подключений — перечитать таблицы, колонки, FK из source DB (A3). Если connection не указан — обновляет все подключения. Полезно когда в БД добавили таблицы/колонки после старта сервера.
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It covers the key conditional behavior (updates all connections if none specified) and the fact that it re-reads from the source database. It doesn't describe potential side effects, whether the schema cache is overwritten, or any required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. The first sentence gives the core action, the second explains the conditional behavior, and the third gives a practical trigger scenario. Everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and an existing output schema, the description covers the action, the condition, and when to use it. Nothing critical for an agent to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no parameter description and coverage is 0%, so the description must compensate. It does this by explaining that omitting connection refreshes all connections, giving meaning to the optional parameter. It doesn't specify format or examples, but for a single optional string this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('refresh connection schema') and the resource being refreshed (tables, columns, FKs from source DB A3). It is specific enough to understand the tool's core function, though it does not explicitly distinguish it from sibling get_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage scenario: useful when tables/columns were added after server start. It also explains the conditional behavior when connection is omitted. However, it doesn't explicitly mention alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sample_dataC
Выборка строк из таблицы.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | ||
| where | No | ||
| method | No | random | |
| table_name | Yes | ||
| stratify_column | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says rows are sampled and does not explain whether the operation is read-only, how random selection works, whether filters apply via the where parameter, or what output structure is returned. This is insufficient for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but this is under-specification rather than effective conciseness. A single phrase conveys the basic purpose but omits the parameter behavior and selection semantics that an agent needs to invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five parameters, one required field, an enum, and no annotations, the description is not complete enough. It does not explain the meaning of the sampling methods, the filter syntax, or how stratify_column relates to method, so an agent cannot reliably construct a correct call from the provided text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate by explaining any of the five parameters. It does not mention n, where, method, stratify_column, or table_name, leaving the agent to guess their meaning and interactions solely from names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource relationship: 'sampling rows from a table.' It identifies what the tool does at a basic level, though it does not differentiate it from sibling tools like sql_query or profile_data and does not clarify whether this is a preview or statistical sampling operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use sample_data versus alternatives such as sql_query, profile_data, or get_schema. There is no mention of typical use cases, prerequisites, or exclusions, so an agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_piiC
Сканировать таблицу на PII и пометить чувствительные колонки (ТЗ 10).
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. 'Пометить чувствительные колонки' implies a mutation or metadata update, but the description does not say whether the marking is reversible, whether it modifies table metadata, or whether any permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the key action and target front-loaded. The trailing '(ТЗ 10)' reference is project-specific noise that does not help an agent invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema present, this is mostly callable. However, it omits side-effect disclosure and any usage context relative to the large set of sibling data-analysis tools, leaving gaps in when and how it should be used.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and table_name has no schema help. The description adds the minimal meaning that the parameter is the table to scan for PII, but it does not cover naming format, qualified names, or error behavior. Some compensation occurs, but it is thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Сканировать') and resource ('таблицу'), and states the goal: detect PII and mark sensitive columns. This distinguishes it from siblings like profile_data or data_quality_report, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus siblings such as profile_data, data_quality_report, or semantic_search. The description only states the action, leaving the intended use case to be inferred from the tool name and wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_knowledgeB
Поиск по базе знаний: метаданные таблиц, описания колонок, метрики, примеры (ТЗ 8). Комбинирует полнотекстовый и семантический поиск.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It does reveal a meaningful behavioral trait: it combines full-text and semantic search. However, it does not mention result ordering, whether it only reads data, any limitations on query structure, or how `top_k` affects behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The scope is listed first, followed by a useful behavioral detail. The cryptic parenthetical '(ТЗ 8)' adds little for an agent, but it does not significantly harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered elsewhere. The description gives the core purpose and hybrid-search behavior, but it lacks parameter-level guidance and explicit routing versus sibling tools. It is adequate for a simple search tool but has clear gaps in usage recommendations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the two parameters. It does not explain what `query` should contain or how `top_k` controls result count. The parameter names are somewhat self-explanatory, but the description adds no meaning beyond the raw schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: searching the knowledge base for table metadata, column descriptions, metrics, and examples. It also adds a differentiator by noting it combines full-text and semantic search, which helps separate it from the sibling `semantic_search`. It does not explicitly name sibling tools, but the scope is much clearer than a generic 'search' statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this tool to find knowledge-base content such as metadata and column descriptions. The hybrid-search note implies it is appropriate when both full-text and semantic matching are needed, but it does not state when to prefer `semantic_search`, `get_schema`, or other siblings, nor does it give any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_dataC
Сегментация: квинтили/децилы/кастомные бакеты или RFM-анализ.
| Name | Required | Description | Default |
|---|---|---|---|
| column | Yes | ||
| method | No | quintile | |
| rfm_mode | No | ||
| id_column | No | ||
| table_name | Yes | ||
| date_column | No | ||
| amount_column | No | ||
| custom_bounds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention whether the tool modifies the data, returns a new column, or has any side effects. The output schema exists (per context) but is not described here, so the agent has no idea what happens after invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence), which makes it easy to parse, but it is under-specified for a tool with 8 parameters. It lacks any structured guidance, so the conciseness is not beneficial; it reads more like an incomplete summary than a helpful definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (8 parameters, including an enum and RFM mode), the description is severely incomplete. It does not explain how to configure the segmentation, what inputs are required, or what the output looks like. Combined with zero parameter descriptions in the schema, this tool is nearly impossible to use correctly without external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description does not explain any of the 8 parameters. The description mentions methods but does not map them to the 'method', 'rfm_mode', or 'custom_bounds' parameters. This is a critical gap, as the agent cannot know how to configure the segmentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs segmentation with specific methods (quintiles, deciles, custom buckets, RFM). This distinguishes it from sibling tools like cluster_analysis and classify_rows. However, it does not explicitly mention the input data source (table and column), which is only implied by the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, use cases, or exclusions. An agent must infer usage from the schema alone, which is insufficient for choosing between this and related analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_searchA
Семантический поиск по текстовой колонке через LLM embeddings (C3). Находит строки, похожие по смыслу на query, даже если слова не совпадают. Требует LLM_BASE_URL/LLM_MODEL (OpenAI-compatible /v1/embeddings).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No | ||
| where | No | ||
| table_name | Yes | ||
| text_column | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses the dependency on LLM_BASE_URL/LLM_MODEL and the expected OpenAI-compatible /v1/embeddings endpoint. It does not mention possible latency, cost, failure modes, or whether embeddings are computed on the fly, but for a search-style operation the disclosed dependency adds meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core purpose front-loaded and no wasted words. The only minor issue is the unexplained 'C3' marker, which adds noise without contributing to agent understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only semantic search tool with an output schema, the description covers the core purpose and a key external requirement. However, it omits any explanation of optional parameters like top_k and where, and provides no mention of expected behavior when the embedding service is unavailable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that query is the semantic search phrase and text_column is the column being searched, but it gives no additional meaning for table_name, top_k, or where. Optional parameters are left entirely to inference from their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific operation: semantic search over a text column via LLM embeddings. The clarifying phrase 'even if words do not match' makes the distinction from exact-match/SQL tools explicit, so an agent can tell this from siblings like sql_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies appropriate use: when similarity in meaning is desired rather than exact keyword matches. However, it does not explicitly state when not to use this tool or name an alternative such as sql_query for exact matching, so usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_summaryC
Умное саммари: ключевые метрики, топ-группы, аномалии, паттерны.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states what kinds of insights the summary includes, but it does not disclose how the summary is computed, whether it is read-only, what scope it covers, or any limitations or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and contains no fluff, but it is more of a fragment than a structured explanation. It is concise without being informative enough to be considered well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, so return-value documentation is less critical, the description still fails to explain the meaning of the 'focus' parameter or how this tool relates to the many analytical sibling tools. For a parameterized tool with no annotations, this is not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to either parameter. 'table_name' is only implicit from the tool's purpose, and 'focus' is entirely unexplained, even though it likely controls what the summary emphasizes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool's function as a 'smart summary' and lists its contents (key metrics, top groups, anomalies, patterns), so an agent can infer it produces a synthesized analytical overview. However, it is a noun phrase rather than a specific verb+resource statement, and it does not distinguish this from closely related siblings like auto_insights, data_story, or detect_patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to get a concise analytical summary of a table, but it gives no explicit guidance on when to choose it over alternatives or when not to use it. No exclusions, prerequisites, or routing hints are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sql_queryA
Выполняет SQL-запрос (read-only). По умолчанию — push-down к source DB (remote). SQL пишется в DuckDB-синтаксисе, автоматически переводится под диалект source DB (sqlglot). Read-only: INSERT/UPDATE/DELETE/DROP заблокированы. format: markdown (по умолчанию), json, csv. limit: ограничение строк (0 = default 200).
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | ||
| limit | No | ||
| format | No | markdown | |
| connection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral burden. It clearly discloses read-only enforcement, push-down execution, SQL syntax translation via sqlglot, blocked statement types, and default row limit. This is unusually transparent for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears first, followed by essential behavioral constraints and parameter notes. Every line adds information, with no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a SQL execution tool, the description covers the operation, safety constraints, syntax model, output formats, and default limit. It does not explain the `connection` parameter or error behavior, but the presence of an output schema reduces the need to describe return values. Overall, it is nearly complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains format (markdown/json/csv) and limit (0 = default 200), adding real value beyond the schema. However, it omits any explanation of the `connection` parameter, leaving a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (executes SQL query) and resource (read-only query against source DB), with a specific verb and resource. It doesn't explicitly differentiate from siblings like query_explain or generate_sql, but the read-only execution purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies appropriate use: running read-only SQL with push-down execution and automatic dialect translation. It states that INSERT/UPDATE/DELETE/DROP are blocked, providing an implicit exclusion, but it does not explicitly say when to prefer this tool over its siblings or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statistical_testC
Статистические тесты: t-test, Mann-Whitney, KS, Хи-квадрат.
| Name | Required | Description | Default |
|---|---|---|---|
| test | Yes | ||
| column | No | ||
| group_a | No | ||
| group_b | No | ||
| table_name | Yes | ||
| group_column | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden, but it only restates that statistical tests are run and gives their names. It does not disclose how data is grouped, whether assumptions apply, what outputs are produced, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact phrase with no fluff, which serves conciseness, but it is under-specified for a tool with six parameters. It is not structured to convey parameter relationships or usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with zero parameter documentation and no annotations, this description is far too thin. An agent cannot determine how to fill group_a, group_b, group_column, or column for each test, nor what the result format is beyond the existence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage and the description provides no explanation for table_name, column, group_a, group_b, or group_column. The test enum is self-documenting, but the relationship between tests and required grouping/column parameters is entirely absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's function and enumerates four concrete statistical tests (t-test, Mann-Whitney, KS, Chi-square), making it clear this is a hypothesis-testing tool. It is less than a full sentence with no explicit verb, but the list of tests is specific enough to separate it from broader analysis siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over closely related siblings such as compare_tables or correlation_analysis, nor any criteria for selecting among the four tests. The description only lists available tests without explaining use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_datahubB
Синхронизировать метаданные из DataHub в Knowledge Base (ТЗ 1.2).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility for explaining behavior. It discloses only the action and direction, not whether the synchronization overwrites, merges, creates new entries, requires credentials, or is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with the verb at the beginning and no filler. The parenthetical '(ТЗ 1.2)' is a minor spec reference, but overall the description is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, this is enough to invoke the operation syntactically. However, synchronization semantics such as incremental vs full sync, effect on existing Knowledge Base content, and connection requirements are missing, which is a meaningful gap given there are no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties, so there are no parameters for the description to clarify. Per the baseline for a zero-parameter tool, this is adequate even though no additional parameter detail is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('synchronize metadata'), a source (DataHub), and a target (Knowledge Base), which makes the tool's purpose identifiable. It does not explicitly differentiate it from sibling tools such as update_metadata or load_dbt, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like update_metadata or search_knowledge. There are no stated prerequisites, such as a configured DataHub connection, and no exclusions; the only usage signal is the literal meaning of 'synchronize'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_connectionC
Проверить доступность подключения к БД.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It only says the tool checks connection availability but does not disclose side effects, error behavior, return format, or whether it opens a network connection. This is minimal and leaves key behavior implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, which is good, but it is under-specified rather than effectively concise. It is front-loaded but does not provide enough substance to be considered well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter, no annotations, and no parameter explanation, the description is not complete enough for reliable invocation. The presence of an output schema reduces the need to describe return values, but the core parameter semantics and usage context are still missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the required 'name' parameter. The agent cannot determine whether 'name' refers to a connection name, database name, host, or other identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Russian description 'Проверить доступность подключения к БД' clearly states a specific action (check) and resource (database connection availability). It is distinct from the query/analysis siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as sql_query, refresh_schema, or get_logs. The implied pre-flight use case is not stated, and no exclusions or selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_analysisC
Анализ временных рядов: тренд, рост/падение, скользящее среднее.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | month | |
| table_name | Yes | ||
| date_column | No | ||
| value_column | No | ||
| moving_avg_window | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It names trend, growth/decline, and moving average as outputs, but does not explain return shape, side effects, prerequisites, or how missing data or invalid columns are handled. This is thin for a tool operating on table data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise phrase that front-loads the core purpose and mentions the main analytical outputs. However, it is too sparse to be fully useful, so it earns high marks for brevity but not the top score due to missing elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description is incomplete for an analysis tool with five parameters and no schema-level descriptions. It does not explain required columns, how period granularity works, how the moving-average window is applied, or how this tool relates to similar siblings like predict_trend.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions moving average, which maps to moving_avg_window, but gives no explanation of date_column, value_column, period, or table_name semantics beyond what their titles already state. Most parameter meaning is left to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Time series analysis: trend, growth/decline, moving average,' which names the resource and the kind of computations performed. While it does not explicitly differentiate from siblings like detect_anomalies or predict_trend, the mention of specific analytical outputs makes the purpose reasonably distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as detect_anomalies, predict_trend, or smart_summary. The intended context is only implied by the phrase 'time series analysis,' leaving the agent to infer when this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_dataC
Трансформации: normalize, fillna, extract(даты), onehot, bin, derive.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes | ||
| table_name | Yes | ||
| output_table | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only names transformation categories. It does not state whether the input table is modified in place, whether output_table is required to avoid side effects, or what happens if an operation is invalid or unsupported. The operation list provides minimal behavioral context but leaves major effects undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely short, which is concise, but it is a fragment rather than a well-structured definition. It omits the necessary usage and behavior content, so the brevity reflects under-specification rather than effective density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, no annotations, and many siblings, the description is far from complete. It does not explain how to construct the operations string, the role of optional output_table, or the effect on the source table. The presence of an output schema reduces the need to describe return values, but the core invocation contract is still missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It partly does by enumerating candidate values for operations (normalize, fillna, extract dates, onehot, bin, derive), but it does not explain the expected string format, separators, per-operation arguments, or the meaning of table_name and output_table.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and the Russian fragment indicate that it applies transformations to data, and the list names specific operations (normalize, fillna, extract dates, onehot, bin, derive), so it is not a pure tautology. However, it lacks a full sentence stating what the tool does, what input it acts on, and how it differs from sibling data-preparation tools like segment_data or merge_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as sql_query, profile_data, or other siblings. No contexts, exclusions, or prerequisites are mentioned; the agent must infer applicability solely from the list of transformation names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_metadataC
Обновить метаописание таблицы в Knowledge Base (ТЗ 1.1). column_descriptions: JSON {"col1": "описание", "col2": "..."} layer: raw | staging | mart | certified
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| owner | No | ||
| table_name | Yes | ||
| description | No | ||
| is_certified | No | ||
| column_descriptions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'update' and provides field hints; it does not disclose whether metadata is overwritten partially or fully, what effect is_certified has, whether permissions are needed, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, followed by parameter hints. The 'ТЗ 1.1' token is mildly extraneous, but overall the structure is economical and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no schema-level parameter descriptions, this is insufficient. It provides only two parameter hints and no behavioral or usage context; the output schema reduces the need to describe returns, but the input side remains under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully documents the column_descriptions JSON format and the allowed layer values, but it says nothing about the required table_name or about owner, description, and is_certified. Most parameters remain ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Обновить метаописание таблицы') and a clear resource ('Knowledge Base'). It is distinctive enough against the sibling list, though the internal spec code 'ТЗ 1.1' adds little and 'метаописание' is slightly vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when updating table metadata in the Knowledge Base—but gives no explicit guidance, no exclusions, and no alternatives. With siblings like refresh_schema, search_knowledge, and sync_datahub nearby, the lack of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visualize_dataC
Визуализация: bar/line/pie/scatter/area/histogram. PNG + JSON spec.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | ||
| limit | No | ||
| title | Yes | ||
| x_column | Yes | ||
| y_columns | Yes | ||
| chart_type | Yes | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions output format (PNG + JSON) but does not state whether the tool is read-only, has side effects, or how it handles errors or limits. This is insufficient for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is concise but severely under-specified. It front-loads chart types but omits crucial context, making it inadequately sized for a tool with 7 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For the tool's complexity (7 parameters, 0% schema descriptions, no annotations), the description is extremely incomplete. It does not explain how to specify data, the content of the JSON spec, or any parameter constraints, leaving an agent without enough information to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to parameters like table_name, x_column, y_columns, title, limit, or sql. The only mention of chart types duplicates the enum values, providing no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool produces visualizations of specific chart types (bar/line/pie/scatter/area/histogram) and outputs PNG + JSON, making its core purpose clear. However, it does not explicitly mention that it operates on a table or columns, which are evident from the schema, though this is minor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like profile_data or correlation_analysis. There is no mention of prerequisites, typical use cases, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
46 tool updates
v1.0.0- First observed
add_example - First observed
attach_database - First observed
auto_insights - First observed
build_bi_link - First observed
build_dashboard - First observed
classify_rows - First observed
cluster_analysis - First observed
compare_tables - First observed
correlation_analysis - First observed
create_public_dashboard - First observed
cross_tab - First observed
data_quality_report - First observed
data_story - First observed
detect_anomalies - First observed
detect_patterns - First observed
distribution_analysis - First observed
export_data - First observed
export_xlsx - First observed
feature_importance - First observed
find_duplicates - First observed
generate_sql - First observed
get_logs - First observed
get_schema - First observed
list_metrics - First observed
load_dbt - First observed
load_file - First observed
merge_tables - First observed
pivot_table - First observed
predict_trend - First observed
profile_data - First observed
query_explain - First observed
refresh_schema - First observed
sample_data - First observed
scan_pii - First observed
search_knowledge - First observed
segment_data - First observed
semantic_search - First observed
smart_summary - First observed
sql_query - First observed
statistical_test - First observed
sync_datahub - First observed
test_connection - First observed
time_analysis - First observed
transform_data - First observed
update_metadata - First observed
visualize_data
TDQS
Many tools have overlapping analytical/reporting purposes: smart_summary, auto_insights, data_story, build_dashboard, and create_public_dashboard all produce insight-style outputs, while export_data and export_xlsx duplicate export functionality. Even with descriptions, an agent would struggle to choose among the many analysis and quality tools (profile_data, data_quality_report, find_duplicates, detect_anomalies) without deep domain knowledge.
Tool names are uniformly snake_case and mostly follow a verb_noun pattern (get_schema, attach_database, export_data, load_file). Some names deviate toward noun_analysis (correlation_analysis, distribution_analysis) or compound adjectives (semantic_search, smart_summary), but the overall style remains predictable and readable.
46 tools is far beyond the typical well-scoped range and moves into kitchen-sink territory. The server attempts to cover SQL access, schema management, semantic search, quality analysis, ML, dashboards, BI integration, knowledge base, and data governance, making the set feel sprawling rather than curated.
The tool surface is extremely broad and covers most data exploration, analysis, export, and metadata workflows, but the large number of overlapping insight/report tools suggests the domain was not tightly defined. Some basic lifecycle operations are missing (e.g., detach/remove a connection, delete metadata entries), which creates minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
Ask business questions in plain English. Get instant answers from your database, no SQL needed.
Ask questions in plain language, get answers from your business database. No SQL required.
1Query BigQuery, Snowflake, Redshift & Azure Synapse with natural language
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables natural language querying of databases with multi-turn conversations, auto-generated charts, and proactive monitoring via scheduled queries and alerts.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to query databases using natural language, with automatic schema discovery and SQL compilation.6,0023,158Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to securely interact with multiple databases (MySQL, PostgreSQL) via natural language queries, with cross-database querying and enterprise-grade security.21MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language querying of SQL databases using AI, supporting multiple database types and automatic schema discovery.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MarkIvor/mcp-datasearcher'
If you have feedback or need assistance with the MCP directory API, please join our Discord server