{"name":"io.github.codespar/mcp-whatsapp-cloud","slug":"codespar-mcp-whatsapp-cloud","title":null,"description":"MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API","url":"https://mcp.market/server/codespar-mcp-whatsapp-cloud","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":38,"stars":271,"forks":50,"downloads_week":null,"last_push_at":"2026-08-29T02:02:48.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/codespar/mcp-dev-latam","website":null,"version":"0.2.2","remotes":[],"packages":[{"registryType":"npm","identifier":"@codespar/mcp-whatsapp-cloud","version":"0.2.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Meta system-user access token (permanent). Used as Bearer token for Graph API.","isRequired":true,"format":"string","isSecret":true,"name":"WHATSAPP_ACCESS_TOKEN"},{"description":"WhatsApp Business phone number ID registered with Meta.","isRequired":true,"format":"string","name":"WHATSAPP_PHONE_NUMBER_ID"},{"description":"WhatsApp Business Account (WABA) ID. Used for template management.","isRequired":true,"format":"string","name":"WHATSAPP_BUSINESS_ACCOUNT_ID"},{"description":"Graph API version. Defaults to v21.0. Meta bumps quarterly.","format":"string","name":"WHATSAPP_GRAPH_VERSION"}]}],"tools":[{"name":"create_template","description":"Submit a new template for Meta review. Templates become usable only after approval (usually minutes to hours).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_media","description":"Delete an uploaded media asset by id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_template","description":"Delete a message template from the WABA by name. Optionally scope by hsm_id when two templates share a name across languages.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_business_profile","description":"Read the WhatsApp business profile (about, description, email, websites, vertical, address) for the configured phone number.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_phone_numbers","description":"List all phone numbers registered under the WhatsApp Business Account, including display name, quality rating, and verification status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_templates","description":"List message templates on the WhatsApp Business Account. Supports optional paging and name filter.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mark_message_as_read","description":"Mark an incoming message as read so the sender sees the blue double-check. Uses the wamid from the inbound webhook.","write_action":false,"price_micros":0,"input_schema":null},{"name":"request_verification_code","description":"Request Meta to send a verification code to the configured phone number via SMS or voice. Use before verify_code.","write_action":false,"price_micros":0,"input_schema":null},{"name":"retrieve_media_url","description":"Resolve a media_id to a short-lived downloadable URL. The URL itself still requires the Bearer token to fetch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_contacts_message","description":"Send one or more contact cards (vCard-like). Each contact includes name and at least one of phones, emails, addresses, urls, or org.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_interactive_cta_url","description":"Send an interactive message with a single CTA URL button. Opens the URL when the recipient taps it. Available without template approval inside the 24h window.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_interactive_flow","description":"Send a WhatsApp Flow message. Flows are Meta's structured UI experiences (forms, appointment booking, etc.) rendered inside WhatsApp.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_interactive_message","description":"Send an interactive message (reply buttons or list). Supply a fully-formed `interactive` object per Cloud API spec.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_location_message","description":"Send a location pin with latitude/longitude and optional name/address.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_media_message","description":"Send an image, video, document, or audio. Supply either `link` (public URL) or `id` (media_id from upload_media).","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_reaction_message","description":"Send an emoji reaction on a previously received/sent message. Pass empty string for `emoji` to clear a reaction.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_template_message","description":"Send an approved message template. Required for business-initiated conversations. Templates must be pre-approved by Meta via create_template.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_text_message","description":"Send a plain text message. For business-initiated conversations outside the 24h customer-service window, use send_template_message instead.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_typing_indicator","description":"Show a typing indicator on a received message. Also marks the message as read. Indicator auto-clears after ~25s or when you reply.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_business_profile","description":"Update the business profile on the configured phone number. Supply only the fields you want to change.","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_media","description":"Upload a media file and get back a media_id reusable in send_media_message. Multipart POST to /{phone_number_id}/media.","write_action":true,"price_micros":0,"input_schema":null},{"name":"verify_code","description":"Submit the verification code received via SMS/voice after request_verification_code. Completes registration.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-26T21:19:23.039Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T21:19:23.037Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 29 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@codespar/mcp-whatsapp-cloud","version":"0.2.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-06-22T18:37:59.364Z"}],"repo":{"found":true,"owner":"codespar","repo":"mcp-dev-latam","archived":false,"pushedAt":"2026-08-29T02:02:48Z","stars":271,"forks":50,"openIssues":10,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/269058982?v=4","ownerCreatedAt":"2026-03-18T00:40:56Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/269058982?v=4&s=128","source":"github"},"presence":{"stars":271,"forks":50,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-29T02:02:48.000Z","score":38}}}},"grade_history":[],"reviews":[]}