Skip to main content
Glama
by wsapi-chat
session.ts2.61 kB
import type { ToolHandler } from '../server.js'; import { wsapiClient } from '../client/index.js'; import { createLogger } from '../utils/logger.js'; import { validateInput, getSessionLoginCodeSchema } from '../validation/schemas.js'; const logger = createLogger('session-tools'); export const getSessionStatus: ToolHandler = { name: 'whatsapp_get_session_status', description: 'Get current WhatsApp session status.', inputSchema: { type: 'object', properties: {} }, handler: async () => { logger.info('Getting session status'); const result = await wsapiClient.get('/session/status'); return { success: true, status: result, message: 'Session status retrieved successfully' }; }, }; export const getQRCode: ToolHandler = { name: 'whatsapp_get_qr_code', description: 'Get QR code for WhatsApp login.', inputSchema: { type: 'object', properties: {} }, handler: async () => { logger.info('Getting QR code'); const result = await wsapiClient.get('/session/login/qr/code'); return { success: true, qrCode: result, message: 'QR code retrieved successfully' }; }, }; export const getQRCodeImage: ToolHandler = { name: 'whatsapp_get_qr_code_image', description: 'Get QR code image for WhatsApp login.', inputSchema: { type: 'object', properties: {} }, handler: async () => { logger.info('Getting QR code image'); const result = await wsapiClient.get('/session/login/qr/image'); return { success: true, image: result, message: 'QR code image retrieved successfully' }; }, }; export const getPairCode: ToolHandler = { name: 'whatsapp_get_pair_code', description: 'Get pairing code for WhatsApp login.', inputSchema: { type: 'object', properties: { phone: { type: 'string', description: 'Phone number (10-15 digits)' } }, required: ['phone'], }, handler: async (args: any) => { const input = validateInput(getSessionLoginCodeSchema, args); logger.info('Getting pair code', { phone: input.phone }); const result = await wsapiClient.get(`/session/login/code/${input.phone}`); return { success: true, pairCode: result, message: 'Pair code retrieved successfully' }; }, }; export const logout: ToolHandler = { name: 'whatsapp_logout', description: 'Logout from WhatsApp.', inputSchema: { type: 'object', properties: {} }, handler: async () => { logger.info('Logging out'); await wsapiClient.post('/session/logout', {}); return { success: true, message: 'Logged out successfully' }; }, }; export const sessionTools = { getSessionStatus, getQRCode, getQRCodeImage, getPairCode, logout };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wsapi-chat/wsapi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server