Skip to main content
Glama

llm-chat-mcp

Servidor MCP para interactuar con los modelos LLM configurados en el config.yaml de Continue.dev.

Qué hace

Expone 4 herramientas que permiten al agente inspeccionar tus modelos configurados y enviarles solicitudes de chat:

  • llm_chat_list_models — lista todos los modelos de tu configuración con sus nombres e ids

  • llm_chat_get_model_params — inspecciona los parámetros (temperature, topP, etc.) de cualquier modelo

  • llm_chat_get_model_prompt — lee el prompt de sistema configurado para un modelo

  • llm_chat_send_request — chatea con un modelo, opcionalmente sobrescribiendo parámetros o cargando prompts desde archivos

Related MCP server: Polybrain MCP Server

Instalación

pip install -e .

O ejecútalo directamente desde el código fuente sin instalación.

Uso desde 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

Argumento

Descripción

Por defecto

--config PATH

Ruta al config.yaml

~/.continue/config.yaml

--default-model NAME

Modelo por defecto para send_request

(ninguno)

--timeout SECONDS

Tiempo de espera de la solicitud en segundos

19

--relative_paths_base PATH

Directorio base para resolver rutas de archivos de salida relativas

(cwd del proceso)

--auto-output-dir PATH

Directorio para archivos de salida generados automáticamente cuando la respuesta supera auto_file_threshold y no se establece output_file_path

(directorio temporal del SO)

Configuración

  • La configuración se vuelve a leer en cada solicitud — no se necesita reiniciar

  • La autenticación usa apiKey de cada entrada de modelo en config.yaml

  • Si no se especifica ningún modelo (ni en CLI ni en la llamada a la herramienta), un error te indica cómo configurarlo

Parámetros de llm_chat_send_request

La herramienta principal. Envía una solicitud de chat completion a un LLM y devuelve la respuesta.

Parámetros de entrada

Parámetro

Tipo

Por defecto

Descripción

model_selector

str

(por defecto CLI)

Nombre o id del modelo de config.yaml

prompt_text

str

(ninguno)

Texto del prompt a enviar

prompt_files

list

(ninguno)

Lista de especificaciones de archivo (ruta de cadena o dict {path, start_line, end_line})

include_line_numbers

bool

true

Prefija cada línea del archivo con N:

system_prompt

str

(de config)

Sobrescribe el mensaje de sistema; "" lo suprime por completo

temperature, topP, topK, minP

float

(de config)

Parámetros de muestreo

maxTokens, presencePenalty, frequencyPenalty

int/float

(de config)

Parámetros de generación

extraParams

dict

(ninguno)

Propiedades extra del cuerpo que se fusionan en la solicitud API

details

bool

false

Incluye contenido de razonamiento/pensamiento en la respuesta

timeout

float

(por defecto CLI)

Sobrescritura del tiempo de espera por solicitud

output_file_path

str

(ninguno)

Escribe la respuesta completa en este archivo (las rutas relativas se resuelven contra --relative_paths_base)

append

bool

false

Añade a output_file_path en lugar de sobrescribir; devuelve appended_line_start/appended_line_end

inline_preview_chars

int

500

Máximo de caracteres del contenido devuelto en línea; la vista previa solo se aplica cuando se escribe un archivo

auto_file_threshold

int

8000

Escribe automáticamente la respuesta en un archivo cuando response_chars supera este valor y no se establece output_file_path; 0 lo desactiva

Estructura de la respuesta

Siempre se devuelve como 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
  }
}

Estrategia de salida

La herramienta elige una de tres estrategias según los parámetros y el tamaño de la respuesta:

  1. Archivo explícito (output_file_path establecido): la respuesta completa se escribe en el archivo. Si append=true, la respuesta se añade y se devuelven appended_line_start/appended_line_end (basados en 1, inclusivos) para que el llamador pueda leer solo el fragmento añadido mediante extract_lines.

  2. Archivo automático (sin output_file_path, auto_file_threshold > 0, response_chars > umbral): la respuesta completa se escribe en un archivo generado automáticamente en --auto-output-dir (o en el directorio temporal del SO). Formato del nombre: llm_output_<YYYYMMDD_HHMMSS>_<uuid-de-6-caracteres>.json.

  3. Solo en línea (sin archivo escrito): el contenido completo se devuelve en el campo content.

Vista previa en línea

Cuando se escribe un archivo (explícito o automático), el campo content contiene una vista previa de la respuesta:

  • Si inline_preview_chars > 0 y len(content) > inline_preview_chars: vista previa truncada con el sufijo [truncated, full response in <file_path>].

  • Si inline_preview_chars > 0 y len(content) <= inline_preview_chars: contenido completo (cabe en la vista previa).

  • Si inline_preview_chars == 0: content vacío (el archivo tiene la respuesta completa).

Cuando no se escribe ningún archivo, el contenido completo se devuelve en línea independientemente de inline_preview_chars — esto evita la pérdida de datos.

Integración con Continue.dev

Añade a .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"

Luego recarga Continue.dev.

Estructura del proyecto

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

Pruebas

python tests/test_output_strategies.py

Las pruebas simulan la llamada a la API y verifican la lógica de escritura de archivos y ensamblaje de respuestas. Cubren todas las combinaciones de output_file_path, append, inline_preview_chars y auto_file_threshold.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers