95 lines
2.3 KiB
Bash
Executable File
95 lines
2.3 KiB
Bash
Executable File
#!/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 <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 <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."
|