Сервер Kaggle MCP (протокол контекста модели)
Этот репозиторий содержит сервер MCP (Model Context Protocol) ( server.py
), созданный с использованием библиотеки fastmcp
. Он взаимодействует с API Kaggle для предоставления инструментов для поиска и загрузки наборов данных, а также подсказки для генерации блокнотов EDA.
Структура проекта
server.py
: Приложение сервера FastMCP. Оно определяет ресурсы, инструменты и подсказки для взаимодействия с Kaggle..env.example
: Пример файла для переменных среды (учетные данные API Kaggle). Переименуйте в.env
и заполните свои данные.requirements.txt
: список необходимых пакетов Python.pyproject.toml
иuv.lock
: метаданные проекта и заблокированные зависимости для менеджера пакетовuv
.datasets/
: каталог по умолчанию, в котором будут храниться загруженные наборы данных Kaggle.
Настраивать
- Клонируйте репозиторий:
- Создать виртуальную среду (рекомендуется):
- Установка зависимостей: Используя pip:Или с помощью УФ:
- Настройте учетные данные API Kaggle:
- Метод 1 (рекомендуемый): переменные среды
- Создать файл
.env
- Откройте файл
.env
и добавьте свое имя пользователя Kaggle и ключ API: - Вы можете получить свой ключ API на странице вашего аккаунта Kaggle (
Account
>API
>Create New API Token
). Это загрузит файлkaggle.json
, содержащий ваше имя пользователя и ключ.
- Создать файл
- Метод 2: файл
kaggle.json
- Загрузите файл
kaggle.json
из своей учетной записи Kaggle. - Поместите файл
kaggle.json
в ожидаемое место (обычно~/.kaggle/kaggle.json
в Linux/macOS илиC:\Users\<Your User Name>\.kaggle\kaggle.json
в Windows). Библиотекаkaggle
автоматически обнаружит этот файл, если переменные среды не установлены.
- Загрузите файл
- Метод 1 (рекомендуемый): переменные среды
Запуск сервера
- Убедитесь, что ваша виртуальная среда активна.
- Запустите MCP-сервер:Сервер запустится и зарегистрирует свои ресурсы, инструменты и подсказки. Вы можете взаимодействовать с ним с помощью клиента MCP или совместимых инструментов.
Запуск Docker-контейнера
1. Настройте учетные данные API Kaggle
Для доступа к наборам данных Kaggle этому проекту требуются учетные данные API Kaggle.
- Перейдите по ссылке https://www.kaggle.com/settings и нажмите «Создать новый токен API», чтобы загрузить файл
kaggle.json
. - Откройте файл
kaggle.json
и скопируйте свое имя пользователя и ключ в новый файл.env
в корне проекта:
2. Создайте образ Docker
3. Запустите контейнер Docker, используя файл .env.
Это автоматически загрузит ваши учетные данные Kaggle в качестве переменных среды внутри контейнера.
Возможности сервера
Сервер предоставляет следующие возможности через протокол контекста модели:
Инструменты
search_kaggle_datasets(query: str)
:- Выполняет поиск наборов данных на Kaggle, соответствующих предоставленной строке запроса.
- Возвращает список JSON из 10 лучших соответствующих наборов данных с такими подробностями, как ссылка, название, количество загрузок и дата последнего обновления.
download_kaggle_dataset(dataset_ref: str, download_path: str | None = None)
:- Загружает и распаковывает файлы для определенного набора данных Kaggle.
dataset_ref
: идентификатор набора данных в форматеusername/dataset-slug
(например,kaggle/titanic
).download_path
(Необязательно): Указывает, куда загрузить набор данных. Если не указано, по умолчанию используется./datasets/<dataset_slug>/
относительно расположения скрипта сервера.
Подсказки
generate_eda_notebook(dataset_ref: str)
:- Генерирует подсказку, подходящую для модели ИИ (например, Gemini), для создания базовой записной книжки разведочного анализа данных (EDA) для указанного эталонного набора данных Kaggle.
- В приглашении запрашивается код Python, охватывающий загрузку данных, проверку пропущенных значений, визуализацию и базовую статистику.
Подключение к Claude Desktop
Перейдите в Claude > Настройки > Разработчик > Изменить конфигурацию > claude_desktop_config.json, чтобы включить следующее:
Пример использования
Агент ИИ или клиент MCP может взаимодействовать с этим сервером следующим образом:
- Агент: «Поиск на Kaggle наборов данных о «болезнях сердца»»
- Сервер выполняет
search_kaggle_datasets(query='heart disease')
- Сервер выполняет
- Агент: «Загрузить набор данных 'user/heart-disease-dataset'»
- Сервер выполняет
download_kaggle_dataset(dataset_ref='user/heart-disease-dataset')
- Сервер выполняет
- Агент: «Создать запрос блокнота EDA для 'user/heart-disease-dataset'»
- Сервер выполняет
generate_eda_notebook(dataset_ref='user/heart-disease-dataset')
- Сервер возвращает структурированное сообщение-подсказку.
- Сервер выполняет
- Агент: (Отправляет запрос в модель генерации кода) -> Получает код EDA Python.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Он взаимодействует с API Kaggle, предоставляя инструменты для поиска и загрузки наборов данных, а также подсказку для создания блокнотов EDA.
Related MCP Servers
- -securityAlicense-qualityAllows you to explore and manipulate kintone data using AI tools such as Claude Desktop!Last updated -9GoMIT License
- AsecurityAlicenseAqualityAllows the use of Kagi's API for web searching and content enrichment through methods like fastgpt, enrich/web, and enrich/news.Last updated -32PythonMIT License
- AsecurityAlicenseAqualityThis server facilitates interaction with Keboola's Storage API, enabling users to browse and manage project buckets, tables, and components efficiently through Claude Desktop.Last updated -767PythonMIT License
- AsecurityAlicenseAqualityEnables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.Last updated -3316TypeScriptMIT License