/**
* Message tools for MCP WPPConnect Server.
* Handles sending text messages.
*/
import { SendTextSchema, SendTextInput } from '../schemas/validations.js';
import { sessionManager } from '../utils/sessionManager.js';
import { logger } from '../utils/logger.js';
import { ToolResponse } from '../types/index.js';
/**
* Send a text message via WhatsApp.
*/
export const sendTextTool = {
name: 'send_text',
description: 'Send a text message to a WhatsApp contact or group.',
inputSchema: SendTextSchema,
execute: async (input: SendTextInput): Promise<ToolResponse> => {
try {
logger.info('sendTextTool', `Sending text to ${input.to} from session ${input.sessionId}`);
const client = sessionManager.getClient(input.sessionId);
if (!client) {
return {
ok: false,
error: 'Session not found or not authenticated.',
};
}
const result = await client.sendText(input.to, input.text);
logger.info('sendTextTool', `Message sent successfully to ${input.to}`);
return {
ok: true,
data: {
to: input.to,
message: 'Text message sent successfully.',
messageId: result?.id || 'unknown',
},
};
} catch (error) {
logger.error('sendTextTool', error);
return {
ok: false,
error: `Failed to send text message: ${String(error)}`,
};
}
},
};
/**
* Array of all message tools.
*/
export const messageTools = [sendTextTool];