send_media
Send images, videos, audio, or documents via WhatsApp Business API to recipients with optional captions and file names for business communication.
Instructions
Send media (image, video, audio, document)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Media caption | |
| fileName | No | File name for documents | |
| instanceName | Yes | Instance name | |
| media | Yes | Media URL or base64 | |
| mediatype | Yes | Type of media | |
| number | Yes | Recipient phone number |
Implementation Reference
- src/index.ts:113-132 (schema)Tool definition for 'send_media' including input schema for validation.{ name: 'send_media', description: 'Send media (image, video, audio, document)', inputSchema: { type: 'object', properties: { instanceName: { type: 'string', description: 'Instance name' }, number: { type: 'string', description: 'Recipient phone number' }, mediatype: { type: 'string', enum: ['image', 'video', 'audio', 'document'], description: 'Type of media' }, media: { type: 'string', description: 'Media URL or base64' }, caption: { type: 'string', description: 'Media caption' }, fileName: { type: 'string', description: 'File name for documents' } }, required: ['instanceName', 'number', 'mediatype', 'media'] } },
- src/index.ts:470-472 (registration)Registration of all tools list including send_media for ListToolsRequest.this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools }));
- src/index.ts:649-665 (handler)MCP handler function for send_media tool that invokes evolutionAPI.sendMedia.private async handleSendMedia(args: any) { const result = await evolutionAPI.sendMedia(args.instanceName, { number: args.number, mediatype: args.mediatype, media: args.media, caption: args.caption, fileName: args.fileName }); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2) } ] }; }
- src/index.ts:500-501 (handler)Dispatch case in CallToolRequest handler routing to send_media handler.case 'send_media': return await this.handleSendMedia(args);
- src/services/evolution-api.ts:90-100 (helper)Helper method in EvolutionAPI service that performs the HTTP POST to send media via Evolution API.async sendMedia(instanceName: string, data: { number: string; mediatype: 'image' | 'video' | 'audio' | 'document'; mimetype?: string; caption?: string; media: string; // base64 or URL fileName?: string; }): Promise<Message> { const response = await this.client.post(`/message/sendMedia/${instanceName}`, data); return response.data; }