#!/usr/bin/env node
// Simple test script for the Replicate Recraft V3 MCP Server
import { spawn } from 'child_process';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
console.log('๐งช Testing Replicate Recraft V3 MCP Server...\n');
// Check if REPLICATE_API_TOKEN is set
if (!process.env.REPLICATE_API_TOKEN) {
console.error('โ REPLICATE_API_TOKEN environment variable is not set');
console.error('Please set your Replicate API token: export REPLICATE_API_TOKEN=r8_your_token_here');
process.exit(1);
}
console.log('โ
REPLICATE_API_TOKEN is set');
console.log('๐ Starting MCP Server...\n');
// Start the server
const serverPath = join(__dirname, 'build', 'index.js');
const server = spawn('node', [serverPath], {
stdio: ['pipe', 'pipe', 'pipe'],
env: { ...process.env }
});
// Test message to send to the server
const testMessage = {
jsonrpc: "2.0",
id: 1,
method: "tools/list",
params: {}
};
let responseReceived = false;
// Handle server output
server.stdout.on('data', (data) => {
const response = data.toString();
console.log('๐ค Server Response:', response);
try {
const parsed = JSON.parse(response);
if (parsed.result && parsed.result.tools) {
console.log('\nโ
Server is working correctly!');
console.log('๐ ๏ธ Available tools:');
parsed.result.tools.forEach(tool => {
console.log(` โข ${tool.name}: ${tool.description}`);
});
responseReceived = true;
server.kill();
}
} catch (e) {
// Response might not be JSON, that's okay
}
});
server.stderr.on('data', (data) => {
console.log('๐ Server Log:', data.toString());
});
server.on('close', (code) => {
if (responseReceived) {
console.log('\n๐ Test completed successfully!');
console.log('๐ To use this server, add the following to your MCP client configuration:');
console.log('\n' + JSON.stringify({
"mcpServers": {
"replicate-recraft-v3": {
"command": "npx",
"args": [
"-y",
"https://github.com/PierrunoYT/replicate-recraft-v3-mcp-server.git"
],
"env": {
"REPLICATE_API_TOKEN": "r8_NBY**********************************"
}
}
}
}, null, 2));
} else {
console.log(`\nโ Server exited with code ${code}`);
}
process.exit(code);
});
server.on('error', (err) => {
console.error('โ Failed to start server:', err);
process.exit(1);
});
// Send test message after a short delay
setTimeout(() => {
console.log('๐จ Sending test message...');
server.stdin.write(JSON.stringify(testMessage) + '\n');
}, 1000);
// Timeout after 10 seconds
setTimeout(() => {
if (!responseReceived) {
console.log('\nโฐ Test timed out');
server.kill();
process.exit(1);
}
}, 10000);