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.
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) undplan(nur Plan, keine Ausführung) - Streaming-Antworten und Extended Thinking (optional zuschaltbar)
- Tools einzeln oder komplett de-/aktivierbar
- Dateien per
/attachin den Chat-Kontext laden - Prompt-Generierung und -Evaluierung über eigene MCP-Tools (siehe PROMPT_EVALUATION.md)
Voraussetzungen
- Node.js (ESM/
type: module, siehepackage.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 dasgenerate_prompts-Tool benötigtTAVILY_API_KEY— nur nötig für dasweb_search-ToolGITHUB_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öschenexit— 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 gegenconfig.attachBaseDiraufgelö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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.