Skip to main content
Glama

ChatWithMCP

Консольный клиент для чата с Claude (Anthropic) с поддержкой подключения к собственным и сторонним MCP-серверам. Чат работает прямо в терминале, автоматически вызывает инструменты (или после запроса) и включает встроенную систему для генерации и оценки вариантов промптов.

Возможности

  • Интерактивный чат в терминале (OpenAI-совместимый API, SDK openai для Anthropic-endpoint)

  • Подключение локального MCP-сервера (mcp-server/) с собственными инструментами

  • Опциональное подключение официального GitHub MCP-сервера через Docker

  • Три режима выполнения инструментов: auto, approve (с запросом подтверждения) и plan (только план, без выполнения)

  • Стриминг-ответы и Extended Thinking (включаются по желанию)

  • Инструменты можно включать и отключать как по отдельности, так и все сразу

  • Загрузка файлов в контекст чата через /attach

  • Генерация и оценка промптов через собственные MCP-инструменты (см. PROMPT_EVALUATION.md)

Related MCP server: MCP Chat

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

  • Node.js (ESM/type: module, см. package.json)

  • Anthropic API-ключ

  • Необязательно: Docker (только для GitHub-MCP-сервера) и GitHub Personal Access Token

  • Необязательно: Ключ Tavily API (для инструмента web_search)

Установка

npm install

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

Создайте файл .env в корневой директории проекта (он исключён через .gitignore):

ANTHROPIC_API_KEY=dein-anthropic-api-key
BASE_URL=https://api.anthropic.com/v1
TAVILY_API_KEY=dein-tavily-api-key
GITHUB_PERSONAL_ACCESS_TOKEN=dein-github-token
  • ANTHROPIC_API_KEY / BASE_URL — нужны для чат-клиента и инструмента generate_prompts

  • TAVILY_API_KEY — требуется только для инструмента web_search

  • GITHUB_PERSONAL_ACCESS_TOKEN — требуется только если GitHub-MCP-сервер используется через Docker

Общие настройки (модель, лимиты токенов, базовая директория для /attach, github-наборы инструментов) находятся в config.mjs.

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

Запуск чата:

npm start

Локальный MCP-сервер (mcp-server/server.mjs) при этом автоматически запускается как подпроцесс. GitHub-MCP-сервер подключается опционально через Docker — если подключение не удаётся, чат продолжает работать без GitHub-инструментов.

MCP-сервер также можно запустить независимо (например, для проверки MCP-инспектором):

npm run mcp-server

Команды в чате

Общие

  • /system TEXT — задать системный промпт

  • /nosystem — удалить системный промпт

  • /clear — очистить историю чата

  • exit — выйти.

Управление инструментами

  • /tools — показать доступные инструменты и их статус

  • /disable-tool <name> / /enable-tool <name> — отключить или включить отдельный инструмент

  • /disable-all-tools / /enable-all-tools — включить или отключить все инструменты

Параметры чата

  • /options — показать текущие настройки

  • /enable-streaming / /disable-streaming — включить или выключить стриминг (и на это время отключаются все инструменты)

  • /enable-thinking / /disable-thinking — включить или выключить Extended Thinking

Режим выполнения

  • /plan-mode — модель выдаёт только план и не выполняет инструменты

  • /auto-mode — инструменты выполняются без запроса (по умолчанию)

  • /auto-approve — перед каждым вызовом инструмента запрашивается подтверждение

  • /mode — показать текущий режим

Файлы

  • /attach <path> — прочитать файл и добавить его в историю чата (относительные пути разрешаются относительно config.attachBaseDir)

Оценка промптов

  • /generate-prompts <count> <prompt> [--style=formal|casual|technical|creative|concise]

  • /evaluate-prompts

  • /prompts

  • /clear-prompts

Подробнее в PROMPT_EVALUATION.md.

Доступные MCP-инструменты

Локальный MCP-сервер (mcp-server/tools/) предоставляет в том числе следующие инструменты:

| Tool | Описание | |--------------------------------------------------------------------------------------------------------| | get_current_date / get_current_time | Возвращает текущую дату или текущее время | | get_weather | Запрос погоды | | web_search | Поиск в интернете (требуется WEB_SEARCH) | | fetch_page | Загружает веб-страницу и переводит её в текст | | read_file / save_to_file | Чтение или запись файлов | | list_directory | Список содержимого директории | | ssh_execute | Выполняет команды на удалённом хосте по SSH | | get_network_info | Показывает сетевые интерфейсы, подсети и DNS-серверы компьютера | | discover_network_hosts | Находит активные hosts в локальной IP-сети с помощью TCP-connect-сканирования | | generate_prompts / evaluate_prompts | Генерирует и оценивает варианты промптов |

Через официальный GitHub-MCP-сервер также предоставляются инструменты для репозиториев, issues, pull requests и actions (см. config.mjs → github.toolsets).

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

chat.mjs                 CLI-Chat-Client
config.mjs                Konfiguration (Modell, Token-Limits, GitHub-Optionen)
mcp-server/
  server.mjs              MCP-Server (stdio)
  tools/                  Einzelne Tool-Implementierungen
output/                   Ablage für generierte Dateien (z. B. über save_to_file)
PROMPT_EVALUATION.md       Dokumentation des Prompt-Evaluation-Systems

Related MCP Connectors

Related MCP Servers