import express, { Request, Response } from 'express';
import { setupSSE, broadcastSSE } from './utils/sse.js';
import { executeCode } from './server.js';
// NOTE: For TypeScript, install @types/express for proper type support.
const app = express();
app.use(express.json());
// SSE endpoint
setupSSE(app);
// Execute endpoint
app.post('/execute', async (req: Request, res: Response) => {
try {
const { code, language = 'python', timeout = 30, libraries = [] } = req.body;
const result = await executeCode({ code, language, timeout, libraries, sse: broadcastSSE });
res.json(result);
} catch (error) {
res.status(500).json({ error: error instanceof Error ? error.message : String(error) });
}
});
// Health check
app.get('/health', (req: Request, res: Response) => {
res.status(200).json({ status: 'ok', message: 'MCP Executor server is healthy', timestamp: new Date().toISOString() });
});
const PORT = 3000;
app.listen(PORT, () => {
console.log(`MCP Executor HTTP server listening on port ${PORT}`);
});