Skip to main content
Glama

llm-chat-mcp

MCP-сервер для взаимодействия с LLM-моделями, настроенными в config.yaml из Continue.dev.

Что он делает

Предоставляет 4 инструмента, которые позволяют агенту просматривать настроенные модели и отправлять им чат-запросы:

  • llm_chat_list_models — список всех моделей в вашем конфиге с их именами и id

  • llm_chat_get_model_params — просмотр параметров (temperature, topP и т.д.) для любой модели

  • llm_chat_get_model_prompt — чтение системного промпта, настроенного для модели

  • llm_chat_send_request — чат с моделью, с возможностью переопределения параметров или загрузки промптов из файлов

Related MCP server: Polybrain MCP Server

Установка

pip install -e .

Или запуск напрямую из исходников без установки.

Использование CLI

python -m llm_chat_mcp --default-model "GLM-5.2-FP8"
python -m llm_chat_mcp --config /path/to/config.yaml --default-model "ModelName"
python -m llm_chat_mcp --help

Аргумент

Описание

По умолчанию

--config PATH

Путь к config.yaml

~/.continue/config.yaml

--default-model NAME

Модель по умолчанию для send_request

(нет)

--timeout SECONDS

Таймаут запроса в секундах

19

--relative_paths_base PATH

Базовая директория для разрешения относительных путей выходных файлов

(текущая рабочая папка)

--auto-output-dir PATH

Директория для автоматически создаваемых выходных файлов, когда ответ превышает auto_file_threshold и не задан output_file_path

(системная временная папка)

Конфигурация

  • Конфиг перечитывается при каждом запросе — перезапуск не требуется

  • Аутентификация использует apiKey из каждой записи модели в config.yaml

  • Если модель не указана (ни в CLI, ни в вызове инструмента), ошибка подскажет, как её задать

Параметры llm_chat_send_request

Основной инструмент. Отправляет запрос на завершение чата к LLM и возвращает ответ.

Входные параметры

Параметр

Тип

По умолчанию

Описание

model_selector

str

(по умолчанию из CLI)

Имя или id модели из config.yaml

prompt_text

str

(нет)

Текст промпта для отправки

prompt_files

list

(нет)

Список спецификаций файлов (строка пути или словарь {path, start_line, end_line})

include_line_numbers

bool

true

Добавлять префикс N: к каждой строке файла

system_prompt

str

(из конфига)

Переопределить системное сообщение; "" полностью отключает его

temperature, topP, topK, minP

float

(из конфига)

Параметры сэмплирования

maxTokens, presencePenalty, frequencyPenalty

int/float

(из конфига)

Параметры генерации

extraParams

dict

(нет)

Дополнительные свойства тела запроса, объединяемые с API-запросом

details

bool

false

Включать содержимое рассуждений/мышления в ответ

timeout

float

(по умолчанию из CLI)

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

output_file_path

str

(нет)

Записать полный ответ в этот файл (относительные пути разрешаются относительно --relative_paths_base)

append

bool

false

Дописывать в output_file_path вместо перезаписи; возвращает appended_line_start/appended_line_end

inline_preview_chars

int

500

Максимальное количество символов содержимого, возвращаемого инлайн; предпросмотр применяется только при записи в файл

auto_file_threshold

int

8000

Автоматически записывать ответ в файл, когда response_chars превышает это значение и не задан output_file_path; 0 отключает

Структура ответа

Всегда возвращается в формате JSON:

{
  "content": "<preview, full content, or empty>",
  "truncated": true,
  "metadata": {
    "model_name": "...",
    "model": "...",
    "elapsed_seconds": 1.23,
    "request_sent": {...},
    "response_headers": {...},
    "response_chars": 1234,
    "output_file": "...",
    "auto_output_file": "...",
    "created_dirs": [...],
    "appended_line_start": 201,
    "appended_line_end": 250
  }
}

Стратегия вывода

Инструмент выбирает одну из трёх стратегий в зависимости от параметров и размера ответа:

  1. Явный файл (output_file_path задан): полный ответ записывается в файл. Если append=true, ответ дописывается, и возвращаются appended_line_start/appended_line_end (с 1, включительно), чтобы вызывающий код мог прочитать только добавленный фрагмент через extract_lines.

  2. Автоматический файл (нет output_file_path, auto_file_threshold > 0, response_chars > threshold): полный ответ записывается в автоматически созданный файл в --auto-output-dir (или в системную временную папку). Формат имени: llm_output_<YYYYMMDD_HHMMSS>_<6-char-uuid>.json.

  3. Только инлайн (файл не записывается): полное содержимое возвращается в поле content.

Инлайн-предпросмотр

Когда файл записывается (явный или автоматический), поле content содержит предпросмотр ответа:

  • Если inline_preview_chars > 0 и len(content) > inline_preview_chars: усечённый предпросмотр с суффиксом [truncated, full response in <file_path>].

  • Если inline_preview_chars > 0 и len(content) <= inline_preview_chars: полное содержимое (помещается в предпросмотр).

  • Если inline_preview_chars == 0: пустое content (в файле полный ответ).

Когда файл не записывается, полное содержимое возвращается инлайн независимо от inline_preview_chars — это предотвращает потерю данных.

Интеграция с Continue.dev

Добавьте в .continue/mcpServers/llm-chat.yaml:

name: LLM Chat MCP server
version: 0.2.0
schema: v1
mcpServers:
  - name: LLM Chat MCP server
    command: python
    args:
      - "-m"
      - "llm_chat_mcp"
      - "--default-model"
      - "GLM-5.2-FP8"
      - "--timeout"
      - "570"
      - "--relative_paths_base"
      - "/path/to/your/workspace"
      - "--auto-output-dir"
      - "/path/to/your/workspace/.continue/skills/large-tasks/tmp-outputs"
    env:
      PYTHONPATH: "/path/to/llm-chat-mcp"

Затем перезагрузите Continue.dev.

Структура проекта

llm-chat-mcp/
├── pyproject.toml          # Dependencies: mcp, pyyaml, httpx
├── README.md               # This file
├── llm_chat_mcp/
│   ├── __init__.py
│   ├── __main__.py         # CLI entry point + tool registration
│   ├── config.py           # Config loading, model resolution
│   └── api.py              # API client, error handling
└── tests/
    └── test_output_strategies.py  # Tests for append, inline_preview, auto_file

Тестирование

python tests/test_output_strategies.py

Тесты имитируют вызов API и проверяют логику записи файлов и сборки ответа. Покрывают все комбинации output_file_path, append, inline_preview_chars и auto_file_threshold.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers