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
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
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
claude mcp add bulatko-vk -- npx -y vk-mcp-server
codex mcp add bulatko-vk -- npx -y vk-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bulatko-vk": {
"type": "local",
"command": [
"npx",
"-y",
"vk-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add bulatko-vk --command npx --arg -y --arg vk-mcp-server
mcp_servers:
bulatko-vk:
command: "npx"
args: ["-y", "vk-mcp-server"] {
"mcpServers": {
"bulatko-vk": {
"command": "npx",
"args": [
"-y",
"vk-mcp-server"
]
}
}
} 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.
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.
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.
vk_friends_get List friends ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Number of friends |
| fields | string | — | Profile fields |
| order | string | — | — |
| user_id | number | — | User ID. Defaults to the token owner. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Friend IDs, or profiles when fields are requested |
| pagination | object | — | Where 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 List your communities ~77
List the communities the token owner belongs to. Needs a user token — a community or service token cannot answer this.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Number of communities |
| fields | string | — | Community fields |
| filter | string | — | Filter by type |
| user_id | number | — | User ID. Defaults to the token owner. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Communities the user belongs to |
| pagination | object | — | Where 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 Get community info ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | string | — | Community fields |
| group_ids | string | — | Comma-separated community IDs or short names (e.g. apiclub,vk). Positive and without the minus sign. |
| Name | Type | Req | Description |
|---|---|---|---|
| groups | array | — | Community profiles |
No examples provided.
vk_groups_get_members List community 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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Number of members to return (max 1000) |
| fields | string | — | Additional profile fields to return (e.g. photo_200,online,sex,city) |
| filter | string | — | Filter: managers, editors, mods, advertisers, friends, unsure |
| group_id | string | yes | Community 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. |
| offset | number | — | Offset for pagination |
| sort | string | — | Sort order: id_asc, id_desc, time_asc, time_desc |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Member IDs, or profiles when fields are requested |
| pagination | object | — | Where 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 Join a community ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | yes | Community 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_sure | number | — | For events only: 1 — "maybe attending", 0 — confirmed |
| Name | Type | Req | Description |
|---|---|---|---|
| success | boolean | yes | Whether VK accepted the change |
No examples provided.
vk_groups_search Search communities ~163
Find communities by keyword, optionally narrowed by type, country, city or sort order. Returns matches with a total count.
| Name | Type | Req | Description |
|---|---|---|---|
| city_id | number | — | City ID to filter by |
| count | number | — | Number of results (max 1000) |
| country_id | number | — | Country ID to filter by |
| fields | string | — | Additional community fields to return |
| future | number | — | Filter future events: 1 — only future events |
| offset | number | — | Offset for pagination |
| q | string | yes | Search query |
| sort | number | — | Sort order: 0 — default, 1 — by speed, 6 — by likes |
| type | string | — | Community type: group, page or event |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Matching communities |
| pagination | object | — | Where 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 See who reacted ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Number of users to return (max 1000) |
| item_id | number | yes | Object ID |
| offset | number | — | Offset for pagination |
| owner_id | number | — | Owner ID of the object (negative for community) |
| reaction_id | number | — | Filter by reaction: 0 — like ❤️, 1 — laugh 😂, 2 — wow 😮, 3 — admiration 🔥, 4 — angry 😡, 5 — sad 😢 |
| type | string | yes | Object type |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Users who reacted to the object |
| pagination | object | — | Where 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 Read your newsfeed ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Number of items |
| filters | string | — | Filter by type: post, photo, video |
| start_from | string | — | Pagination cursor |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Newsfeed entries |
| pagination | object | — | Where 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 Get photos ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| album_id | string | — | Album ID or: wall, profile, saved |
| count | number | — | Number of photos |
| owner_id | number | — | Album owner: negative for a community, positive for a person. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Photos in the album |
| pagination | object | — | Where 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 Upload a photo for a post ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| caption | string | — | Photo caption |
| group_id | string | — | Community 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. |
| image | string | yes | Image URL (http/https) or absolute local file path |
| Name | Type | Req | Description |
|---|---|---|---|
| attachment | string | yes | Attachment string such as photo-1_2, ready to pass to vk_wall_post |
| id | number | — | Photo ID |
| owner_id | number | — | Owner of the uploaded photo |
No examples provided.
vk_stats_get Community statistics ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | yes | Community 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. |
| interval | string | — | — |
| intervals_count | number | — | Number of intervals |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | One entry per statistics period |
| pagination | object | — | Where 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 Get user profiles ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | string | — | Profile fields to return |
| user_ids | string | — | Comma-separated user IDs or screen names |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | User profiles |
| pagination | object | — | Where 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 Search users ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| age_from | number | — | Minimum age |
| age_to | number | — | Maximum age |
| city | number | — | City ID to filter by |
| count | number | — | Number of results (max 1000) |
| country | number | — | Country ID to filter by |
| fields | string | — | Additional profile fields to return |
| offset | number | — | Offset for pagination |
| q | string | yes | Search query (name or keywords) |
| sex | number | — | Sex filter: 1 — female, 2 — male |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Matching user profiles |
| pagination | object | — | Where 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 Comment on a post ~82
Add a comment to a post. owner_id is negative for a community. Returns the new comment_id.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | Comment text |
| owner_id | number | yes | Wall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner. |
| post_id | number | yes | Post ID |
| Name | Type | Req | Description |
|---|---|---|---|
| comment_id | number | yes | ID of the created comment |
No examples provided.
vk_wall_delete Delete a post ~73
Delete a post from a wall. owner_id is negative for a community. This cannot be undone.
| Name | Type | Req | Description |
|---|---|---|---|
| owner_id | number | — | Wall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner. |
| post_id | number | yes | Post ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| success | boolean | yes | Whether VK accepted the change |
No examples provided.
vk_wall_edit Edit a post ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | string | — | Comma-separated attachments |
| message | string | — | New post text |
| owner_id | number | — | Wall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner. |
| post_id | number | yes | Post ID to edit |
| Name | Type | Req | Description |
|---|---|---|---|
| success | boolean | yes | Whether VK accepted the change |
No examples provided.
vk_wall_get Read a wall ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Number of posts (1-100) |
| domain | string | — | Short address of user or community |
| filter | string | — | Filter: all, owner, others, postponed, suggests |
| offset | number | — | Offset for pagination |
| owner_id | number | — | Wall owner ID (negative for community) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | Wall posts, newest first |
| pagination | object | — | Where 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 Get specific posts ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | string | — | Additional profile fields to return |
| posts | string | yes | Comma-separated post IDs in format {owner_id}_{post_id} (e.g. -123_456) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Total number of matches on VK, which is usually larger than the returned page |
| items | array | yes | The requested posts |
| pagination | object | — | Where 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 Publish a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | string | — | Comma-separated attachments (e.g. photo123_456,link) |
| from_group | boolean | — | Post on behalf of community |
| guid | string | — | Unique identifier to prevent duplicate posts |
| message | string | yes | Post text content |
| owner_id | number | — | Wall owner: a community as a negative number (-123), a person as a positive one. Defaults to the token owner. |
| publish_date | number | — | Unix timestamp for scheduled post (must be within 2 weeks) |
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | number | yes | ID of the published post |
No examples provided.