#!/bin/sh # kg — ajoute le serveur MCP des graphes aux clients trouvés sur ce poste. # # curl -fsSL https://contaixt.ai/setup | sh # # Il vérifie que le serveur répond, puis configure Claude Code, Cursor et VS Code # s'ils sont installés. Il n'installe rien et n'écrit que la configuration MCP de # ces clients. macOS et Linux ; sous Windows, suivre la page d'accueil. set -eu URL="https://contaixt.ai/mcp" code=$(curl -s -o /dev/null -w '%{http_code}' -m 20 -X POST "$URL" \ -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' || true) if [ "$code" != 200 ]; then echo "Le serveur ne répond pas (HTTP $code). Rien n'a été modifié." >&2 exit 1 fi echo "Serveur joignable : $URL" faits=0 if command -v claude >/dev/null 2>&1; then claude mcp remove kg --scope user >/dev/null 2>&1 || true # l'ancien nom du serveur, jusqu'au 03.10.2026 claude mcp remove veille --scope user >/dev/null 2>&1 || true # le nom du serveur jusqu'au 13.10.2026 claude mcp remove contaixt --scope user >/dev/null 2>&1 || true if claude mcp add --scope user --transport http contaixt "$URL" >/dev/null 2>&1; then echo " Claude Code : serveur « contaixt » ajouté (portée utilisateur)"; faits=$((faits + 1)) else echo " Claude Code : l'ajout a échoué, voir https://contaixt.ai/#installer" fi fi if [ -d "$HOME/.cursor" ]; then if command -v python3 >/dev/null 2>&1; then if KG_URL="$URL" python3 - "$HOME/.cursor/mcp.json" <<'PY' import json, os, sys chemin = sys.argv[1] try: conf = json.load(open(chemin, encoding="utf-8")) if os.path.exists(chemin) else {} if not isinstance(conf, dict): raise ValueError except ValueError: sys.exit(1) # fichier illisible : on n'y touche pas for ancien in ("kg", "veille"): # les anciens noms du serveur conf.setdefault("mcpServers", {}).pop(ancien, None) conf["mcpServers"]["contaixt"] = {"url": os.environ["KG_URL"]} tmp = chemin + ".kg-tmp" with open(tmp, "w", encoding="utf-8") as f: json.dump(conf, f, indent=2); f.write("\n") os.chmod(tmp, 0o600) os.replace(tmp, chemin) PY then echo " Cursor : serveur « contaixt » ajouté à ~/.cursor/mcp.json"; faits=$((faits + 1)) else echo " Cursor : ~/.cursor/mcp.json est illisible, non modifié — voir https://contaixt.ai/#installer" fi else echo " Cursor : python3 absent, configuration à la main — voir https://contaixt.ai/#installer" fi fi if command -v code >/dev/null 2>&1; then if code --add-mcp "{\"name\":\"contaixt\",\"type\":\"http\",\"url\":\"$URL\"}" >/dev/null 2>&1; then echo " VS Code : serveur « contaixt » ajouté"; faits=$((faits + 1)) else echo " VS Code : l'ajout a échoué, voir https://contaixt.ai/#installer" fi fi if [ "$faits" -eq 0 ]; then echo "Aucun client MCP configuré sur ce poste. Configuration à la main : https://contaixt.ai/#installer" exit 1 fi echo "Terminé. Dans une nouvelle session, posez votre question : l'assistant consulte contaixt quand elle s'y prête."