BotDuaChuot MCP
BotDuaChuot Host MCP
Ein minimaler MCP-Server, der es ChatGPT ermöglicht, direkt auf Ihrem Rechner zu arbeiten, begrenzt auf HOST_WORKSPACE_DIR.
Dieses Repository hat zwei Hauptfunktionen:
Dateien lesen, schreiben, durchsuchen und Befehle auf dem Host ausführen.
Arbeitsanleitungen sowie ein reales Inventar der auf dem Rechner installierten Tools über
duachuot_knowledgebereitstellen.
Aufbau
app/
├── host/ # File, command, policy and tool-inventory logic
├── geo/ # Geo Engine (convert, geodesic, exif, reverse, timezone)
├── ops/ # OPSEC gate
├── platform/ # OS/distro/arch/shell + tool resolution
├── tools/ # MCP adapters: health, host, knowledge, geo, probes, ops
├── config.py
├── mcp_server.py
└── main.py
knowledge/
├── WORKING_GUIDE.md
├── HOST_ENVIRONMENT.md
├── TOOL_CATALOG.json
├── GEO_PLAYBOOK.md
├── FORENSICS_PLAYBOOK.md
└── OSINT_PLAYBOOK.md
skills/
├── ctf-geo/
├── ctf-forensics-plus/
├── ctf-osint-plus/
└── ctf-stego-plus/
datasets/
└── landmarks.json
resources/
└── RESOURCE_MAP.json (generated from the host ctf-tools repo)
└── landmarks.json
install.sh
scripts/
├── install_basic.sh
├── install_cli.sh
├── uninstall_cli.sh
├── restart_server_only.sh
├── start_tunnel_server.sh
├── dev.sh
├── install_datasets.py
└── test.shRelated MCP server: local-drive-mcp
Installation
1. Einzeilige Installation (empfohlen)
curl -fsSL https://raw.githubusercontent.com/cornhub69-x/botduachuot_mcp/main/install.sh | bashStandardmäßig klont das Skript den main-Branch nach ~/.botduachuot_mcp, erstellt ein .venv, installiert Abhängigkeiten, erstellt eine .env mit 600-Berechtigungen und verlinkt die CLI unter ~/.local/bin/duachuot. Das erneute Ausführen desselben Befehls aktualisiert die Installation per Fast-Forward; wenn das Arbeitsverzeichnis nicht committete Dateien enthält, stoppt das Installationsprogramm, um das Überschreiben von Benutzerdaten zu vermeiden.
Es kann mit Umgebungsvariablen angepasst werden:
curl -fsSL https://raw.githubusercontent.com/cornhub69-x/botduachuot_mcp/main/install.sh | \
DUACHUOT_INSTALL_DIR="$HOME/apps/botduachuot_mcp" \
DUACHUOT_BIN_DIR="$HOME/.local/bin" \
DUACHUOT_BRANCH=main \
bashUnterstützte Variablen: DUACHUOT_REPO_URL, DUACHUOT_INSTALL_DIR, DUACHUOT_BIN_DIR, DUACHUOT_BRANCH. DUACHUOT_SKIP_PIP_UPGRADE=true sollte nur in Testumgebungen oder Offline-Setups mit vorbereitetem Paket-Cache verwendet werden.
2. Manuelle Installation aus einem lokalen Repository
cd botduachuot_mcp
./install.shscripts/install_basic.sh wird aus Kompatibilitätsgründen beibehalten und leitet direkt an das Hauptinstallationsprogramm weiter.
3. Konfiguration und Prüfungen nach der Installation
Stellen Sie sicher, dass ~/.local/bin in Ihrem PATH ist:
export PATH="$HOME/.local/bin:$PATH"Fügen Sie diese Zeile zu ~/.bashrc oder ~/.zshrc hinzu, um sie über Sitzungen hinweg beizubehalten.
Konfigurieren Sie .env, bevor Sie den Dienst freigeben. Die Standardvorlage erfordert Authentifizierung:
REQUIRE_AUTH=true
GATEWAY_TOKEN=<secret-random-token>
HOST_WORKSPACE_DIR=/home/userDann verifizieren:
duachuot version
duachuot config validate
duachuot doctorAusführung über Cloudflare Tunnel
./run_mcp_tunnel.sh
./run_mcp_tunnel.sh --status
./run_mcp_tunnel.sh --url
./run_mcp_tunnel.sh --stopDie Connector-URL sieht wie folgt aus:
https://<random>.trycloudflare.com/mcpStreamable HTTP ist zustandslos konfiguriert und gibt JSON direkt zurück. Jede ChatGPT-Anfrage arbeitet unabhängig: Es ist keine mcp-session-id erforderlich und für reguläre Tool-Aufrufe wird kein SSE-Stream aufrechterhalten.
MCP_JSON_RESPONSE=true
MCP_STATELESS_HTTP=trueREST-API
Die REST-API teilt sich die Host-Dienste mit dem MCP-Server und läuft auf demselben Server/Tunnel. Basispfad:
/api/v1OpenAPI-Dokument:
/api/v1/openapi.jsonHauptendpunkte:
Methode | Endpunkt | Zweck |
|
| Serverstatus |
|
| Tools, Arbeitsbereich und Limits |
|
| Verzeichnis auflisten |
|
| Textdatei lesen |
|
| Datei erstellen oder überschreiben |
|
| Text in Datei ersetzen |
|
| Inhalt an Datei anhängen |
|
| Verzeichnis erstellen |
|
| Text im Arbeitsbereich durchsuchen |
|
| Befehl prüfen |
|
| Befehl auf dem Host ausführen |
|
| Anleitungen und Tool-Inventar lesen |
Wenn REQUIRE_AUTH=true ist, verwenden Sie einen dieser Header:
Authorization: Bearer <GATEWAY_TOKEN>
X-Gateway-Token: <GATEWAY_TOKEN>Beispiel:
BASE_URL="https://<tunnel>.trycloudflare.com"
TOKEN="<GATEWAY_TOKEN>"
curl -H "Authorization: Bearer $TOKEN" \
"$BASE_URL/api/v1/files?path=GitHub"
curl -X PUT \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"path":"Workspace/demo.txt","content":"hello REST\n"}' \
"$BASE_URL/api/v1/files/content"
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"git status --short","cwd":"GitHub/botduachuot_mcp"}' \
"$BASE_URL/api/v1/commands/run"MCP-Tools
health_check
get_capabilities
duachuot_list_directory
duachuot_read_file
duachuot_write_file
duachuot_replace_in_file
duachuot_append_file
duachuot_make_directory
duachuot_search_text
duachuot_check_command
duachuot_run_command
duachuot_knowledgeduachuot_run_command hat keinen Parameter approval="approved". Die Richtlinie wird vollständig serverseitig entschieden.
Ermittlungswerkzeuge (Forensik + OSINT + Geo)
BotDuaChuot fügt 21 spezielle Ermittlungswerkzeuge hinzu, vollständig offline und deterministisch:
# Geo Engine (offline, no network required)
duachuot_geo_extract # EXIF GPS, exiftool/exiv2 cross-check, DOP/HPE, timezone, landmarks
duachuot_geo_scan # scan arbitrary text/logs/SRT/NMEA/MGRS/UTM for coordinates
duachuot_coord_convert # DMS/decimal/UTM/MGRS + datum transform (WGS84/ED50/NAD27)
duachuot_geo_calc # geodesic distance/bearing + uncertainty from DOP/HPE
duachuot_geo_reverse # offline reverse geocoding (landmarks + country resolution)
duachuot_geo_verify # conclude only with >= 2 independent facts; fewer -> BLOCKER
duachuot_geo_landmark_check # radius check around a landmark
duachuot_timezone_at # offline timezone/UTC offset from coordinates
# Probes
duachuot_media_probe # file + exiftool JSON + ffprobe
duachuot_pcap_probe # conversations/endpoints/DNS + GPS hints (NMEA, Wi-Fi probes)
duachuot_disk_probe # fsstat + fls
duachuot_mem_probe # Volatility 3 (info/pslist)
duachuot_stego_probe # binwalk + steghide, WAV LSB detection, LSB/MP3 extraction
duachuot_ocr_probe # tesseract + QR (zxing-cpp)
duachuot_win_probe # SAM/SYSTEM hives, LNK, prefetch (pure-Python, Linux/Windows)
# OPSEC + platform
duachuot_ops_check # blocks telemetry / attack tools / discovery while ctf-live / flags in commands
duachuot_ops_jitter # human-like delay between network queries
duachuot_ops_redact # redact secret/flag before writing logs
duachuot_platform # probe OS/arch/distro/shell + tool availability (native/WSL/missing)
duachuot_plan # generate an investigation plan by artifact type
duachuot_resource_lookup # resolve a managed ctf-tools resource from RESOURCE_MAP.jsonRessourcen-Registry: resources/RESOURCE_MAP.json wird aus dem Host-ctf-tools-Repository von scripts/generate_resource_map.py generiert (Skills, Skripte, Werkzeuge, Notizen). Abfragen geben Pfad + Aufrufvorlage + Verfügbarkeit zurück; fehlende Ressourcen sind BLOCKER, niemals stille Fallbacks.
Vollständige Playbooks: knowledge/GEO_PLAYBOOK.md, knowledge/FORENSICS_PLAYBOOK.md, knowledge/OSINT_PLAYBOOK.md. Gebündelte Skills: skills/ctf-geo, skills/ctf-forensics-plus, skills/ctf-osint-plus, skills/ctf-stego-plus.
OPSEC (während CTF verpflichtend)
Standard
ctf-live: keine Abfragen öffentlicher Quellen (Sherlock/Maigret/whois/dnsrecon/Suchmaschinen), keine automatisierten Angriffswerkzeuge gegen den Zielbereich, keine automatische Flag-Übermittlung — immer über einen Menschen.investigation-Modus (OSINT_MODE=true) öffnet OSINT-Abfragen, begrenzt auf das, was der Bediener angibt.Zwischen Netzwerkabfragen: auf
duachuot_ops_jitter()warten (800–3000 ms).Jede Koordinatenschlussfolgerung benötigt >= 2 unabhängige Fakten (verifiziert über
duachuot_geo_verify).
duachuot_knowledge
duachuot_knowledge(section="overview")
duachuot_knowledge(section="guide")
duachuot_knowledge(section="tools", query="python", include_versions=true)
duachuot_knowledge(section="search", query="docker")Dieses Tool liest die Dokumente in knowledge/ und gleicht TOOL_CATALOG.json mit dem tatsächlichen PATH des Rechners ab.
Tests
./scripts/test.sh
./scripts/quality_gate.sh
./scripts/manual_test_installer.shmanual_test_installer.sh verwendet ein temporäres Repository und HOME in /tmp; es startet, stoppt oder startet nie einen echten Cloudflare-Tunnel neu.
Wichtige Konfiguration
HOST_WORKSPACE_DIR=/home/light
HOST_RESTRICT_TO_WORKSPACE=true
HOST_COMMAND_POLICY=guarded
MAX_TIMEOUT_SECONDS=60
MAX_OUTPUT_BYTES=500000
REQUIRE_AUTH=true
GATEWAY_TOKEN=<secret>guarded ist nur eine Schutzschicht gegen offensichtlich destruktive Operationen, keine Sandbox. Der MCP-Server läuft mit den Rechten des Benutzers, der den Prozess startet.
Siehe auch: docs/ARCHITECTURE.md und SECURITY.md.
duachuot-CLI
Das Repository enthält eine einheitliche CLI zum Bedienen der Brücke/des Tunnels und zum Aufrufen der REST-API, ohne curl manuell schreiben zu müssen.
Installieren Sie den bearbeitbaren Einstiegspunkt:
.venv/bin/python -m pip install -e . --no-depsFühren Sie es auf beide Arten aus:
./bin/duachuot --help
.venv/bin/duachuot --helpLokale Operationsgruppe:
duachuot start
duachuot status
duachuot url
duachuot server restart # restart the bridge only, keep the tunnel URL
duachuot restart --yes # restart the tunnel too, URL may change
duachuot stopREST-API-Gruppe:
duachuot health
duachuot --public health
duachuot capabilities --tools
duachuot fs ls GitHub
duachuot fs cat GitHub/project/README.md --lines 1:40
duachuot fs write GitHub/demo.txt --text "hello"
printf 'next\n' | duachuot fs append GitHub/demo.txt --stdin
duachuot fs search FastMCP --path GitHub/botduachuot_mcp
duachuot cmd check 'git status --short'
duachuot cmd run 'git status --short' --cwd GitHub/botduachuot_mcp
duachuot knowledge tools --query python --versionsUnterstützende Operationsgruppen:
duachuot logs server -n 100
duachuot logs follow server
duachuot config show
duachuot config validate
duachuot doctor
duachuot completion bashJeder Befehl unterstützt --json. Globale Optionen können vor oder nach dem Unterbefehl platziert werden:
duachuot --public health --json
duachuot health --public --jsonStandardmäßig ruft die CLI den lokalen REST-Endpunkt unter http://127.0.0.1:<MCP_PORT> auf. Verwenden Sie --public, um die aktuelle URL aus logs/tunnel_url.txt zu übernehmen, oder --base-url, um auf einen anderen Endpunkt zu zeigen.
Haupt-Ausgangscodes:
0 success
1 operation failed
2 invalid arguments
3 cannot reach the server
4 authentication failed
5 blocked by policy
6 resource not found
7 timeout
8 conflictBei duachuot cmd run gilt: Wenn der Server den Befehl auf Anfrageebene erfolgreich ausgeführt hat, spiegelt der Exit-Code den tatsächlichen Exit-Code des Befehls wider.
Vollständiges Design: docs/CLI_DESIGN_PLAN.md.
Zusätzliche CLI-Dokumentation: docs/CLI_MANUAL_TEST_PLAN.md und docs/CLI_IMPLEMENTATION_REPORT.md.
Betrieb und Wiederherstellung
./scripts/quality_gate.sh
./scripts/quality_gate.sh --runtime
./scripts/quality_gate.sh --fullStrikter Doctor und Konfiguration:
duachuot doctor --local-only
duachuot doctor --strict
duachuot config validate --strictDiagnose mit redigierter sensibler Konfiguration sammeln:
./scripts/collect_diagnostics.shLaufzeitarchitektur und Grenzen: docs/ARCHITECTURE.md und SECURITY.md.
Betrieb und Wiederherstellung
./scripts/quality_gate.sh
./scripts/quality_gate.sh --runtime
./scripts/quality_gate.sh --fullStrikter Doctor und Konfiguration:
duachuot doctor --local-only
duachuot doctor --strict
duachuot config validate --strictDiagnose mit redigierter sensibler Konfiguration sammeln:
./scripts/collect_diagnostics.shInstallation, Neustart mit erhaltenem Tunnel, Wiederherstellung, Rollback und der Release-Checkliste sind in docs/OPERATIONS_RUNBOOK.md beschrieben.
Architektur und Releases
Laufzeitarchitektur und Grenzen:
docs/ARCHITECTURE.mdSicherheitsmodell und Härtung:
SECURITY.mdBetrieb, Wiederherstellung und Rollback:
docs/OPERATIONS_RUNBOOK.mdRelease-Checkliste:
docs/RELEASE_CHECKLIST.md
GitHub Actions führt die Qualitätsprüfung bei Push und Pull Request aus; Dependabot überwacht die Abhängigkeiten von Python und GitHub Actions.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceLocal MCP server bridging ChatGPT Web to local tools for file, shell, git, test, and process management with secure policy controls.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling ChatGPT to interact with local filesystem via controlled file operations like read, write, edit, and search, with configurable guardrails for safety.MIT
- AlicenseNot gradedqualityCmaintenanceLocal MCP server enabling Codex and ChatGPT to read/write files, execute commands, manage processes, use Git, and inspect images on the user's machine with full privileges.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceAn unofficial self-hosted MCP server that enables ChatGPT to run commands on your computer through a secure tunnel, manage processes, and work within a specified project directory.1
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cornhub69-x/botduachuot_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server