ChatWithMCP

ChatWithMCP

A terminal-based chat client for Anthropic's Claude with MCP server integration, featuring automatic tool calling, streaming, extended thinking, and built-in prompt generation/evaluation capabilities.

Category
Visit Server

README

ChatWithMCP

Ein Kommandozeilen-Chat-Client für Claude (Anthropic) mit Anbindung an eigene und externe MCP-Server. Der Chat läuft direkt im Terminal, ruft Tools automatisch (oder nach Rückfrage) auf und bringt ein eingebautes System zum Generieren und Bewerten von Prompt-Varianten mit.

Features

  • Interaktiver Chat im Terminal (OpenAI-kompatible API, openai-SDK gegen Anthropic-Endpoint)
  • Anbindung eines lokalen MCP-Servers (mcp-server/) mit eigenen Tools
  • Optionale Anbindung des offiziellen GitHub MCP Servers über Docker
  • Drei Ausführungs-Modi für Tool-Aufrufe: auto, approve (Rückfrage) und plan (nur Plan, keine Ausführung)
  • Streaming-Antworten und Extended Thinking (optional zuschaltbar)
  • Tools einzeln oder komplett de-/aktivierbar
  • Dateien per /attach in den Chat-Kontext laden
  • Prompt-Generierung und -Evaluierung über eigene MCP-Tools (siehe PROMPT_EVALUATION.md)

Voraussetzungen

  • Node.js (ESM/type: module, siehe package.json)
  • Ein Anthropic API-Key
  • Optional: Docker (nur für den GitHub-MCP-Server) und ein GitHub Personal Access Token
  • Optional: ein Tavily API-Key (für die web_search-Tool)

Installation

npm install

Konfiguration

Lege eine .env-Datei im Projektwurzelverzeichnis an (wird von .gitignore ausgeschlossen):

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 — werden für den Chat-Client und das generate_prompts-Tool benötigt
  • TAVILY_API_KEY — nur nötig für das web_search-Tool
  • GITHUB_PERSONAL_ACCESS_TOKEN — nur nötig, wenn der GitHub-MCP-Server (via Docker) genutzt werden soll

Allgemeine Einstellungen (Modell, Token-Limits, Basisverzeichnis für /attach, GitHub-Toolsets) stehen in config.mjs.

Nutzung

Chat starten:

npm start

Der lokale MCP-Server (mcp-server/server.mjs) wird dabei automatisch als Subprozess gestartet. Der GitHub-MCP-Server wird optional über Docker verbunden — schlägt das fehl, läuft der Chat ohne GitHub-Tools weiter.

Den MCP-Server lässt sich auch unabhängig starten (z. B. zum Testen mit einem MCP-Inspector):

npm run mcp-server

Befehle im Chat

Allgemein

  • /system TEXT — System-Prompt setzen
  • /nosystem — System-Prompt entfernen
  • /clear — Chat-Verlauf löschen
  • exit — Chat beenden

Tool-Verwaltung

  • /tools — verfügbare Tools mit Status anzeigen
  • /disable-tool <name> / /enable-tool <name> — einzelnes Tool de-/aktivieren
  • /disable-all-tools / /enable-all-tools — alle Tools de-/aktivieren

Chat-Optionen

  • /options — aktuelle Einstellungen anzeigen
  • /enable-streaming / /disable-streaming — Streaming umschalten (deaktiviert währenddessen alle Tools)
  • /enable-thinking / /disable-thinking — Extended Thinking umschalten

Ausführungs-Modus

  • /plan-mode — Modell liefert nur einen Plan, führt keine Tools aus
  • /auto-mode — Tools werden ohne Rückfrage ausgeführt (Standard)
  • /auto-approve — vor jedem Tool-Aufruf muss bestätigt werden
  • /mode — aktuellen Modus anzeigen

Dateien

  • /attach <pfad> — Datei einlesen und dem Chat-Verlauf hinzufügen (relative Pfade werden gegen config.attachBaseDir aufgelöst)

Prompt Evaluation

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

Details dazu in PROMPT_EVALUATION.md.

Verfügbare MCP-Tools

Der lokale MCP-Server (mcp-server/tools/) stellt u. a. folgende Tools bereit:

Tool Beschreibung
get_current_date / get_current_time Liefert aktuelles Datum bzw. aktuelle Uhrzeit
get_weather Wetterabfrage
web_search Websuche (benötigt TAVILY_API_KEY)
fetch_page Lädt eine Webseite und wandelt sie in Text um
read_file / save_to_file Dateien lesen bzw. schreiben
list_directory Verzeichnisinhalt auflisten
ssh_execute Befehle auf einem entfernten Host per SSH ausführen
get_network_info Netzwerkschnittstellen, Subnetze und DNS-Server des Rechners anzeigen
discover_network_hosts Aktive Hosts im lokalen IP-Netzwerk per TCP-Connect-Scan finden
generate_prompts / evaluate_prompts Prompt-Varianten erzeugen und bewerten

Über den optionalen GitHub-MCP-Server stehen zusätzlich Tools für Repos, Issues, Pull Requests und Actions zur Verfügung (siehe config.mjs → github.toolsets).

Projektstruktur

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured