evolution-api-mcp
Version:
MCP Server for Evolution API v2 - Integrate WhatsApp functionality with Claude Desktop and other MCP clients
93 lines (91 loc) • 4.24 kB
JavaScript
/**
* Chat Controller Tools Demo
* Demonstrates how to use the Chat Controller tools
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.demonstrateChatTools = demonstrateChatTools;
const chat_tools_1 = require("./chat-tools");
const evolution_http_client_1 = require("../../clients/evolution-http-client");
async function demonstrateChatTools() {
// Initialize HTTP client (this would use real credentials in production)
const httpClient = new evolution_http_client_1.EvolutionHttpClient({
baseURL: 'https://your-evolution-api.com',
apiKey: 'your-api-key'
});
// Initialize Chat Tools
const chatTools = new chat_tools_1.ChatTools(httpClient);
console.log('=== Chat Controller Tools Demo ===\n');
// Get all available tools
const tools = chatTools.getAllTools();
console.log(`Available Chat Tools: ${tools.length}`);
tools.forEach(tool => {
console.log(`- ${tool.name}: ${tool.description}`);
});
console.log('\n=== Tool Examples ===\n');
// Example 1: Find Messages
console.log('1. Find Messages Tool:');
const findMessagesTool = chatTools.createFindMessagesTool();
console.log(` Name: ${findMessagesTool.name}`);
console.log(` Description: ${findMessagesTool.description}`);
console.log(' Example parameters:', JSON.stringify(findMessagesTool.examples?.parameters, null, 2));
// Example 2: Check WhatsApp Numbers
console.log('\n2. Check WhatsApp Tool:');
const checkWhatsappTool = chatTools.createCheckIsWhatsappTool();
console.log(` Name: ${checkWhatsappTool.name}`);
console.log(` Description: ${checkWhatsappTool.description}`);
console.log(' Example parameters:', JSON.stringify(checkWhatsappTool.examples?.parameters, null, 2));
// Example 3: Send Presence
console.log('\n3. Send Presence Tool:');
const sendPresenceTool = chatTools.createSendPresenceTool();
console.log(` Name: ${sendPresenceTool.name}`);
console.log(` Description: ${sendPresenceTool.description}`);
console.log(' Example parameters:', JSON.stringify(sendPresenceTool.examples?.parameters, null, 2));
// Example 4: Archive Chat
console.log('\n4. Archive Chat Tool:');
const archiveChatTool = chatTools.createArchiveChatTool();
console.log(` Name: ${archiveChatTool.name}`);
console.log(` Description: ${archiveChatTool.description}`);
console.log(' Example parameters:', JSON.stringify(archiveChatTool.examples?.parameters, null, 2));
console.log('\n=== Schema Validation Examples ===\n');
// Demonstrate schema validation
const findContactsTool = chatTools.createFindContactsTool();
// Valid parameters
const validParams = {
instance: 'my_whatsapp_bot',
where: {
name: 'John'
}
};
const validResult = findContactsTool.schema.safeParse(validParams);
console.log('Valid parameters validation:', validResult.success ? 'PASSED' : 'FAILED');
// Invalid parameters (missing instance)
const invalidParams = {
where: {
name: 'John'
}
};
const invalidResult = findContactsTool.schema.safeParse(invalidParams);
console.log('Invalid parameters validation:', invalidResult.success ? 'PASSED' : 'FAILED');
if (!invalidResult.success) {
console.log('Validation errors:', invalidResult.error.errors.map(e => e.message));
}
console.log('\n=== Usage in MCP Server ===\n');
console.log('To use these tools in an MCP server:');
console.log('1. Initialize ChatTools with your EvolutionHttpClient');
console.log('2. Get all tools using chatTools.getAllTools()');
console.log('3. Register each tool with your MCP server');
console.log('4. The tools will be available for Claude Desktop or other MCP clients');
console.log('\nExample MCP server registration:');
console.log(`
const chatTools = new ChatTools(httpClient);
const tools = chatTools.getAllTools();
tools.forEach(tool => {
server.tool(tool.name, tool.schema, tool.handler);
});
`);
}
// Run the demo if this file is executed directly
if (require.main === module) {
demonstrateChatTools().catch(console.error);
}
;