#!/bin/bash set -euo pipefail # Enable DSS MCP for supported AI clients (Claude Code, Codex CLI, Gemini CLI). # # This is safe to run multiple times. # # Usage: # ./scripts/enable-mcp-clients.sh [--force] [--api-url ] [--skip-codex] [--skip-gemini] [--skip-claude] # # Notes: # - Claude Code MCP config is project-local: `.claude/mcp.json` # - Codex/Gemini are configured via their CLI (`codex mcp add`, `gemini mcp add`) DSS_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" MCP_CMD="$DSS_ROOT/scripts/dss-mcp" FORCE=false SKIP_CLAUDE=false SKIP_CODEX=false SKIP_GEMINI=false API_URL="" while [[ $# -gt 0 ]]; do case "$1" in --force) FORCE=true shift ;; --skip-claude) SKIP_CLAUDE=true shift ;; --skip-codex) SKIP_CODEX=true shift ;; --skip-gemini) SKIP_GEMINI=true shift ;; --api-url) API_URL="${2:-}" if [[ -z "$API_URL" ]]; then echo "Error: --api-url requires a value" >&2 exit 1 fi shift 2 ;; *) echo "Unknown argument: $1" >&2 echo "Usage: ./scripts/enable-mcp-clients.sh [--force] [--api-url ] [--skip-codex] [--skip-gemini] [--skip-claude]" >&2 exit 1 ;; esac done echo "[dss] Enabling MCP clients in: $DSS_ROOT" if [[ "$SKIP_CLAUDE" != "true" ]]; then echo "[dss] Claude Code: generating .claude/mcp.json" if [[ -n "$API_URL" ]]; then "$DSS_ROOT/scripts/setup-mcp.sh" --api-url "$API_URL" else "$DSS_ROOT/scripts/setup-mcp.sh" fi fi if [[ "$SKIP_CODEX" != "true" ]]; then if command -v codex >/dev/null 2>&1; then echo "[dss] Codex CLI: configuring MCP server 'dss'" if $FORCE; then codex mcp remove dss >/dev/null 2>&1 || true fi codex mcp get dss >/dev/null 2>&1 || codex mcp add dss -- "$MCP_CMD" else echo "[dss] Codex CLI: not found (skip)" >&2 fi fi if [[ "$SKIP_GEMINI" != "true" ]]; then if command -v gemini >/dev/null 2>&1; then echo "[dss] Gemini CLI: configuring MCP server 'dss'" if $FORCE; then gemini mcp remove dss >/dev/null 2>&1 || true fi gemini mcp list 2>/dev/null | grep -qE '^dss\\b' || gemini mcp add dss "$MCP_CMD" else echo "[dss] Gemini CLI: not found (skip)" >&2 fi fi echo "[dss] Done." echo "[dss] Restart Claude Code/Codex/Gemini sessions to load the updated MCP toolset."