#!/bin/bash
# MCP Test Client - Shell wrapper script
# This script provides a convenient way to test the MCP GitHub Project Manager
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
# Script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
# Default values
MCP_SERVER_PATH="${MCP_SERVER_PATH:-$PROJECT_ROOT/build/index.js}"
# Function to print colored output
print_color() {
local color=$1
local message=$2
echo -e "${color}${message}${NC}"
}
# Function to check if the project is built
check_build() {
if [ ! -f "$MCP_SERVER_PATH" ]; then
print_color $RED "โ MCP server not found at: $MCP_SERVER_PATH"
print_color $YELLOW "Please build the project first:"
print_color $BLUE " npm run build"
exit 1
fi
}
# Function to check environment variables
check_env() {
local missing_vars=()
if [ -z "$GITHUB_TOKEN" ]; then
missing_vars+=("GITHUB_TOKEN")
fi
if [ -z "$GITHUB_OWNER" ]; then
missing_vars+=("GITHUB_OWNER")
fi
if [ -z "$GITHUB_REPO" ]; then
missing_vars+=("GITHUB_REPO")
fi
if [ ${#missing_vars[@]} -gt 0 ]; then
print_color $RED "โ Missing required environment variables:"
for var in "${missing_vars[@]}"; do
print_color $RED " - $var"
done
print_color $YELLOW "\nPlease set them before running the test client:"
print_color $BLUE " export GITHUB_TOKEN=ghp_xxxxxxxxxxxx"
print_color $BLUE " export GITHUB_OWNER=myusername"
print_color $BLUE " export GITHUB_REPO=myrepo"
print_color $YELLOW "\nOr create a .env file in the project root with:"
print_color $BLUE " GITHUB_TOKEN=ghp_xxxxxxxxxxxx"
print_color $BLUE " GITHUB_OWNER=myusername"
print_color $BLUE " GITHUB_REPO=myrepo"
exit 1
fi
}
# Function to load .env file if it exists
load_env() {
local env_file="$PROJECT_ROOT/.env"
if [ -f "$env_file" ]; then
print_color $CYAN "๐ Loading environment variables from .env file..."
export $(grep -v '^#' "$env_file" | xargs)
fi
}
# Function to show help
show_help() {
print_color $CYAN "MCP Test Client - Shell Wrapper"
print_color $CYAN "================================"
echo
echo "Usage: $0 <command> [options]"
echo
print_color $GREEN "Commands:"
echo " list-tools List all available tools"
echo " test-tool <name> Test a specific tool"
echo " test-all Test all tools with sample data"
echo " interactive Enter interactive mode"
echo " build Build the project before testing"
echo " help Show this help message"
echo
print_color $GREEN "Quick Start:"
echo " # Build the project"
echo " $0 build"
echo
echo " # List all tools"
echo " $0 list-tools"
echo
echo " # Test all tools"
echo " $0 test-all"
echo
echo " # Interactive mode"
echo " $0 interactive"
echo
print_color $GREEN "Environment Variables:"
echo " GITHUB_TOKEN GitHub personal access token (required)"
echo " GITHUB_OWNER GitHub repository owner (required)"
echo " GITHUB_REPO GitHub repository name (required)"
echo " MCP_SERVER_PATH Path to MCP server (optional)"
}
# Main script logic
main() {
local command="${1:-help}"
case "$command" in
"help"|"--help"|"-h")
show_help
;;
"build")
print_color $CYAN "๐จ Building the project..."
cd "$PROJECT_ROOT"
npm run build
print_color $GREEN "โ Build completed successfully"
;;
"list-tools"|"test-tool"|"test-all"|"interactive")
# Load environment variables
load_env
# Check if project is built
check_build
# Check environment variables
check_env
# Run the Node.js test client
print_color $CYAN "๐ Starting MCP test client..."
cd "$PROJECT_ROOT"
node scripts/mcp-test-client.js "$@"
;;
*)
print_color $RED "โ Unknown command: $command"
echo
show_help
exit 1
;;
esac
}
# Run main function with all arguments
main "$@"
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HarshKumarSharma/MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server