Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.razvangirgiz/wazap

NPM · WAZAP-MCP

WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools.

Available components

−4 this week 84 Trust /100

Last scanned (20 hours ago)

Scores higher than 82% of npm servers

Category Communication

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 82 of 297 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to razvangirgiz/wazap). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 12 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability72
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3928 tokens (~170/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage89
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 61% of tool parameters carry a description.Partial
  • Structured output schemas are declared (70% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1
    • Security disclosure: unverified → fail ▼ functional
  • 3 Nov 26 −5
    • Security disclosure: fail → unverified ▼ functional
    • Stability: pass → 0.67 functional
  • 1 Nov 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 31 Oct 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 24 Oct 26 −5
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 23 Oct 26 +19
    • Known CVEs: unverified → pass ▲ security
    • Stability: fail → pass ▲ security
    • Dependency health: unverified → 0.87 ▲ functional
  • 22 Oct 26 −1
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Known CVEs: unverified → pass ▲ security
    • Tool coverage: 78% → 61% ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Dependency health: unverified → 0.86 ▲ functional
    • Package version: 1.4.7 → 1.6.0 functional
    • Package version: 1.4.7 → 1.5.2 functional
    • Package version: 1.4.7 → 1.5.1 functional
    • Package version: 1.4.7 → 1.5.0 functional
  • 21 Oct 26 −11
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Known CVEs: pass → unverified ▼ security
    • Malware scan: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Dependency health: 0.86 → unverified ▼ functional
    • Package version: 1.4.2 → 1.4.7 functional
    • Package version: 1.4.2 → 1.4.6 functional
    • Package version: 1.4.2 → 1.4.4 functional
    • Package version: 1.4.2 → 1.4.3 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/wazap-mcp@1.6.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo razvangirgiz/wazap
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/razvangirgiz/wazap/.github/workflows/publish.yml@refs/tags/v1.6.0
Rekor log index 3386333520
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:d3ea1fcc8f00d7cb10f49bc1c0bd6d8b60a621e1cf4dd77096bb2b63fbd2f1ab910fb8a31190df6c0094f3d1fd3d30b5027d6489c0a938e058fed6655

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 297 packages
Packages resolved 297
Stale 82
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 23 exposed · ~3,348 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
catch_up ~172

What the user missed, all accounts, within budget_tokens: waiting (every open ask of 14 days, whatever the window), mentions, calls, people, groups, stories. account_id narrows it to one account; get_status names them. The mark moves first; a lost answer is since: "previous". more.cursor: the rest.

NameTypeReqDescription
account_idstring––
budget_tokensinteger–Answer length in tokens
cursorstring–more.cursor
hoursnumber–The last N hours instead; never moves the mark
includearray–Only these sections; the mark then stays
sincestring–"last" (default); "previous" repeats that catch-up; or an ISO date or time from the last 14 days
NameTypeReqDescription
account_idstring|nullyes–
accountsarrayyes–
addressedarrayyes–
approx_tokensnumberyes–
directarrayyes–
footer–yesOn the last page: what the entries leave out
groupsarrayyes–
missed_callsarrayyes–
more–yesSet when entries are left: call catch_up again with more.cursor
notesarray–Caveats to act on or tell the user
storiesarrayyes–
waitingarrayyes–
windowobjectyes–

No examples provided.

confirm_send ~105

Send a draft the user approved — this text, this recipient: the only call that sends, once per draft. A yes about something else: show the preview again and ask. Expired, missing or stale: draft again, show the new preview, ask again. SEND_OUTCOME_UNKNOWN: read_messages, never redo it unasked.

NameTypeReqDescription
account_idstring––
draft_idstringyesFrom send_message; one with send_at is scheduled, not sent

No output schema declared.

No examples provided.

delete_message ~91

Delete a message; confirm with the user first. for_everyone: true retracts it for everyone within 2 days: the account's own message, or anyone's in a group where it is admin. for_everyone: false removes any message from the linked account's devices only.

NameTypeReqDescription
account_idstring––
for_everyonebooleanyes–
message_idstringyes–
NameTypeReqDescription
account_idstringyes–
for_everyonebooleanyes–
message_idstringyes–

No examples provided.

edit_message ~60

Replace the text of a message the linked account sent. WhatsApp allows it for 15 minutes after sending; later, send a correction instead.

NameTypeReqDescription
account_idstring––
message_idstringyes–
textstringyes–
NameTypeReqDescription
account_idstringyes–
chat_idstringyes–
message_idstringyes–
textstringyes–
timestampstringyes–

No examples provided.

find_contact ~209

Who a name, nickname, relationship ("mama"), filed detail ("AP-123"), group, number or id means, before drafting. resolved: contact.chat_id, with number, note, tags, details and, when writing, context. ambiguous or not_found: ask the user; never guess. Several accounts: see fix. tag: its people.

NameTypeReqDescription
account_idstring––
include_contextboolean–Recent messages and the user's style, when resolved in a write session
kindstring––
limitinteger–Ambiguous: at most 5 per account; a tag list: up to 50
namestring–What the user calls them ("Ana", "mamei", "fotbal"), or a number or id
qualifierstring–Tells two apart: "contabilitate", a group, the last 4 digits
tagstring–List everyone filed under this tag instead
NameTypeReqDescription
account_idstring|null–The account that answered; null when several accounts were searched and none answered alone
accounts_searchedarray––
accounts_unavailablearray––
can_draftboolean–Resolved in a session that cannot send
candidatesarray–Only when ambiguous; best first
closestarray–Only when not_found
contactobject–Only when resolved
contactsarray–Only when listed: everyone filed under the tag
contextobject–Only when resolved, in a session that can write: what a draft to them is written after
fixstring–What to do next, when not resolved
nextstring–Resolved: how a message to them starts
notesarray–Caveats to act on or tell the user
omittedarray–Only when listed and cut by limit: how many more on each account
queryobjectyes–
statusstringyes–

No examples provided.

get_group_info ~85

A group's name, description, owner and participants (up to 500), whether the account is admin, its settings (info_locked, member_add_mode, join_approval, disappearing_seconds), its community, and the invite link for an admin. Call it before manage_group.

NameTypeReqDescription
account_idstring––
group_idstringyes<id>@g.us
NameTypeReqDescription
account_idstringyes–
announcement_onlybooleanyes–
chat_idstringyes–
communityobject––
created_atstring|nullyes–
descriptionstring|nullyes–
disappearing_secondsnumberyes–
i_am_adminbooleanyes–
info_lockedbooleanyes–
invite_linkstring––
join_approvalbooleanyes–
member_add_modestringyes–
namestringyes–
ownerstring|nullyes–
participant_countnumberyes–
participantsarrayyes–

No examples provided.

get_media ~138

What a message's media holds: a voice note or audio as its transcript (kept once made; an API provider bills it), or with save_to its file; a photo attached as an image; any file saved at path on the machine running wazap; a copy kept on arrival answers first. MEDIA_UNAVAILABLE: gone, none kept.

NameTypeReqDescription
account_idstring––
languagestring–What is spoken, e.g. "ro"
message_idstringyes–
save_tostring–Absolute directory; default <data-dir>/media. A recording: its file, and no new transcript
NameTypeReqDescription
account_idstringyes–
captionstring|nullyes–
filenamestring–The name it was saved under
image_attachedboolean–The photo, or a small preview of it, is attached
message_idstringyes–
mimestring––
original_filenamestring|nullyes–
pathstring––
sender–yes–
sizenumber––
sourcestring–kept: the copy wazap kept when it arrived; whatsapp: downloaded now
transcriptobject––
transcript_unavailableobject––
typestring|nullyes–

No examples provided.

get_message ~83

One message in full, its words never cut: the message it quotes, each reaction with who left it, poll votes and event answers by person, its media, and on the user's own messages who it reached and who read it. Without account_id the id is looked for on every account.

NameTypeReqDescription
account_idstring––
message_idstringyes–
NameTypeReqDescription
account_idstringyes–
chat_idstringyes–
message_idstringyes–
textstringyes–
timestampstringyes–

No examples provided.

get_status ~93

Whether the account works: status (connected, not_linked, linking with its pairing code…), sync, how fresh the history is, webhook delivery, versions. accounts lists every account, with default. Call it on NOT_CONNECTED, NOT_LINKED or SYNC_IN_PROGRESS.

NameTypeReqDescription
account_idstring––
include_pictureboolean–Add picture_url, the account's own profile photo (the link expires)

No output schema declared.

No examples provided.

learn ~59

The guide to these tools: ids, account_id with several accounts, the workflows, the message shape and what to do about each error code. Read it once, before the other tools; it never touches WhatsApp.

NameTypeReqDescription
account_idstring––

No output schema declared.

No examples provided.

link_account ~93

Pair wazap with the user's WhatsApp when get_status says not_linked, logged_out, session_corrupt or auth_failure. Show the user the code it returns: WhatsApp → Settings → Linked devices → Link a device → Link with phone number instead. Then poll get_status every 10 s until connected.

NameTypeReqDescription
account_idstring––
phonestringyese.g. +15550100

No output schema declared.

No examples provided.

list_chats ~131

Conversations, most recently active first: chat_id, name, type, unread count, last message, and whether archived, pinned, muted or left. Use it to find a chat_id.

NameTypeReqDescription
account_idstring––
cursorstring–Opaque next_cursor from the preceding page; keep the same filter
filterstring–"all" leaves out archived
include_picturesboolean–Add picture_url, each chat's profile photo (links expire)
limitinteger––
tagstring–Only chats with people filed under this tag
NameTypeReqDescription
account_idstringyes–
chatsarrayyes–
countnumberyes–
filterstringyes–
next_cursorstring|null––
syncstringyes–
tagstring––

No examples provided.

list_contacts ~117

The phone's address book on one account, a page at a time: saved name, phone (E.164), chat_id, contact_id, and when the last direct message was and its direction. No message words; #private people left out. address_book_synced false: not arrived yet.

NameTypeReqDescription
account_idstring––
cursorstring–next from the previous page
limitinteger––
orderstring–recent: latest direct chat first, then the rest in address book order

No output schema declared.

No examples provided.

manage_chat ~152

Preview archive, pin, mute, pin_message, star_message, clear, delete, block and undo. After approval repeat chat_id/action with confirmation_id, without options. Expires in 15m; one attempt. mark_read runs directly.

NameTypeReqDescription
account_idstring––
actionstringyes–
chat_idstringyesChat id, or a phone number
confirmation_idstring–From preview; omit message/duration options
message_idstring–pin_message, star_message and their undo; in chat_id
mute_hoursinteger–mute: 8 by default
pin_hoursnumber–pin_message: 168 by default

No output schema declared.

No examples provided.

manage_group ~263

Create a group, join one from an invite (preview first, then confirm: true), or administer one: members, name, description, photo, invite link, join requests, settings, leave. Most actions need admin. Every change shows to all members at once: say what will change, wait for a yes.

NameTypeReqDescription
account_idstring––
actionstringyes–
confirmboolean–join: true joins, after the user said yes to the preview
file_pathstring–set_picture: local JPEG, PNG or WebP
group_idstring–"<id>@g.us"; every action but create and join
invitestring–join: a chat.whatsapp.com link or its code
message_idstring–join: an invite message instead
participant_idsarray–create, add, remove, promote, demote, approve or reject
urlstring–set_picture: public image URL
valuestring–The name (create, set_subject) or description; "on"/"off"; set_add_mode "admins"/"all"; set_disappearing "off"/"24h"/"7d"/"90d"
NameTypeReqDescription
account_idstringyes–
actionstringyes–
appliedstring––
descriptionstring|null––
group_idstring|nullyes–
invite_linkstring––
join_approvalboolean|null––
join_requestsarray––
namestring|null––
nextstring–join preview: the step after the user's yes
participant_countnumber|null––
participantsarray––
profile_pic_urlstring|null––
statusstring–join: preview joins nothing

No examples provided.

react_to_message ~49

React to a message with one emoji, or pass "" to take your reaction off.

NameTypeReqDescription
account_idstring––
emojistringyes–
message_idstringyes–
NameTypeReqDescription
account_idstringyes–
emojistringyes–
message_idstringyes–

No examples provided.

read_messages ~212

Read one chat, oldest to newest: the latest messages, or older ones with before (wazap asks the phone when the local history runs out). Long texts are cut unless full_text. chat_id "status" reads the stories people posted, newest first, from the last hours (at most a day); they show nowhere else.

NameTypeReqDescription
account_idstring––
beforestring–The oldest message_id you have
chat_idstringyesChat id from another tool, a phone number, or "status" for stories
full_textboolean–Each message's text whole; a list cuts long ones otherwise
hoursinteger–"status" only: how far back, 24 by default
include_previewsboolean–Attach a small image of each photo, up to 12
limitinteger––
typesarray–Only these types; limit counts them, so ["call"] gives that many calls
NameTypeReqDescription
account_idstringyes–
chat_idstringyes–
countnumberyes–
hoursnumber––
messagesarrayyes–
notesarray–Caveats to act on or tell the user
olderobject–before ran past the local history: the phone was asked, and sent this many
omittednumber–Older stories left out by limit
preview_countnumberyes–
syncstringyes–
typesarray––
unconfirmed_sendsarray–Sends WhatsApp has not echoed yet: outcome unknown, not failed

No examples provided.

remember ~186

Keep what the user says about someone, locally, never on WhatsApp: a note, tags, details find_contact matches ({"relatie": "mama"}), or handled: true for an ask dealt with elsewhere. #private keeps their words out of what you did not ask about them by name; #no-catchup keeps them out of catch_up.

NameTypeReqDescription
account_idstring––
add_tagsarray–e.g. ["client"]
chat_id–yesSeveral: tags and fields only
fieldsobject–e.g. {"nickname": "Mișu", "role": "contabil"}; "" deletes a key
handledboolean–Off catch_up's waiting until they write again
notestring–"" removes it
remove_fieldsarray––
remove_tagsarray––
NameTypeReqDescription
account_idstringyes–
chat_idstring––
fieldsobject––
handledobject–The ask taken off the waiting list; null when nothing was open
is_businessboolean––
is_my_contactboolean––
namestring––
notestring––
numberstring|null––
peoplearray–Several chat_ids: each one's card
tagsarray––

No examples provided.

reminder ~245

The user's reminders about a chat, kept locally and posted to their webhook when due: create (chat_id, note, after_hours or due_at); condition "no_reply" fires only if nobody wrote there since ("if Ana has not answered in 2 days"). list, cancel. Nothing goes to WhatsApp.

NameTypeReqDescription
account_idstring––
actionstring––
after_hoursnumber–create: due this many hours from now
chat_idstring–create: the chat it is about
conditionstring–no_reply: skipped if someone wrote in the chat after it was set
due_atstring–create: due then, "2026-10-14T09:00" in time_zone, or with an offset
include_closedboolean–list: the week's fired, skipped and cancelled ones too
limitinteger––
notestring–create: what to remind the user of
reminder_idstring–cancel: from create or list
time_zonestring–IANA zone for due_at; the server's by default
NameTypeReqDescription
account_idstringyes–
actionstringyes–
cancelledboolean––
countnumberyes–
notesarray–Caveats to act on or tell the user
remindersarrayyes–

No examples provided.

scheduled_messages ~127

The account's scheduled messages: list (waiting ones soonest first, then the week's sent, missed, failed and cancelled ones) or cancel one by schedule_id before it goes. To schedule one, send_message with send_at, then confirm_send. Tell the user about every missed or failed one.

NameTypeReqDescription
account_idstring––
actionstring––
include_closedboolean–list: the week's sent, missed, failed and cancelled ones too
limitinteger––
schedule_idstring–cancel: from the list or confirm_send
NameTypeReqDescription
account_idstringyes–
actionstringyes–
cancelledboolean––
countnumberyes–
scheduledarrayyes–

No examples provided.

search ~221

Find by meaning and words, with nearby source contexts. Use the question and known context, never guessed filters. Auto: exact codes/quoted literals; words: substrings. Check corrections; assessment flags ambiguity. Cite the supporting message.

NameTypeReqDescription
account_idstring––
beforestring–Older lexical matches; auto uses words with a cursor
chat_idstring–Chat id, or a phone number
fromstring–"me", a number, an id, or a name only one person has
full_textboolean–Each message's text whole; a list cuts long ones otherwise
include_contextboolean–Nearby sources for the best five hits
limitinteger––
matchstring–auto: questions by meaning, codes/quotes by words
querystringyes–
sincestring–ISO date or time
tagstring–Only chats with people filed under this tag
untilstring–ISO date or time
NameTypeReqDescription
account_idstringyes–
assessmentobjectyes–
changed_during_readboolean––
contextsarray––
countnumberyes–
coverage––null: it could not be counted
freshness–yes–
from_resolvedstring––
index–––
messagesarrayyes–
modestringyeskeyword_fallback: meaning search could not run, see recall_unavailable
next_beforestring|null––
notesarray–Caveats to act on or tell the user
private_omittednumber–Matches from people tagged #private, left out: chat_id or from shows them
querystringyes–
recall_unavailableobject––
scan_cappedboolean–Older matches may be missing: narrow the search
searched_back_tostring–Older messages were not searched: narrow the search
syncstringyes–

No examples provided.

send_message ~339

Drafts text, media, polls, locations, forwards; sends nothing. Call it as soon as you have recipient and text: it returns draft_id and preview (recipient, number, exact text). Show that preview; confirm_send only on a yes to this text and recipient — a send in the same request is that yes.

NameTypeReqDescription
account_idstring––
addressstring–Location: shown under the name
asstring–Media: a plain document, a voice note, a looping GIF
chat_idstringyesChat id, or a phone number
file_pathstring–Media: absolute path on the machine running wazap
forward––Forward this message; text ""
latitudenumber––
longitudenumber––
mention_idsarray–Chat ids to @-mention; write @<number> in text for each
multi_selectboolean–Poll: several answers allowed
optionsarray–Poll answers
reply_tostring––
send_atstring–Send later: "2026-10-12T09:00" in time_zone, or with an offset; 1 minute to 365 days ahead
textstringyesThe message, or the caption, poll question or place name; "" for a forward, a voice note or audio
time_zonestring–IANA zone for send_at, e.g. "Europe/Bucharest"; the server's by default
urlstring–Media: public http(s) URL

No output schema declared.

No examples provided.

wait_for_messages ~118

Wait for messages from other people, up to timeout_seconds, and return them with a cursor: pass it to the next call so nothing that lands between calls is missed. addressed_to_me wakes only for direct messages, mentions and replies to the user. For agents that stay on the line.

NameTypeReqDescription
account_idstring––
addressed_to_meboolean––
chat_idstring–Chat id, or a phone number
cursorstring–From the previous call
timeout_secondsinteger––
NameTypeReqDescription
account_idstringyes–
countnumberyes–
cursorstringyesPass to the next call
cursor_resetbooleanyesThe cursor was from another run; the wait started now
messagesarrayyes–
timed_outbooleanyes–

No examples provided.

Install

How do I install the io.github.razvangirgiz/wazap MCP server?

io.github.razvangirgiz/wazap runs locally as an npm package, launched with npx -y wazap-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · wazap-mcp

# add to Claude Code
claude mcp add razvangirgiz-wazap -- npx -y wazap-mcp
Common questions

What is the io.github.razvangirgiz/wazap MCP server?

io.github.razvangirgiz/wazap is an MCP server listed in the public MCP registry as io.github.razvangirgiz/wazap. WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools. This page covers its npm package (wazap-mcp).

Is the io.github.razvangirgiz/wazap MCP server safe to use?

io.github.razvangirgiz/wazap scores 84 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.razvangirgiz/wazap MCP server expose?

io.github.razvangirgiz/wazap exposes 23 tools: learn, get_status, link_account, list_chats, read_messages, and 18 more. Their descriptions and schemas cost roughly 3,348 tokens of context every time the server is loaded.

Is the io.github.razvangirgiz/wazap MCP server still maintained?

io.github.razvangirgiz/wazap is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.razvangirgiz/wazap MCP server under?

io.github.razvangirgiz/wazap declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.