#!/usr/bin/env python3
"""
Setup script for MCP testing
Ensures the environment is properly configured for MCP testing.
"""
import os
import sys
from pathlib import Path
def setup_test_environment():
"""Setup test environment for MCP validation"""
print("๐ง Setting up MCP test environment...")
# Create .env file for testing
env_content = """# MCP Test Configuration
ODOO_URL=https://demo.odoo.com
ODOO_DB=demo
ODOO_USERNAME=admin
ODOO_PASSWORD=admin
ODOO_TIMEOUT=30
ODOO_VERIFY_SSL=false
ODOO_AUTH_METHOD=password
# Server settings
ODOO_TRANSPORT_MODE=stdio
ODOO_LOG_LEVEL=INFO
# Security settings (relaxed for testing)
ODOO_SECURITY__MAX_RECORDS_PER_REQUEST=100
ODOO_SECURITY__ENABLE_ADMIN_TOOLS=false
ODOO_SECURITY__SANITIZE_ERRORS=true
# Performance settings
ODOO_PERFORMANCE__CONNECTION_TIMEOUT=30
ODOO_PERFORMANCE__REQUEST_TIMEOUT=60
ODOO_PERFORMANCE__CACHE_TTL=300
"""
env_file = Path("/Users/ramizmohamed/Desktop/mcp-odoo/.env.test")
with open(env_file, "w") as f:
f.write(env_content)
print(f"โ
Created test environment file: {env_file}")
# Check if package is installed in development mode
try:
import odoo_mcp
print("โ
odoo_mcp package is available")
except ImportError:
print("โ ๏ธ odoo_mcp package not found - installing in development mode...")
import subprocess
result = subprocess.run([
sys.executable, "-m", "pip", "install", "-e", "."
], cwd="/Users/ramizmohamed/Desktop/mcp-odoo")
if result.returncode == 0:
print("โ
Package installed successfully")
else:
print("โ Failed to install package")
return False
# Verify MCP dependencies
required_packages = ["mcp", "fastmcp", "pydantic", "pydantic-settings"]
missing_packages = []
for package in required_packages:
try:
__import__(package)
print(f"โ
{package} is available")
except ImportError:
missing_packages.append(package)
print(f"โ {package} is missing")
if missing_packages:
print(f"โ ๏ธ Installing missing packages: {missing_packages}")
import subprocess
result = subprocess.run([
sys.executable, "-m", "pip", "install"
] + missing_packages)
if result.returncode != 0:
print("โ Failed to install missing packages")
return False
print("โ
All dependencies are available")
return True
def verify_mcp_structure():
"""Verify MCP server structure"""
print("\n๐ Verifying MCP server structure...")
base_path = Path("/Users/ramizmohamed/Desktop/mcp-odoo")
required_files = [
"src/odoo_mcp/__init__.py",
"src/odoo_mcp/__main__.py",
"src/odoo_mcp/server.py",
"src/odoo_mcp/odoo_client.py",
"src/odoo_mcp/config.py",
"src/odoo_mcp/exceptions.py",
"pyproject.toml"
]
all_present = True
for file_path in required_files:
full_path = base_path / file_path
if full_path.exists():
print(f"โ
{file_path}")
else:
print(f"โ {file_path}")
all_present = False
if all_present:
print("โ
All required files are present")
else:
print("โ Some required files are missing")
return all_present
def test_basic_import():
"""Test basic import of MCP server"""
print("\n๐งช Testing basic imports...")
try:
# Test server import
sys.path.insert(0, "/Users/ramizmohamed/Desktop/mcp-odoo/src")
from odoo_mcp.server import mcp
print("โ
Server import successful")
# Check if it's a FastMCP instance
from mcp.server.fastmcp import FastMCP
if isinstance(mcp, FastMCP):
print("โ
Server is FastMCP instance")
else:
print(f"โ Server is not FastMCP instance: {type(mcp)}")
return False
# Test config import
from odoo_mcp.config import OdooConfig
print("โ
Config import successful")
# Test exceptions import
from odoo_mcp.exceptions import OdooMCPError
print("โ
Exceptions import successful")
return True
except Exception as e:
print(f"โ Import failed: {e}")
import traceback
traceback.print_exc()
return False
def main():
"""Main setup function"""
print("๐ MCP Test Environment Setup")
print("=" * 50)
success = True
# Setup test environment
if not setup_test_environment():
success = False
# Verify structure
if not verify_mcp_structure():
success = False
# Test imports
if not test_basic_import():
success = False
print("\n" + "=" * 50)
if success:
print("๐ MCP test environment setup completed successfully!")
print("\nNext steps:")
print("1. Run: python3 validate_mcp.py")
print("2. Run: python3 test_mcp_client.py")
return 0
else:
print("โ MCP test environment setup failed!")
print("Please fix the issues above before running tests.")
return 1
if __name__ == "__main__":
sys.exit(main())