|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | 3 | # melio-mcp-install.sh - Universal MCP server installer and runner |
4 | | -# Usage: melio-mcp-install.sh <repo_url> <setup_command> <run_command> |
5 | | -# Example: melio-mcp-install.sh "https://github.com/melio/Figma-Context-MCP.git" "npm install && npm run build" "node dist/cli.js" |
| 4 | +# Usage: Set environment variables and run the script: |
| 5 | +# export MCP_REPO_URL="https://github.com/user/repo.git" |
| 6 | +# export MCP_SETUP_COMMAND="npm install && npm run build" |
| 7 | +# export MCP_RUN_COMMAND="node dist/cli.js --stdio" |
| 8 | +# ./melio-mcp-install.sh |
6 | 9 |
|
7 | 10 | set -e # Exit on any error |
8 | 11 |
|
9 | | -REPO_URL="$1" |
10 | | -SETUP_COMMAND="$2" |
11 | | -RUN_COMMAND="$3" |
| 12 | +# Check for required environment variables |
| 13 | +if [ -z "$MCP_REPO_URL" ] || [ -z "$MCP_SETUP_COMMAND" ] || [ -z "$MCP_RUN_COMMAND" ]; then |
| 14 | + echo "Error: Missing required environment variables:" >&2 |
| 15 | + echo " MCP_REPO_URL: $MCP_REPO_URL" >&2 |
| 16 | + echo " MCP_SETUP_COMMAND: $MCP_SETUP_COMMAND" >&2 |
| 17 | + echo " MCP_RUN_COMMAND: $MCP_RUN_COMMAND" >&2 |
| 18 | + echo "" >&2 |
| 19 | + echo "Usage:" >&2 |
| 20 | + echo " export MCP_REPO_URL=\"https://github.com/user/repo.git\"" >&2 |
| 21 | + echo " export MCP_SETUP_COMMAND=\"npm install && npm run build\"" >&2 |
| 22 | + echo " export MCP_RUN_COMMAND=\"node dist/cli.js --stdio\"" >&2 |
| 23 | + echo " $0" >&2 |
| 24 | + exit 1 |
| 25 | +fi |
| 26 | + |
| 27 | +REPO_URL="$MCP_REPO_URL" |
| 28 | +SETUP_COMMAND="$MCP_SETUP_COMMAND" |
| 29 | +RUN_COMMAND="$MCP_RUN_COMMAND" |
12 | 30 |
|
13 | 31 | #echo "\n🔧 Setting up MCP server from repository: $REPO_URL\n" |
14 | 32 | #echo "📦 Setup command: $SETUP_COMMAND" |
15 | 33 | #echo "🚀 Run command: $RUN_COMMAND\n" |
16 | 34 |
|
17 | | -if [ $# -ne 3 ]; then |
18 | | - # Redirect error to stderr, not stdout (to avoid breaking MCP JSON protocol) |
19 | | - echo "Error: Invalid arguments. Usage: $0 <repo_url> <setup_command> <run_command>" >&2 |
20 | | - exit 1 |
21 | | -fi |
22 | | - |
23 | 35 | # Extract repo name from URL (last part without .git) |
24 | 36 | REPO_NAME=$(basename "$REPO_URL" .git) |
25 | 37 | TARGET_DIR="$HOME/.meliomcp/$REPO_NAME" |
|
0 commit comments