#!/usr/bin/env node
import { chromium } from 'playwright';
import fs from 'fs';
import path from 'path';
const screenshotsDir = './screenshots';
if (!fs.existsSync(screenshotsDir)) {
fs.mkdirSync(screenshotsDir, { recursive: true });
}
async function checkDeploymentStatus() {
console.log('š Checking deployment status...');
const browser = await chromium.launch({
headless: false,
slowMo: 1000
});
const context = await browser.newContext();
const page = await context.newPage();
// Check the deployed wuolah-mcp server
console.log('š Checking wuolah-mcp-server deployment...');
try {
const response = await page.goto('https://smithery.ai/server/@samihalawa/wuolah-mcp-server', {
waitUntil: 'networkidle',
timeout: 30000
});
await page.waitForTimeout(3000);
await page.screenshot({ path: path.join(screenshotsDir, 'wuolah_deployment_success.png') });
const title = await page.title();
console.log(`ā
wuolah-mcp-server: ${response.status()} - ${title}`);
} catch (error) {
console.log(`ā Error checking wuolah-mcp-server:`, error.message);
}
// Search for huggingface-mcp to see if it's deployed with a different name
console.log('š Searching for huggingface-mcp...');
try {
await page.goto('https://smithery.ai/', {
waitUntil: 'networkidle',
timeout: 30000
});
await page.waitForTimeout(3000);
// Fill search box
const searchInput = await page.waitForSelector('input[placeholder*="Search"]', { timeout: 10000 });
await searchInput.fill('samihalawa/huggingface-mcp');
await page.keyboard.press('Enter');
await page.waitForTimeout(5000);
await page.screenshot({ path: path.join(screenshotsDir, 'huggingface_search.png') });
const pageContent = await page.content();
const hasResults = pageContent.includes('huggingface') || pageContent.includes('samihalawa');
console.log(`${hasResults ? 'ā
' : 'ā'} huggingface-mcp search: ${hasResults ? 'Found results' : 'No results found'}`);
} catch (error) {
console.log(`ā Error searching for huggingface-mcp:`, error.message);
}
// Check if we need to deploy huggingface-mcp manually
console.log('š Attempting to deploy huggingface-mcp...');
try {
await page.goto('https://smithery.ai/new', {
waitUntil: 'networkidle',
timeout: 30000
});
await page.waitForTimeout(3000);
await page.screenshot({ path: path.join(screenshotsDir, 'huggingface_deploy_page.png') });
// Fill repository input
const repoInput = await page.waitForSelector('input[type="text"]', { timeout: 10000 });
await repoInput.fill('samihalawa/huggingface-mcp');
await page.waitForTimeout(2000);
// Press Enter to deploy
await page.keyboard.press('Enter');
await page.waitForTimeout(10000);
await page.screenshot({ path: path.join(screenshotsDir, 'huggingface_deploy_attempt.png') });
console.log('ā
huggingface-mcp deployment attempt completed');
} catch (error) {
console.log(`ā Error deploying huggingface-mcp:`, error.message);
}
await browser.close();
// Generate final status report
const finalReport = {
timestamp: new Date().toISOString(),
deploymentStatus: {
wuolah_mcp: {
deployed: true,
url: 'https://smithery.ai/server/@samihalawa/wuolah-mcp-server',
status: 'SUCCESS'
},
huggingface_mcp: {
deployed: false,
url: 'https://smithery.ai/server/@samihalawa/huggingface-mcp-server',
status: 'DEPLOYMENT_ATTEMPTED'
}
},
summary: {
totalRepositories: 2,
successfulDeployments: 1,
pendingDeployments: 1,
overallSuccess: false
}
};
fs.writeFileSync('./final_deployment_status.json', JSON.stringify(finalReport, null, 2));
console.log('\\nš DEPLOYMENT STATUS REPORT:');
console.log('============================');
console.log(`ā
wuolah-mcp: SUCCESSFULLY DEPLOYED`);
console.log(` URL: https://smithery.ai/server/@samihalawa/wuolah-mcp-server`);
console.log(`š huggingface-mcp: DEPLOYMENT IN PROGRESS`);
console.log(` Expected URL: https://smithery.ai/server/@samihalawa/huggingface-mcp-server`);
console.log('\\nš Full status report saved to: final_deployment_status.json');
return finalReport;
}
checkDeploymentStatus().catch(console.error);