# @huggingface/mcp-client

Клиент для протокола контекста модели (MCP).

Этот пакет предоставляет реализацию клиента для взаимодействия с MCP-серверами, построенную на основе нашего `@huggingface/inference`, InferenceClient.

В него включён пример CLI-агента smol, который может использовать инструменты MCP.

## Установка

Этот пакет входит в состав монорепозитория Hugging Face JS. Чтобы установить зависимости для всех пакетов, выполните команду из корня репозитория:

```bash
pnpm install
```

## Usage (CLI-агент)

Пакет включает в себя агента командной строки (CLI), демонстрирующего, как использовать MCP-клиент.

### Предварительные требования

*   **Токен API Hugging Face:** вам потребуется токен API Hugging Face с соответствующими правами доступа. Задайте его в качестве переменной окружения:
    ```bash
    export HF_TOKEN="hf_..."
    ```

### Запуск агента

Перейдите в каталог пакета и запустите скрипт агента:

```bash
cd packages/mcp-client
pnpm agent
```

В качестве альтернативы выполните команду из корня монорепозитория:

```bash
pnpm --filter @huggingface/mcp-client agent
```

Агент загрузит доступные MCP-инструменты (по умолчанию подключаясь к серверу файловой системы для вашего рабочего стола и к серверу Playwright) и запросит ввод (`>`).

### Configuration (Переменные окружения)

*   `HF_TOKEN` (необязательно): ваш API-токен Hugging Face. Требуется, если вы используете Inference Provider на HF.
*   `MODEL_ID` (необязательно): идентификатор модели, используемый для инференса агента. По умолчанию — `Qwen/Qwen2.5-72B-Instruct`.
*   `PROVIDER` (необязательный): провайдер инференса. По умолчанию — `together`. Список доступных провайдеров см. в `@huggingface/inference`.
*   `ENDPOINT_URL` или `BASE_URL` (необязательно): пользовательский базовый URL (например, локальный) для вызова.

Пример с пользовательской моделью:

```bash
export HF_TOKEN="hf_..."
export MODEL_ID="Qwen/Qwen2.5-72B-Instruct"
pnpm agent
```

## Разработка

Общие задачи разработки можно выполнять с помощью скриптов pnpm:

*   `pnpm build`: сборка пакета.
*   `pnpm lint`: проверка и исправление стиля кода.
*   `pnpm format`: Форматирование кода с помощью Prettier.
*   `pnpm test`: запуск тестов с помощью Vitest.
*   `pnpm check`: проверка типов кода с помощью TypeScript.

## Лицензия

MIT

