Skip to main content
Glama

llm-chat-mcp

MCP-Server für die Interaktion mit LLM-Modellen, die in der config.yaml von Continue.dev konfiguriert sind.

Funktionen

Stellt 4 Tools bereit, mit denen der Agent Ihre konfigurierten Modelle einsehen und Chat-Anfragen an sie senden kann:

  • llm_chat_list_models — listet alle Modelle in Ihrer Konfiguration mit Namen und IDs auf

  • llm_chat_get_model_params — zeigt Parameter (temperature, topP, etc.) für ein beliebiges Modell an

  • llm_chat_get_model_prompt — liest das für ein Modell konfigurierte System-Prompt

  • llm_chat_send_request — Chat mit einem Modell, optional mit überschriebenen Parametern oder aus Dateien geladenen Prompts

Related MCP server: Polybrain MCP Server

Installation

pip install -e .

Oder direkt aus dem Quellcode ausführen, ohne Installation.

CLI-Nutzung

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

Argument

Beschreibung

Standard

--config PATH

Pfad zur config.yaml

~/.continue/config.yaml

--default-model NAME

Standardmodell für send_request

(keines)

--timeout SECONDS

Request-Timeout in Sekunden

19

--relative_paths_base PATH

Basisverzeichnis zum Auflösen relativer Ausgabedateipfade

(aktuelles Arbeitsverzeichnis)

--auto-output-dir PATH

Verzeichnis für automatisch generierte Ausgabedateien, wenn die Antwort auto_file_threshold überschreitet und kein output_file_path gesetzt ist

(OS-Tempverzeichnis)

Konfiguration

  • Die Konfiguration wird bei jeder Anfrage neu gelesen – kein Neustart erforderlich

  • Die Authentifizierung verwendet apiKey aus jedem Modelleintrag in config.yaml

  • Wenn kein Modell angegeben ist (weder in der CLI noch im Tool-Aufruf), zeigt ein Fehler, wie man eines festlegt

Parameter von llm_chat_send_request

Das Haupttool. Sendet eine Chat-Completion-Anfrage an ein LLM und gibt die Antwort zurück.

Eingabeparameter

Parameter

Typ

Standard

Beschreibung

model_selector

str

(CLI-Standard)

Modellname oder -ID aus config.yaml

prompt_text

str

(keines)

Zu sendender Prompt-Text

prompt_files

list

(keines)

Liste von Dateispezifikationen (String-Pfad oder {path, start_line, end_line}-Dict)

include_line_numbers

bool

true

Jede Dateizeile mit N: präfixieren

system_prompt

str

(aus Konfiguration)

Systemnachricht überschreiben; "" unterdrückt sie vollständig

temperature, topP, topK, minP

float

(aus Konfiguration)

Sampling-Parameter

maxTokens, presencePenalty, frequencyPenalty

int/float

(aus Konfiguration)

Generierungsparameter

extraParams

dict

(keines)

Zusätzliche Body-Eigenschaften, die in die API-Anfrage eingefügt werden

details

bool

false

Reasoning-/Denkinhalte in die Antwort aufnehmen

timeout

float

(CLI-Standard)

Timeout-Überschreibung pro Anfrage

output_file_path

str

(keines)

Vollständige Antwort in diese Datei schreiben (relative Pfade werden gegen --relative_paths_base aufgelöst)

append

bool

false

An output_file_path anhängen statt überschreiben; gibt appended_line_start/appended_line_end zurück

inline_preview_chars

int

500

Maximale Zeichenzahl des inline zurückgegebenen Inhalts; Vorschau gilt nur, wenn eine Datei geschrieben wird

auto_file_threshold

int

8000

Antwort automatisch in Datei schreiben, wenn response_chars diesen Wert überschreitet und kein output_file_path gesetzt ist; 0 deaktiviert

Antwortstruktur

Wird immer als JSON zurückgegeben:

{
  "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
  }
}

Ausgabestrategie

Das Tool wählt je nach Parametern und Antwortgröße eine von drei Strategien:

  1. Explizite Datei (output_file_path gesetzt): Die vollständige Antwort wird in die Datei geschrieben. Wenn append=true, wird die Antwort angehängt und appended_line_start/appended_line_end (1-basiert, inklusiv) werden zurückgegeben, sodass der Aufrufer nur den angehängten Teil über extract_lines lesen kann.

  2. Automatische Datei (kein output_file_path, auto_file_threshold > 0, response_chars > Schwellenwert): Die vollständige Antwort wird in eine automatisch generierte Datei in --auto-output-dir (oder dem OS-Tempverzeichnis) geschrieben. Dateinamenformat: llm_output_<YYYYMMDD_HHMMSS>_<6-stellige-uuid>.json.

  3. Nur inline (keine Datei geschrieben): Der vollständige Inhalt wird im Feld content zurückgegeben.

Inline-Vorschau

Wenn eine Datei geschrieben wird (explizit oder automatisch), enthält das Feld content eine Vorschau der Antwort:

  • Wenn inline_preview_chars > 0 und len(content) > inline_preview_chars: gekürzte Vorschau mit Suffix [truncated, full response in <file_path>].

  • Wenn inline_preview_chars > 0 und len(content) <= inline_preview_chars: vollständiger Inhalt (passt in die Vorschau).

  • Wenn inline_preview_chars == 0: leeres content (die Datei enthält die vollständige Antwort).

Wenn keine Datei geschrieben wird, wird der vollständige Inhalt unabhängig von inline_preview_chars inline zurückgegeben – dies verhindert Datenverlust.

Continue.dev-Integration

Zu .continue/mcpServers/llm-chat.yaml hinzufügen:

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"

Dann Continue.dev neu laden.

Projektstruktur

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

Tests

python tests/test_output_strategies.py

Die Tests mocken den API-Aufruf und verifizieren die Dateischreib- und Antwortzusammenstellungslogik. Sie decken alle Kombinationen von output_file_path, append, inline_preview_chars und auto_file_threshold ab.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers