Skip to main content
Glama

Redmine MCP Server

by snowild
installation.py5.09 kB
#!/usr/bin/env python3 """ 測試安裝的 redmine-mcp 套件 """ import subprocess import sys import os import json from pathlib import Path def test_package_import(): """測試套件導入""" print("📦 測試套件導入...") try: import redmine_mcp from redmine_mcp.server import mcp from redmine_mcp.config import get_config from redmine_mcp.redmine_client import get_client print("✅ 套件導入成功") return True except ImportError as e: print(f"❌ 套件導入失敗: {e}") return False def test_command_availability(): """測試命令是否可用""" print("\n🔧 測試命令可用性...") # 檢查 uv tool 安裝的命令 uv_bin_path = Path.home() / ".local" / "bin" / "redmine-mcp" if uv_bin_path.exists(): print(f"✅ 找到 uv tool 安裝的命令: {uv_bin_path}") return True # 檢查系統 PATH 中的命令 try: result = subprocess.run(["which", "redmine-mcp"], capture_output=True, text=True, timeout=5) if result.returncode == 0: print(f"✅ 找到系統 PATH 中的命令: {result.stdout.strip()}") return True except subprocess.TimeoutExpired: pass except FileNotFoundError: pass print("❌ 未找到 redmine-mcp 命令") return False def test_mcp_server_startup(): """測試 MCP 服務器啟動""" print("\n🚀 測試 MCP 服務器啟動...") # 使用本地模組測試 try: # 設定測試環境變數 os.environ["REDMINE_DOMAIN"] = "https://test.example.com" os.environ["REDMINE_API_KEY"] = "test_key_12345" # 導入並測試服務器 from redmine_mcp.server import mcp # 檢查 MCP 實例是否正確建立 if mcp: print("✅ MCP 服務器實例建立成功") # 簡單檢查 - 確認可以導入工具函數 try: from redmine_mcp.server import server_info, health_check, get_issue print("✅ 核心工具函數可以正常導入") return True except ImportError as ie: print(f"⚠️ 工具函數導入失敗: {ie}") print("✅ MCP 服務器實例建立成功(但工具導入有問題)") return True except Exception as e: print(f"❌ MCP 服務器啟動失敗: {e}") import traceback traceback.print_exc() return False def test_config_loading(): """測試配置載入""" print("\n⚙️ 測試配置載入...") try: # 設定測試環境變數 os.environ["REDMINE_DOMAIN"] = "https://test.example.com" os.environ["REDMINE_API_KEY"] = "test_key_12345" os.environ["DEBUG_MODE"] = "true" from redmine_mcp.config import get_config config = get_config() print(f"✅ 配置載入成功") print(f" - Domain: {config.redmine_domain}") print(f" - API Key: {config.redmine_api_key[:10]}...") print(f" - Debug: {config.debug_mode}") print(f" - Timeout: {config.redmine_timeout}") return True except Exception as e: print(f"❌ 配置載入失敗: {e}") return False def test_package_info(): """測試套件資訊""" print("\n📋 測試套件資訊...") try: import redmine_mcp # 檢查版本 if hasattr(redmine_mcp, '__version__'): print(f"✅ 套件版本: {redmine_mcp.__version__}") else: print("⚠️ 套件版本資訊不可用") # 檢查模組 modules = ['server', 'config', 'redmine_client', 'validators'] for module in modules: try: __import__(f'redmine_mcp.{module}') print(f"✅ 模組 {module} 可用") except ImportError: print(f"❌ 模組 {module} 不可用") return True except Exception as e: print(f"❌ 套件資訊檢查失敗: {e}") return False def main(): """主要測試流程""" print("🧪 Redmine MCP 安裝測試") print("=" * 50) tests = [ test_package_import, test_command_availability, test_config_loading, test_mcp_server_startup, test_package_info, ] passed = 0 total = len(tests) for test in tests: if test(): passed += 1 print(f"\n📊 測試結果摘要") print("=" * 50) print(f"總測試數: {total}") print(f"通過: {passed}") print(f"失敗: {total - passed}") print(f"成功率: {(passed/total)*100:.1f}%") if passed == total: print("\n🎉 所有測試通過!套件安裝成功") return 0 else: print(f"\n⚠️ 有 {total - passed} 個測試失敗") return 1 if __name__ == "__main__": sys.exit(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/snowild/redmine-mcp'

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