setup_for_kiro.py•5.94 kB
#!/usr/bin/env python3
"""Setup script to configure the File System MCP Server for Kiro."""
import json
import sys
import os
from pathlib import Path
# Add src to Python path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))
from file_system_mcp_server.cli_utils import create_example_config, validate_config
def setup_for_kiro():
"""Set up the MCP server for Kiro integration."""
print("🚀 Setting up File System MCP Server for Kiro")
print("=" * 50)
current_dir = Path.cwd()
# Step 1: Create configuration
config_path = current_dir / "fs-mcp-config.json"
print(f"\n📝 Step 1: Creating configuration at {config_path}")
try:
create_example_config(str(config_path))
print("✅ Configuration created successfully")
except Exception as e:
print(f"❌ Failed to create config: {e}")
return False
# Step 2: Validate configuration
print(f"\n🔍 Step 2: Validating configuration")
try:
is_valid = validate_config(str(config_path))
if is_valid:
print("✅ Configuration is valid")
else:
print("⚠️ Configuration has issues but will work")
except Exception as e:
print(f"❌ Configuration validation failed: {e}")
return False
# Step 3: Create Kiro MCP configuration
kiro_config_path = current_dir / "kiro-mcp-config.json"
print(f"\n⚙️ Step 3: Creating Kiro MCP configuration at {kiro_config_path}")
kiro_config = {
"mcpServers": {
"file-system-operations": {
"command": "python3",
"args": [
"-m", "file_system_mcp_server.main",
"--config", str(config_path)
],
"cwd": str(current_dir),
"env": {
"PYTHONPATH": str(current_dir / "src")
},
"disabled": False,
"autoApprove": [
"read_file",
"get_file_info",
"list_directory"
]
}
}
}
try:
with open(kiro_config_path, 'w') as f:
json.dump(kiro_config, f, indent=2)
print("✅ Kiro MCP configuration created")
except Exception as e:
print(f"❌ Failed to create Kiro config: {e}")
return False
# Step 4: Create a test script
test_script_path = current_dir / "test_mcp_integration.py"
print(f"\n🧪 Step 4: Creating test script at {test_script_path}")
test_script_content = f'''#!/usr/bin/env python3
"""Test script for MCP integration."""
import subprocess
import sys
import os
from pathlib import Path
def test_mcp_server():
"""Test the MCP server can start."""
print("🧪 Testing MCP Server Integration")
print("=" * 40)
# Test 1: Check if MCP library is available
try:
import mcp
print("✅ MCP library is available")
except ImportError:
print("❌ MCP library not found. Install with: pip install mcp")
return False
# Test 2: Try to import our server
sys.path.insert(0, "{current_dir / 'src'}")
try:
from file_system_mcp_server.server import FileSystemMCPServer
print("✅ MCP server can be imported")
except ImportError as e:
print(f"❌ Failed to import MCP server: {{e}}")
return False
# Test 3: Test configuration loading
try:
from file_system_mcp_server.config import ConfigManager
config = ConfigManager.load_config("{config_path}")
print("✅ Configuration loads successfully")
except Exception as e:
print(f"❌ Configuration loading failed: {{e}}")
return False
print("\\n🎉 MCP integration test passed!")
print("\\n📋 Next steps:")
print("1. Add the following to your Kiro MCP configuration:")
print(f" File: {kiro_config_path}")
print("2. Or copy the server config from kiro-mcp-config.json")
print("3. Restart Kiro to load the new MCP server")
print("4. Test the tools: read_file, write_file, list_directory, etc.")
return True
if __name__ == "__main__":
test_mcp_server()
'''
try:
with open(test_script_path, 'w') as f:
f.write(test_script_content)
os.chmod(test_script_path, 0o755)
print("✅ Test script created")
except Exception as e:
print(f"❌ Failed to create test script: {e}")
return False
# Step 5: Summary and instructions
print(f"\n" + "=" * 50)
print("🎉 Setup Complete!")
print(f"\n📁 Files created:")
print(f" • {config_path.name} - MCP server configuration")
print(f" • {kiro_config_path.name} - Kiro MCP configuration")
print(f" • {test_script_path.name} - Integration test script")
print(f"\n🚀 To use with Kiro:")
print(f"1. Install MCP library: pip install mcp python-magic")
print(f"2. Test integration: python3 {test_script_path.name}")
print(f"3. Add server to Kiro MCP config (copy from {kiro_config_path.name})")
print(f"4. Restart Kiro")
print(f"\n🧪 To test manually:")
print(f" python3 test_real_filesystem.py")
print(f" python3 interactive_test.py")
print(f"\n🛠️ Available MCP tools:")
tools = [
"read_file - Read file contents with metadata",
"write_file - Create new files with safety checks",
"update_file - Update files with backup protection",
"list_directory - List directory contents with filtering",
"delete_file - Safe deletion with backup",
"get_file_info - Get detailed file metadata"
]
for tool in tools:
print(f" • {tool}")
return True
if __name__ == "__main__":
success = setup_for_kiro()
if not success:
sys.exit(1)