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

io.github.bulatko/vk

NPM · VK-MCP-SERVER · SCANNED AUG 3

VK (VKontakte): read walls, users, communities and stats; publish, edit and comment on posts.

Available components

+30 this week 76 Trust /100
Trust breakdown (6 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 →

Supply Chain Security86
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency71
  • Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
  • Cryptographically verified build provenance (signed, bound to bulatko/vk-mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability83
  • 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 2214 tokens (~110/item across 20 items; 19 tools + 1 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 Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · vk-mcp-server

# add to Claude Code
claude mcp add bulatko-vk -- npx -y vk-mcp-server
# add to Codex CLI
codex mcp add bulatko-vk -- npx -y vk-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "bulatko-vk": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "vk-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add bulatko-vk --command npx --arg -y --arg vk-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  bulatko-vk:
    command: "npx"
    args: ["-y", "vk-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "bulatko-vk": {
      "command": "npx",
      "args": [
        "-y",
        "vk-mcp-server"
      ]
    }
  }
}
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.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +25
    • Install scripts: pass → unverified security
    • Provenance: pass → unverified security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • The attested source repository moved: bulatko/vk-mcp-server security
    • Maintenance: pass → unverified functional
    • License: pass → unverified functional
    • Dependency health: unverified → partial functional
    • Stability: unverified → 0.23 functional
    • Licence: MIT functional
  • 31 Jul 26 +28
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −66
    • Known CVEs: partial → unverified security
    • Malware scan: pass → unverified security
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Dependency health: partial → unverified functional
  • 29 Jul 26 +69
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Provenance: unverified → pass security
    • The attested source repository moved: bulatko/vk-mcp-server security
    • Schema quality: unverified → good functional
    • Maintenance: unverified → pass functional
    • Schema quality: unverified → 100 functional
    • License: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • Licence: MIT functional
  • 28 Jul 26 −27
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Dependency health: unverified → partial functional
  • 27 Jul 26 46

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
bulatko/vk-mcp-server
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/bulatko/vk-mcp-server/.github/workflows/release.yml@refs/tags/v0.6.1
Rekor log index:
2255980746
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:23fffee359fcaaac7975565268317ecfc1b18f785ef355a96c59bc7077e88fd3811d906c670b6a0731102a8c5b9efa7f0ee150efa49001c7d27eb51ea
Discovery method:
attestation_endpoint
Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 19 exposed · ~2,184 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.

Tool Tokens
vk_friends_get ~82

List a user's friends. Returns bare IDs unless you ask for fields. Needs a user token, and only works for profiles that expose their friend list.

NameTypeReqDescription
countnumberNumber of friends
fieldsstringProfile fields
orderstring
user_idnumberUser ID. Defaults to the token owner.
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesFriend IDs, or profiles when fields are requested
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_groups_get ~77

List the communities the token owner belongs to. Needs a user token — a community or service token cannot answer this.

NameTypeReqDescription
countnumberNumber of communities
fieldsstringCommunity fields
filterstringFilter by type
user_idnumberUser ID. Defaults to the token owner.
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesCommunities the user belongs to
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_groups_get_by_id ~97

Look up communities by numeric ID or short name (e.g. apiclub). Use it to resolve a name to an ID, or to read the description, member count and type before deciding what to do with it.

NameTypeReqDescription
fieldsstringCommunity fields
group_idsstringComma-separated community IDs or short names (e.g. apiclub,vk). Positive and without the minus sign.
NameTypeReqDescription
groupsarrayCommunity profiles

No examples provided.

vk_groups_get_members ~190

List the members of a community. Returns bare user IDs unless you ask for fields, in which case it returns profiles. Many communities hide their member list, which comes back as an access error rather than an empty list.

NameTypeReqDescription
countnumberNumber of members to return (max 1000)
fieldsstringAdditional profile fields to return (e.g. photo_200,online,sex,city)
filterstringFilter: managers, editors, mods, advertisers, friends, unsure
group_idstringyesCommunity ID or its short name (e.g. apiclub). Positive and without the minus sign — the minus belongs to owner_id on a wall, not here.
offsetnumberOffset for pagination
sortstringSort order: id_asc, id_desc, time_asc, time_desc
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesMember IDs, or profiles when fields are requested
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_groups_join ~103

Join a community as the token owner, or send a join request if it is closed. group_id is positive here, without the minus sign.

NameTypeReqDescription
group_idstringyesCommunity ID or its short name (e.g. apiclub). Positive and without the minus sign — the minus belongs to owner_id on a wall, not here.
not_surenumberFor events only: 1 — "maybe attending", 0 — confirmed
NameTypeReqDescription
successbooleanyesWhether VK accepted the change

No examples provided.

vk_groups_search ~163

Find communities by keyword, optionally narrowed by type, country, city or sort order. Returns matches with a total count.

NameTypeReqDescription
city_idnumberCity ID to filter by
countnumberNumber of results (max 1000)
country_idnumberCountry ID to filter by
fieldsstringAdditional community fields to return
futurenumberFilter future events: 1 — only future events
offsetnumberOffset for pagination
qstringyesSearch query
sortnumberSort order: 0 — default, 1 — by speed, 6 — by likes
typestringCommunity type: group, page or event
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesMatching communities
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_likes_get ~166

List the users who liked or reacted to an object — a post, comment, photo or video — with counts per reaction. owner_id is negative for a community; item_id is the post or object ID.

NameTypeReqDescription
countnumberNumber of users to return (max 1000)
item_idnumberyesObject ID
offsetnumberOffset for pagination
owner_idnumberOwner ID of the object (negative for community)
reaction_idnumberFilter by reaction: 0 — like ❤️, 1 — laugh 😂, 2 — wow 😮, 3 — admiration 🔥, 4 — angry 😡, 5 — sad 😢
typestringyesObject type
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesUsers who reacted to the object
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_newsfeed_get ~76

Read the token owner's own newsfeed. Needs a user token — this is the feed of the account the token belongs to, not a public one.

NameTypeReqDescription
countnumberNumber of items
filtersstringFilter by type: post, photo, video
start_fromstringPagination cursor
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesNewsfeed entries
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_photos_get ~87

List photos from an album. album_id accepts wall, profile or saved as well as a numeric album ID. owner_id is negative for a community.

NameTypeReqDescription
album_idstringAlbum ID or: wall, profile, saved
countnumberNumber of photos
owner_idnumberAlbum owner: negative for a community, positive for a person.
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesPhotos in the album
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_photos_upload_wall ~141

Upload a photo so it can be attached to a post. Takes a URL or a local file path, runs VK's three-step upload, and returns an attachment string like photo-1_2 to pass to vk_wall_post or vk_wall_edit. group_id is positive here, without the minus sign.

NameTypeReqDescription
captionstringPhoto caption
group_idstringCommunity ID or its short name (e.g. apiclub). Positive and without the minus sign — the minus belongs to owner_id on a wall, not here.
imagestringyesImage URL (http/https) or absolute local file path
NameTypeReqDescription
attachmentstringyesAttachment string such as photo-1_2, ready to pass to vk_wall_post
idnumberPhoto ID
owner_idnumberOwner of the uploaded photo

No examples provided.

vk_stats_get ~98

Read a community's statistics by period: reach, visitors and activity. The token owner must be an administrator of that community, otherwise VK denies access.

NameTypeReqDescription
group_idstringyesCommunity ID or its short name (e.g. apiclub). Positive and without the minus sign — the minus belongs to owner_id on a wall, not here.
intervalstring
intervals_countnumberNumber of intervals
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesOne entry per statistics period
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_users_get ~76

Look up VK users by numeric ID or short name (e.g. durov). Use this to resolve a name to an ID before calling other tools, or to check whether a profile is closed.

NameTypeReqDescription
fieldsstringProfile fields to return
user_idsstringComma-separated user IDs or screen names
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesUser profiles
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_users_search ~152

Find VK users by name, optionally narrowed by city, country, sex or age. Returns matches with a total count; page through them with offset.

NameTypeReqDescription
age_fromnumberMinimum age
age_tonumberMaximum age
citynumberCity ID to filter by
countnumberNumber of results (max 1000)
countrynumberCountry ID to filter by
fieldsstringAdditional profile fields to return
offsetnumberOffset for pagination
qstringyesSearch query (name or keywords)
sexnumberSex filter: 1 — female, 2 — male
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesMatching user profiles
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_wall_create_comment ~82

Add a comment to a post. owner_id is negative for a community. Returns the new comment_id.

NameTypeReqDescription
messagestringyesComment text
owner_idnumberyesWall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner.
post_idnumberyesPost ID
NameTypeReqDescription
comment_idnumberyesID of the created comment

No examples provided.

vk_wall_delete ~73

Delete a post from a wall. owner_id is negative for a community. This cannot be undone.

NameTypeReqDescription
owner_idnumberWall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner.
post_idnumberyesPost ID to delete
NameTypeReqDescription
successbooleanyesWhether VK accepted the change

No examples provided.

vk_wall_edit ~110

Replace the text or attachments of an existing post. owner_id is negative for a community. Editing overwrites the previous content, so pass the full new text rather than an addition.

NameTypeReqDescription
attachmentsstringComma-separated attachments
messagestringNew post text
owner_idnumberWall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner.
post_idnumberyesPost ID to edit
NameTypeReqDescription
successbooleanyesWhether VK accepted the change

No examples provided.

vk_wall_get ~132

Read posts from a user or community wall, newest first. Pass domain for a short address (durov) or owner_id for a numeric one — negative for a community, positive for a person. Each post carries its likes, reposts, comments and views.

NameTypeReqDescription
countnumberNumber of posts (1-100)
domainstringShort address of user or community
filterstringFilter: all, owner, others, postponed, suggests
offsetnumberOffset for pagination
owner_idnumberWall owner ID (negative for community)
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesWall posts, newest first
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_wall_get_by_id ~97

Fetch particular posts by their full IDs in {owner_id}_{post_id} form, e.g. -1_340393. Use it to re-read a post you already know about, such as one you just published.

NameTypeReqDescription
fieldsstringAdditional profile fields to return
postsstringyesComma-separated post IDs in format {owner_id}_{post_id} (e.g. -123_456)
NameTypeReqDescription
countnumberTotal number of matches on VK, which is usually larger than the returned page
itemsarrayyesThe requested posts
paginationobjectWhere this page sits in the whole result. Call the tool again with offset set to next_offset to continue; when next_offset is null there is nothing left to fetch.

No examples provided.

vk_wall_post ~182

Publish a post on a wall. To post in a community, set owner_id to the community ID with a minus sign (-123) and from_group true, otherwise it appears as your personal post on the community wall. Attach media with the attachment string that vk_photos_upload_wall returns. Returns the new post_id.

NameTypeReqDescription
attachmentsstringComma-separated attachments (e.g. photo123_456,link)
from_groupbooleanPost on behalf of community
guidstringUnique identifier to prevent duplicate posts
messagestringyesPost text content
owner_idnumberWall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner.
publish_datenumberUnix timestamp for scheduled post (must be within 2 weeks)
NameTypeReqDescription
post_idnumberyesID of the published post

No examples provided.