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
访问服务器

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选