UNPKG

@pollinations/chucknorris-mcp

Version:

Chuck Norris Jailbreak Service - Simple API for retrieving jailbreak prompts

82 lines (66 loc) • 2.73 kB
#!/usr/bin/env node 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); });