Skip to main content
Glama
manage-services.sh8.57 kB
#!/bin/bash # note-mcp-server + Cloudflare Tunnel 管理スクリプト SCRIPT_NAME="note-mcp-manager" LOG_DIR="$HOME/noteMCP/logs" # 色定義 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # ヘルプ表示 show_help() { echo -e "${BLUE}$SCRIPT_NAME - note-mcp-server & Cloudflare Tunnel 管理ツール${NC}" echo "" echo "使い方: $0 [コマンド]" echo "" echo "コマンド:" echo " setup - 自動起動設定(LaunchAgent)をセットアップ" echo " status - サービスの状況を表示" echo " start - 両方のサービスを起動" echo " stop - 両方のサービスを停止" echo " restart - 両方のサービスを再起動" echo " logs - ログを表示" echo " health - ヘルスチェックを実行" echo " test - n8n接続テスト用URLを表示" echo "" echo "例:" echo " $0 setup # 自動起動設定" echo " $0 status # 状況確認" echo " $0 logs # ログ確認" echo " $0 test # n8n設定用URL表示" } # 自動起動設定 setup_services() { echo -e "${YELLOW}自動起動設定をセットアップ中...${NC}" # LaunchAgentディレクトリ確認 LAUNCH_AGENTS_DIR="$HOME/Library/LaunchAgents" mkdir -p "$LAUNCH_AGENTS_DIR" # note-mcp-server LaunchAgent cat > "$LAUNCH_AGENTS_DIR/com.note-mcp-server.plist" << 'EOF' <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.note-mcp-server</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/node</string> <string>/Users/***EMAIL_REMOVED***/noteMCP/build/note-mcp-server-http.js</string> </array> <key>WorkingDirectory</key> <string>/Users/***EMAIL_REMOVED***/noteMCP</string> <key>StandardOutPath</key> <string>/Users/***EMAIL_REMOVED***/noteMCP/logs/note-mcp-server.log</string> <key>StandardErrorPath</key> <string>/Users/***EMAIL_REMOVED***/noteMCP/logs/note-mcp-server-error.log</string> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/local/bin:/usr/bin:/bin</string> </dict> </dict> </plist> EOF # Cloudflare Tunnel LaunchAgent cat > "$LAUNCH_AGENTS_DIR/com.cloudflared.note-mcp.plist" << 'EOF' <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.cloudflared.note-mcp</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/cloudflared</string> <string>tunnel</string> <string>--url</string> <string>http://localhost:3000</string> <string>--config</string> <string>/Users/***EMAIL_REMOVED***/.cloudflared/config.yml</string> </array> <key>WorkingDirectory</key> <string>/Users/***EMAIL_REMOVED***/noteMCP</string> <key>StandardOutPath</key> <string>/Users/***EMAIL_REMOVED***/noteMCP/logs/cloudflared.log</string> <key>StandardErrorPath</key> <string>/Users/***EMAIL_REMOVED***/noteMCP/logs/cloudflared-error.log</string> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/local/bin:/usr/bin:/bin</string> </dict> </dict> </plist> EOF # ログディレクトリ作成 mkdir -p /Users/***EMAIL_REMOVED***/noteMCP/logs # LaunchAgentをロード launchctl load "$LAUNCH_AGENTS_DIR/com.note-mcp-server.plist" launchctl load "$LAUNCH_AGENTS_DIR/com.cloudflared.note-mcp.plist" echo -e "${GREEN}自動起動設定完了!${NC}" echo "" echo -e "${BLUE}設定されたLaunchAgent:${NC}" echo " - com.note-mcp-server.plist" echo " - com.cloudflared.note-mcp.plist" echo "" echo -e "${BLUE}ログディレクトリ:${NC}" echo " - ~/noteMCP/logs/" echo "" echo -e "${YELLOW}次のコマンドでサービスを起動できます:${NC}" echo " $0 start" } # サービス状態確認 show_status() { echo -e "${BLUE}=== サービス状態 ===${NC}" # note-mcp-server if launchctl list | grep -q "com.note-mcp-server"; then echo -e "note-mcp-server: ${GREEN}起動中${NC}" else echo -e "note-mcp-server: ${RED}停止中${NC}" fi # Cloudflare Tunnel if launchctl list | grep -q "com.cloudflared.note-mcp"; then echo -e "Cloudflare Tunnel: ${GREEN}起動中${NC}" else echo -e "Cloudflare Tunnel: ${RED}停止中${NC}" fi # ポート確認 echo "" echo -e "${BLUE}=== ポート状態 ===${NC}" if lsof -ti:3000 > /dev/null 2>&1; then echo -e "Port 3000: ${GREEN}使用中${NC}" else echo -e "Port 3000: ${RED}未使用${NC}" fi } # サービス起動 start_services() { echo -e "${YELLOW}サービスを起動中...${NC}" launchctl start com.note-mcp-server launchctl start com.cloudflared.note-mcp echo -e "${GREEN}起動完了!${NC}" sleep 3 show_status } # サービス停止 stop_services() { echo -e "${YELLOW}サービスを停止中...${NC}" launchctl stop com.note-mcp-server launchctl stop com.cloudflared.note-mcp # ポート3000のプロセスを強制終了 local pid=$(lsof -ti:3000 2>/dev/null) if [ ! -z "$pid" ]; then kill $pid 2>/dev/null echo -e "${YELLOW}ポート3000のプロセスを終了しました${NC}" fi echo -e "${GREEN}停止完了!${NC}" sleep 2 show_status } # サービス再起動 restart_services() { echo -e "${YELLOW}サービスを再起動中...${NC}" stop_services sleep 2 start_services } # ログ表示 show_logs() { echo -e "${BLUE}=== note-mcp-server ログ ===${NC}" if [ -f "$LOG_DIR/stderr.log" ]; then tail -20 "$LOG_DIR/stderr.log" else echo -e "${YELLOW}ログファイルがありません${NC}" fi echo "" echo -e "${BLUE}=== Cloudflare Tunnel ログ ===${NC}" if [ -f "$LOG_DIR/cloudflared-stderr.log" ]; then tail -20 "$LOG_DIR/cloudflared-stderr.log" else echo -e "${YELLOW}ログファイルがありません${NC}" fi } # ヘルスチェック health_check() { echo -e "${BLUE}=== ヘルスチェック ===${NC}" # ローカルチェック echo -e "${YELLOW}ローカルチェック:${NC}" if curl -s http://localhost:3000/health > /dev/null 2>&1; then echo -e " localhost:3000 - ${GREEN}OK${NC}" else echo -e " localhost:3000 - ${RED}NG${NC}" fi # リモートチェック echo -e "${YELLOW}リモートチェック:${NC}" if curl -s https://note-mcp.composition2940.com/health > /dev/null 2>&1; then echo -e " note-mcp.composition2940.com - ${GREEN}OK${NC}" else echo -e " note-mcp.composition2940.com - ${RED}NG${NC}" fi # 詳細情報 echo "" echo -e "${BLUE}=== 詳細情報 ===${NC}" curl -s https://note-mcp.composition2940.com/health | jq . } # n8n接続テスト show_test_info() { echo -e "${BLUE}=== n8n接続設定情報 ===${NC}" echo "" echo -e "${GREEN}HTTP Stream URL:${NC}" echo " https://note-mcp.composition2940.com/mcp" echo "" echo -e "${GREEN}または:${NC}" echo " https://note-mcp.composition2940.com/sse" echo "" echo -e "${GREEN}HTTP Connection Timeout:${NC}" echo " 60000" echo "" echo -e "${GREEN}Messages Post Endpoint:${NC}" echo " (空欄)" echo "" echo -e "${GREEN}Additional Headers:${NC}" echo " (空欄)" echo "" echo -e "${YELLOW}コピー用:${NC}" echo -e "${BLUE}https://note-mcp.composition2940.com/mcp${NC}" } # メイン処理 case "$1" in setup) setup_services ;; status) show_status ;; start) start_services ;; stop) stop_services ;; restart) restart_services ;; logs) show_logs ;; health) health_check ;; test) show_test_info ;; *) show_help ;; esac

Latest Blog Posts

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/shimayuz/note-com-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server