Skip to main content
Glama

ChatWithMCP

Un cliente de chat de línea de comandos para Claude (Anthropic) con conexión a servidores MCP propios y externos. El chat se ejecuta directamente en la terminal, llama a las herramientas automáticamente (o previa consulta) e incluye un sistema integrado para generar y evaluar variantes de prompts.

Características

  • Chat interactivo en la terminal (API compatible con OpenAI, SDK de openai contra el endpoint de Anthropic)

  • Conexión de un servidor MCP local (mcp-server/) con herramientas propias

  • Conexión opcional del servidor MCP de GitHub oficial a través de Docker

  • Tres modos de ejecución para llamadas a herramientas: auto, approve (consulta) y plan (solo plan, sin ejecución)

  • Respuestas en streaming y pensamiento extendido (opcional)

  • Herramientas activables/desactivables individual o completamente

  • Cargar archivos en el contexto del chat mediante /attach

  • Generación y evaluación de prompts a través de herramientas MCP propias (ver PROMPT_EVALUATION.md)

Related MCP server: MCP Chat

Requisitos previos

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

  • Una clave de API de Anthropic

  • Opcional: Docker (solo para el servidor MCP de GitHub) y un token de acceso personal de GitHub

  • Opcional: una clave de API de Tavily (para la herramienta web_search)

Instalación

npm install

Configuración

Crea un archivo .env en el directorio raíz del proyecto (excluido por .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 — se necesitan para el cliente de chat y la herramienta generate_prompts

  • TAVILY_API_KEY — solo necesario para la herramienta web_search

  • GITHUB_PERSONAL_ACCESS_TOKEN — solo necesario si se va a utilizar el servidor MCP de GitHub (a través de Docker)

La configuración general (modelo, límites de tokens, directorio base para /attach, conjuntos de herramientas de GitHub) se encuentra en config.mjs.

Uso

Iniciar el chat:

npm start

El servidor MCP local (mcp-server/server.mjs) se inicia automáticamente como subproceso. El servidor MCP de GitHub se conecta opcionalmente a través de Docker; si falla, el chat continúa sin las herramientas de GitHub.

El servidor MCP también se puede iniciar de forma independiente (p. ej., para probarlo con un inspector de MCP):

npm run mcp-server

Comandos del chat

General

  • /system TEXTO — establecer el prompt del sistema

  • /nosystem — eliminar el prompt del sistema

  • /clear — borrar el historial del chat

  • exit — salir del chat

Gestión de herramientas

  • /tools — mostrar las herramientas disponibles con su estado

  • /disable-tool <nombre> / /enable-tool <nombre> — desactivar/activar una herramienta

  • /disable-all-tools / /enable-all-tools — desactivar/activar todas las herramientas

Opciones del chat

  • /options — mostrar la configuración actual

  • /enable-streaming / /disable-streaming — alternar streaming (desactiva todas las herramientas mientras tanto)

  • /enable-thinking / /disable-thinking — alternar pensamiento extendido

Modo de ejecución

  • /plan-mode — el modelo solo proporciona un plan, no ejecuta herramientas

  • /auto-mode — las herramientas se ejecutan sin preguntar (predeterminado)

  • /auto-approve — se debe confirmar antes de cada llamada a herramienta

  • /mode — mostrar el modo actual

Archivos

  • /attach <ruta> — leer un archivo y añadirlo al historial del chat (las rutas relativas se resuelven contra config.attachBaseDir)

Evaluación de prompts

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

  • /evaluate-prompts

  • /prompts

  • /clear-prompts

Más detalles en PROMPT_EVALUATION.md.

Herramientas MCP disponibles

El servidor MCP local (mcp-server/tools/) proporciona, entre otras, las siguientes herramientas:

Herramienta

Descripción

get_current_date / get_current_time

Devuelve la fecha u hora actual

get_weather

Consulta meteorológica

web_search

Búsqueda web (requiere TAVILY_API_KEY)

fetch_page

Carga una página web y la convierte en texto

read_file / save_to_file

Leer o escribir archivos

list_directory

Listar el contenido de un directorio

ssh_execute

Ejecutar comandos en un host remoto por SSH

get_network_info

Mostrar interfaces de red, subredes y servidores DNS del equipo

discover_network_hosts

Encontrar hosts activos en la red IP local mediante escaneo de conexión TCP

generate_prompts / evaluate_prompts

Generar y evaluar variantes de prompts

A través del servidor MCP de GitHub opcional también hay herramientas disponibles para repos, issues, pull requests y actions (ver config.mjs → github.toolsets).

Estructura del proyecto

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