Skip to main content
Glama

mcp-dbutils

MIT License
81
  • Linux
  • Apple
usage.md21.3 kB
# Руководство по использованию *[English](../en/usage.md) | [中文](../zh/usage.md) | [Français](../fr/usage.md) | [Español](../es/usage.md) | [العربية](../ar/usage.md) | Русский* Этот документ предоставляет подробные инструкции по использованию MCP Database Utilities, помогая вам максимально использовать его возможности для анализа данных с помощью ИИ. ## Основной рабочий процесс Основной рабочий процесс использования MCP Database Utilities выглядит следующим образом: 1. **Настройка подключений к базе данных**: Определите ваши подключения к базе данных в файле `config.yaml` 2. **Запуск службы MCP**: Запустите службу через конфигурацию вашего ИИ-клиента 3. **Взаимодействие с ИИ**: Задавайте вопросы о ваших базах данных на естественном языке 4. **Просмотр результатов**: ИИ выполнит необходимые запросы и представит результаты в легко понятном формате ## Доступные инструменты MCP Database Utilities предоставляет несколько инструментов, которые может использовать ваш ИИ: ### dbutils-list-connections Перечисляет все доступные подключения к базам данных с подробной информацией, включая тип базы данных, хост, порт и имя базы данных, скрывая конфиденциальную информацию, такую как пароли. Опциональный параметр check_status позволяет проверить, доступно ли каждое соединение, хотя это может увеличить время отклика. Используйте этот инструмент, когда вам нужно понять доступные ресурсы базы данных или диагностировать проблемы с подключением. **Пример взаимодействия**: **Вы**: "Какие подключения к базам данных у меня доступны?" **ИИ**: "Я проверю ваши доступные подключения к базам данных. Вот что я нашел: 1. **postgres-db** - Тип: PostgreSQL - Хост: localhost - База данных: analytics - Пользователь: analyst 2. **sqlite-db** - Тип: SQLite - Путь: /path/to/database.db 3. **mysql-db** - Тип: MySQL - Хост: db.example.com - База данных: customer_data - Пользователь: reader" ### dbutils-list-tables Перечисляет все таблицы в указанном подключении к базе данных с именами таблиц, URI и доступными описаниями, сгруппированными по типу базы данных для удобной идентификации. Этот инструмент полезен для исследования структуры базы данных и понимания, какие таблицы доступны для анализа. **Пример взаимодействия**: **Вы**: "Перечислите все таблицы в моей базе данных postgres." **ИИ**: "Я проверю это для вас. Вот таблицы в вашей базе данных postgres: - клиенты - продукты - заказы - инвентарь - сотрудники" ### dbutils-run-query Выполняет запросы SQL только для чтения (только SELECT) к указанной базе данных, с поддержкой сложных запросов, включая JOIN, GROUP BY и агрегатные функции, возвращая структурированные результаты с именами столбцов и строками данных. Этот инструмент необходим для извлечения конкретной информации из баз данных и проведения пользовательского анализа. **Пример взаимодействия**: **Вы**: "Запросите количество клиентов, которые зарегистрировались за последние 30 дней." **ИИ**: "Я проверю это для вас. Согласно данным, за последние 30 дней было 42 новых регистрации клиентов." ### dbutils-describe-table Предоставляет подробную информацию о структуре таблицы, включая имена столбцов, типы данных, допустимость NULL, значения по умолчанию и комментарии в удобочитаемом формате. Этот инструмент особенно полезен для понимания схемы таблицы перед выполнением запросов или анализом данных. **Пример взаимодействия**: **Вы**: "Опишите структуру таблицы клиентов." **ИИ**: "Вот структура таблицы клиентов: | Столбец | Тип | Nullable | По умолчанию | Описание | |---------|------|----------|--------|-------------| | id | INTEGER | Нет | NULL | Уникальный идентификатор клиента | | name | VARCHAR(100) | Нет | NULL | Полное имя клиента | | email | VARCHAR(100) | Нет | NULL | Адрес электронной почты (уникальный) | | registration_date | DATE | Нет | CURRENT_DATE | Дата регистрации | | last_login | TIMESTAMP | Да | NULL | Временная метка последнего входа | | status | ENUM | Нет | 'активный' | Статус аккаунта (активный, неактивный, приостановлен) |" ### dbutils-get-ddl Получает полный оператор DDL (язык определения данных) для создания указанной таблицы, включая все определения столбцов, ограничения и индексы. Этот инструмент полезен для понимания точного определения таблицы или для воссоздания аналогичной структуры таблицы в другой среде. **Пример взаимодействия**: **Вы**: "Покажите мне DDL для таблицы заказов." **ИИ**: "Вот оператор DDL для таблицы заказов: ```sql CREATE TABLE orders ( order_id INT PRIMARY KEY AUTO_INCREMENT, customer_id INT NOT NULL, order_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, total_amount DECIMAL(10,2) NOT NULL CHECK (total_amount > 0), status VARCHAR(20) NOT NULL DEFAULT 'в обработке', FOREIGN KEY (customer_id) REFERENCES customers(id) ); CREATE INDEX idx_order_date ON orders(order_date); CREATE INDEX idx_customer_id ON orders(customer_id); ```" ### dbutils-list-indexes Перечисляет все индексы в указанной таблице, включая имена индексов, типы (уникальный/неуникальный), методы индексирования и включенные столбцы, сгруппированные по имени индекса. Этот инструмент полезен для понимания того, как индексирована таблица, что может помочь оптимизировать запросы и улучшить производительность. **Пример взаимодействия**: **Вы**: "Какие индексы существуют в таблице продуктов?" **ИИ**: "Вот индексы в таблице продуктов: 1. **pk_product_id** (Первичный) - Столбцы: product_id - Тип: B-tree - Уникальный: Да 2. **idx_category** (Вторичный) - Столбцы: category_id - Тип: B-tree - Уникальный: Нет 3. **idx_product_name** (Вторичный) - Столбцы: name - Тип: B-tree - Уникальный: Нет 4. **idx_price_category** (Вторичный) - Столбцы: price, category_id - Тип: B-tree - Уникальный: Нет" ### dbutils-get-stats Получает статистическую информацию о таблице, включая предполагаемое количество строк, среднюю длину строки, размер данных и размер индекса. Эта статистика полезна для понимания объема данных и планирования оптимизации производительности. **Пример взаимодействия**: **Вы**: "Получите статистику для таблицы продуктов." **ИИ**: "Вот статистика для таблицы продуктов: - Всего строк: 1,245 - Размер таблицы: 2.3 МБ - Статистика по столбцам: * product_id: 1,245 уникальных значений * категория: 8 различных категорий * цена: среднее $45.99, мин $5.99, макс $299.99" ### dbutils-list-constraints Перечисляет все ограничения в таблице, включая первичные ключи, внешние ключи, уникальные ограничения и ограничения проверки, с таблицами и столбцами, на которые ссылаются внешние ключи. Этот инструмент полезен для понимания отношений между таблицами и правил целостности данных. **Пример взаимодействия**: **Вы**: "Покажите ограничения для таблицы заказов." **ИИ**: "Таблица заказов имеет следующие ограничения: - Первичный ключ: order_id - Внешний ключ: customer_id ссылается на клиенты(id) - Внешний ключ: product_id ссылается на продукты(id) - Ограничение проверки: order_amount > 0" ### dbutils-explain-query Предоставляет план выполнения для SQL-запроса, показывая, как движок базы данных будет обрабатывать запрос, включая методы доступа, типы соединений и предполагаемые затраты. Этот инструмент необходим для понимания и оптимизации производительности сложных запросов. **Пример взаимодействия**: **Вы**: "Объясните план выполнения для этого запроса: SELECT * FROM orders WHERE customer_id = 123" **ИИ**: "План выполнения для этого запроса: 1. Сканирование индекса: использование индекса customer_id_idx 2. Оценочная стоимость: 12.5 3. Оценочное количество строк: 8 4. Условие фильтрации: customer_id = 123" ### dbutils-get-performance Получает метрики производительности для подключения к базе данных, включая количество запросов, среднее время выполнения, использование памяти и статистику ошибок. Эта информация ценна для мониторинга состояния базы данных и выявления потенциальных узких мест. **Пример взаимодействия**: **Вы**: "Получите метрики производительности для базы данных." **ИИ**: "Текущие метрики производительности базы данных: - Время выполнения запроса: в среднем 45 мс - Коэффициент попаданий в кэш: 87% - Активные соединения: 3 - Недавний коэффициент ошибок: 0.2%" ### dbutils-analyze-query Анализирует характеристики производительности SQL-запроса, предоставляя план выполнения, фактическое время выполнения и конкретные рекомендации по оптимизации. Этот инструмент выходит за рамки простого объяснения, идентифицируя потенциальные проблемы и предлагая конкретные улучшения для ускорения выполнения запросов. **Пример взаимодействия**: **Вы**: "Проанализируйте этот запрос: SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id WHERE order_date > '2023-01-01'" **ИИ**: "Результаты анализа запроса: 1. Проблема производительности: Использование SELECT * извлекает ненужные столбцы 2. Отсутствующий индекс: Нет индекса на столбце order_date 3. Предложения по оптимизации: - Выбирайте только необходимые столбцы - Добавьте индекс на столбец order_date - Рассмотрите возможность добавления предложения LIMIT для ограничения количества результатов" ## Распространенные сценарии использования ### 1. Исследование данных **Вы**: "Я хочу понять структуру моей базы данных." **ИИ**: "Я могу помочь вам исследовать структуру вашей базы данных. Позвольте мне перечислить все таблицы, а затем вы можете выбрать одну, чтобы узнать больше о ее структуре." **Вы**: "Хорошо, перечислите все таблицы." **ИИ**: "Ваша база данных содержит следующие таблицы: - клиенты - продукты - заказы - инвентарь - сотрудники О какой таблице вы хотели бы узнать больше?" **Вы**: "Расскажите мне о структуре таблицы клиентов." **ИИ**: "Таблица клиентов имеет следующую структуру: - id (целое число, первичный ключ) - имя (varchar(100), не null) - email (varchar(100), уникальный, не null) - дата_регистрации (дата, не null) - последний_вход (timestamp) - статус (enum: 'активный', 'неактивный', 'приостановлен')" ### 2. Анализ данных **Вы**: "Проанализируйте тенденции продаж за последние 6 месяцев." **ИИ**: "Я проанализирую тенденции продаж за последние 6 месяцев. Позвольте мне выполнить несколько запросов..." [ИИ выполняет несколько запросов, анализируя данные о продажах] **ИИ**: "На основе анализа последних 6 месяцев: 1. Общие продажи: $1,245,678, рост на 15% по сравнению с предыдущими 6 месяцами 2. Самый продаваемый продукт: Продукт X, составляющий 23% от общих продаж 3. Пиковые периоды продаж: пятницы и субботы, составляющие 45% от общих продаж 4. Коэффициент удержания клиентов: 78%, рост на 5% по сравнению с предыдущими 6 месяцами" ### 3. Анализ между базами данных **Вы**: "Сравните структуру таблицы пользователей между производственной и тестовой базами данных." **ИИ**: "Я сравню структуру таблицы пользователей между двумя базами данных..." [ИИ запрашивает обе базы данных для структур таблиц] **ИИ**: "Различия в структуре таблицы пользователей между производственной и тестовой базами данных: 1. Производственная имеет дополнительный столбец 'last_login_ip' (varchar(45)) 2. Столбец 'email' в тестовой базе данных не имеет уникального ограничения 3. Производственная имеет дополнительный индекс: idx_user_status 4. Тестовая база данных не имеет ограничения внешнего ключа: fk_user_role" ## Лучшие практики ### Оптимизация запросов 1. **Ограничение размера результирующего набора**: Используйте предложения LIMIT для ограничения количества возвращаемых строк 2. **Выбор только необходимых столбцов**: Избегайте использования SELECT * 3. **Использование индексированных столбцов**: Используйте столбцы с индексами в предложениях WHERE 4. **Избегание сложных вычислений**: Перенесите сложные вычисления на уровень приложения ### Рекомендации по безопасности 1. **Использование учетных записей только для чтения**: Создавайте выделенные учетные записи базы данных только для чтения для доступа ИИ 2. **Ограничение доступа к таблицам**: Предоставляйте доступ только к необходимым таблицам 3. **Использование SSL/TLS**: Включите шифрование для удаленных подключений к базе данных 4. **Регулярная смена паролей**: Периодически меняйте пароли базы данных ### Оптимизация производительности 1. **Настройка пула соединений**: Настройте размер пула соединений в зависимости от вашего использования 2. **Настройки тайм-аута запроса**: Установите разумные длительности тайм-аута для запросов 3. **Кэширование результатов**: Рассмотрите возможность кэширования для часто запрашиваемых данных 4. **Мониторинг производительности**: Регулярно проверяйте метрики производительности для выявления потенциальных проблем ## Устранение неполадок Если вы столкнулись с проблемами во время использования, обратитесь к разделу устранения неполадок в [Руководстве по установке](installation.md) или обратитесь к [Технической документации](technical/architecture.md) для получения более подробной информации.

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/donghao1393/mcp-dbutils'

If you have feedback or need assistance with the MCP directory API, please join our Discord server