Skip to main content
Glama

n8n MCP Server

init_project.py6.33 kB
#!/usr/bin/env python3 """ Скрипт инициализации проекта n8n MCP-сервера. Project initialization script for n8n MCP server. """ import os import subprocess import sys from pathlib import Path def run_command(cmd: str, cwd: str = None) -> bool: """Выполнение команды в shell.""" try: print(f"🔧 Выполнение: {cmd}") result = subprocess.run( cmd, shell=True, cwd=cwd, capture_output=True, text=True, encoding='utf-8' ) if result.stdout: print(result.stdout) if result.stderr: print(f"⚠️ Предупреждение: {result.stderr}") return result.returncode == 0 except Exception as e: print(f"❌ Ошибка выполнения команды: {e}") return False def check_requirements(): """Проверка системных требований.""" print("🔍 Проверка системных требований...") # Проверка Python версии python_version = sys.version_info if python_version < (3, 9): print(f"❌ Требуется Python 3.9+, установлен: {python_version.major}.{python_version.minor}") return False print(f"✅ Python {python_version.major}.{python_version.minor}.{python_version.micro}") # Проверка git if not run_command("git --version"): print("❌ Git не установлен") return False print("✅ Все системные требования выполнены") return True def init_git_repository(): """Инициализация git репозитория.""" print("\n🔧 Инициализация git репозитория...") if not os.path.exists(".git"): if not run_command("git init"): return False # Создание .gitignore gitignore_content = """__pycache__/ *.pyc *.pyo *.pyd .Python env/ venv/ .venv/ .env .env.local .env.*.local dist/ build/ *.egg-info/ .pytest_cache/ .coverage htmlcov/ .tox/ .nox/ """ with open(".gitignore", "w", encoding="utf-8") as f: f.write(gitignore_content) print("✅ Создан .gitignore") else: print("✅ Git репозиторий уже инициализирован") return True def setup_virtual_environment(): """Настройка виртуального окружения.""" print("\n🔧 Настройка виртуального окружения...") venv_name = "venv" if not os.path.exists(venv_name): if not run_command(f"python -m venv {venv_name}"): return False print(f"✅ Создано виртуальное окружение: {venv_name}") else: print(f"✅ Виртуальное окружение уже существует: {venv_name}") print("✅ Установлены зависимости") return True def create_env_file(): """Создание файла .env из примера.""" print("\n🔧 Настройка конфигурации...") if not os.path.exists(".env"): if os.path.exists(".env.example"): with open(".env.example", "r", encoding="utf-8") as src: with open(".env", "w", encoding="utf-8") as dst: dst.write(src.read()) print("✅ Создан .env файл из .env.example") print("⚠️ Отредактируйте .env файл с вашими настройками n8n") else: print("⚠️ .env.example не найден") else: print("✅ .env файл уже существует") return True def test_connection(): """Тестирование подключения к n8n.""" print("\n🔧 Тестирование подключения к n8n...") try: from test_connection import main as test_main exit_code = test_main() return exit_code == 0 except ImportError as e: print(f"⚠️ Не удалось импортировать тесты: {e}") print("⚠️ Пропускаем тестирование подключения") return True def main(): """Основная функция инициализации.""" print("🚀 Инициализация проекта n8n MCP-сервера") print("=" * 60) # Проверка требований if not check_requirements(): print("❌ Инициализация прервана из-за ошибок") return 1 # Инициализация git if not init_git_repository(): print("❌ Ошибка инициализации git") return 1 # Настройка виртуального окружения if not setup_virtual_environment(): print("❌ Ошибка настройки виртуального окружения") return 1 # Создание .env файла if not create_env_file(): print("❌ Ошибка создания конфигурации") return 1 # Тестирование подключения if not test_connection(): print("⚠️ Тестирование подключения прошло с ошибками") print("⚠️ Проверьте настройки n8n в .env файле") print("\n" + "=" * 60) print("🎉 Проект успешно инициализирован!") print("\n📋 Следующие шаги:") print("1. Отредактируйте .env файл с вашими настройками n8n") print("2. Активируйте виртуальное окружение:") print(" Windows: venv\\Scripts\\activate") print(" Linux/Mac: source venv/bin/activate") print("3. Запустите сервер:") print(" python -m n8n_mcp_server.server stdio") print("4. Или протестируйте:") print(" python test_connection.py") print("\n📖 Подробнее в README.md") return 0 if __name__ == "__main__": exit_code = main() sys.exit(exit_code)

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/Ospray-creator/n8n-mcp-server'

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