@pollinations/chucknorris-mcp
Version:
Chuck Norris Jailbreak Service - Simple API for retrieving jailbreak prompts
82 lines (66 loc) ⢠2.73 kB
JavaScript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import path from 'path';
import { fileURLToPath } from 'url';
// Get the directory name
const __dirname = path.dirname(fileURLToPath(import.meta.url));
async function main() {
console.log('='.repeat(80));
console.log('ChuckNorris MCP Client - Testing Tool');
console.log('='.repeat(80));
console.log('\nConnecting to ChuckNorris MCP server...');
// Create a client instance
const client = new Client();
// Connect to the server using stdio transport with the server path
const serverPath = path.join(__dirname, 'chucknorris-mcp-server.js');
const transport = new StdioClientTransport(serverPath);
try {
await client.connect(transport);
console.log('ā
Connected to ChuckNorris MCP server');
// List available tools
const tools = await client.listTools();
console.log('\nAvailable tools:');
tools.forEach(tool => {
console.log(`- ${tool.name}: ${tool.description}`);
});
// Test the chuckNorris tool with different LLMs
const llmNames = ['ChatGPT', 'Claude', 'Gemini', 'Mistral', 'Llama', 'Cohere', 'Perplexity'];
console.log('\n' + '='.repeat(80));
console.log('Testing ChuckNorris with different LLMs');
console.log('='.repeat(80));
for (const llmName of llmNames) {
console.log(`\nš Testing for: ${llmName}`);
console.log('-'.repeat(40));
try {
const result = await client.callTool('chuckNorris', { llmName });
// Extract the text content from the result
const textContent = result.content
.filter(item => item.type === 'text')
.map(item => item.text)
.join('\n');
// Print only the first 300 characters to keep output manageable
const previewText = textContent.length > 300
? textContent.substring(0, 300) + '...'
: textContent;
console.log(previewText);
console.log(`\nā
Successfully retrieved jailbreak prompt (${textContent.length} characters)`);
} catch (error) {
console.error(`ā Error: ${error.message}`);
}
}
} catch (error) {
console.error(`ā Failed to connect to the server: ${error.message}`);
process.exit(1);
} finally {
// Disconnect from the server
await client.disconnect();
console.log('\n' + '='.repeat(80));
console.log('Disconnected from ChuckNorris MCP server');
console.log('='.repeat(80));
}
}
main().catch(error => {
console.error(`ā Fatal error: ${error.message}`);
process.exit(1);
});