···
3
+
# Script to configure OCaml LSP MCP server for Claude in a subdirectory
7
+
# Check if a directory argument was provided
8
+
if [ "$#" -ne 1 ]; then
9
+
echo "Usage: $0 <workspace-directory>"
10
+
echo "Example: $0 /path/to/ocaml/project"
16
+
# Convert to absolute path if relative
17
+
if [[ "$WORKSPACE_DIR" != /* ]]; then
18
+
WORKSPACE_DIR="$(cd "$WORKSPACE_DIR" && pwd)"
21
+
# Check if workspace directory exists
22
+
if [ ! -d "$WORKSPACE_DIR" ]; then
23
+
echo "Error: Directory '$WORKSPACE_DIR' does not exist"
27
+
# Find ocamllsp dynamically
30
+
# Try using which command directly
31
+
OCAMLLSP=$(which ocamllsp 2>/dev/null || true)
33
+
# If not found, try with opam exec
34
+
if [ -z "$OCAMLLSP" ]; then
35
+
OCAMLLSP=$(opam exec -- which ocamllsp 2>/dev/null || true)
38
+
# If still not found, check current opam switch
39
+
if [ -z "$OCAMLLSP" ] && [ -n "$OPAM_SWITCH_PREFIX" ]; then
40
+
if [ -f "$OPAM_SWITCH_PREFIX/bin/ocamllsp" ]; then
41
+
OCAMLLSP="$OPAM_SWITCH_PREFIX/bin/ocamllsp"
45
+
if [ -z "$OCAMLLSP" ] || [ ! -f "$OCAMLLSP" ]; then
46
+
echo "Error: Could not find ocamllsp"
47
+
echo "Please ensure ocamllsp is installed: opam install ocaml-lsp-server"
51
+
# Find mcp-language-server
52
+
MCP_SERVER="/Users/avsm/go/bin/mcp-language-server"
53
+
if [ ! -f "$MCP_SERVER" ]; then
54
+
echo "Error: mcp-language-server not found at $MCP_SERVER"
55
+
echo "Please ensure mcp-language-server is installed"
59
+
echo "Configuring OCaml LSP MCP for workspace: $WORKSPACE_DIR"
60
+
echo "Using ocamllsp: $OCAMLLSP"
61
+
echo "Using mcp-language-server: $MCP_SERVER"
63
+
# Execute the Claude MCP configuration command
64
+
claude mcp add ocamllsp "$MCP_SERVER" -- -workspace "$WORKSPACE_DIR" -lsp "$OCAMLLSP"
66
+
if [ $? -eq 0 ]; then
67
+
echo "Successfully configured OCaml LSP MCP for $WORKSPACE_DIR"
69
+
echo "Failed to configure OCaml LSP MCP"