vk-mcp-server
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 9 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in scripts/build-mcpb.sh
- process.env — Environment variable access in src/index.js
- network request — Outbound network request in src/index.js
- process.env — Environment variable access in tests/mcp-protocol.test.js
- Hardcoded secret — Potential hardcoded credential in tests/mcp-protocol.test.js
- process.env — Environment variable access in tests/vk-api.test.js
- Hardcoded secret — Potential hardcoded credential in tests/vk-api.test.js
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Model Context Protocol (MCP) server for VK (VKontakte) social network API
VK MCP Server
Model Context Protocol (MCP) server for VK (VKontakte) social network API
Enables AI assistants like Claude to interact with VK through a standardized interface.
Features
- 19 tools across users, walls, communities, photos, likes and statistics
- Read and write: search and read freely; posting, editing and deleting are
marked as write operations so your client can ask first - Structured output: every tool declares an output schema, so the model gets
typed data instead of a JSON blob it has to parse out of text - Prompts: ready-made workflows — community digest, engagement report,
audience snapshot, community search - Resilient: request timeouts, automatic backoff when VK rate-limits, and
clear messages for captchas and HTTP failures - Tested: 44 tests driving the real server over the MCP protocol
Quick Start
One-click install (recommended)
Download the latest .mcpb bundle from the
releases page and
open it in Claude Desktop. It installs the server, asks for your VK token in a
form field, and stores it securely — no Node.js, no config files, no terminal.
npm
npx vk-mcp-server
Or install globally with npm install -g vk-mcp-server.
MCP Registry
Also available in the official MCP Registry:
io.github.bulatko/vk
Getting VK Access Token
- Go to VK Developers and create a Standalone app
- Get your app ID
- Open this URL (replace
YOUR_APP_ID):https://oauth.vk.com/authorize?client_id=YOUR_APP_ID&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends,wall,groups,photos,stats,offline&response_type=token&v=5.199 - Authorize and copy the
access_tokenfrom the URL
Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"vk": {
"command": "npx",
"args": ["-y", "vk-mcp-server"],
"env": {
"VK_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"vk": {
"command": "npx",
"args": ["-y", "vk-mcp-server"],
"env": {
"VK_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}
Environment variables
| Variable | Required | Default | Purpose |
|---|---|---|---|
VK_ACCESS_TOKEN |
yes | — | VK API access token |
VK_TIMEOUT_MS |
no | 30000 |
Abort a VK request that hangs longer than this |
VK_API_BASE |
no | https://api.vk.com/method |
Point the server at an API mirror or proxy |
VK rate-limits user tokens to a few calls per second. When it answers with
error 6 (too many requests), the server backs off and retries up to three
times before giving up, so short bursts of tool calls do not fail outright.
Available Tools
Tools marked ✏️ change something on VK — they post, edit, delete or join on
behalf of whoever owns the access token. Each tool also carries MCP annotations
(readOnlyHint, destructiveHint), so a client can auto-approve lookups while
still asking before a post is edited or deleted.
Users
| Tool | Description |
|---|---|
vk_users_get |
Get user profiles by IDs or screen names |
vk_users_search |
Search users by name, city, age and other criteria |
Wall
| Tool | Description |
|---|---|
vk_wall_get |
Get posts from user/community wall |
vk_wall_get_by_id |
Get specific posts by {owner_id}_{post_id} |
vk_wall_post |
✏️ Publish a new post |
vk_wall_edit |
✏️ Edit an existing post |
vk_wall_delete |
✏️ Delete a post |
vk_wall_create_comment |
✏️ Add comment to a post |
Groups
| Tool | Description |
|---|---|
vk_groups_get |
Get user's communities list |
vk_groups_get_by_id |
Get community info by ID |
vk_groups_search |
Search communities by name and criteria |
vk_groups_get_members |
Get community members |
vk_groups_join |
✏️ Join a community or request to join |
Photos
| Tool | Description |
|---|---|
vk_photos_get |
Get photos from albums |
vk_photos_upload_wall |
✏️ Upload a photo and get an attachment string for vk_wall_post |
Other
| Tool | Description |
|---|---|
vk_friends_get |
Get user's friends list |
vk_newsfeed_get |
Get user's newsfeed |
vk_likes_get |
Get users who liked an object, with reaction counts |
vk_stats_get |
Get community statistics (admin only) |
Prompts
Prompts appear in your client as ready-made workflows — pick one, fill in the
community, and the model knows which tools to use.
| Prompt | What it does |
|---|---|
community_digest |
Reads recent posts and summarises themes, standouts and cadence |
engagement_report |
Ranks posts by likes and by comments, then explains what the winners share |
audience_snapshot |
Samples members and describes the audience by sex, city and activity |
find_communities |
Searches communities on a topic and compares the candidates |
Usage Examples
Once configured, you can ask Claude:
- "Get information about Pavel Durov's VK profile"
- "Show me the latest 5 posts from the VK official community"
- "Post 'Hello World!' on my wall"
- "Get the list of communities I'm a member of"
- "Show my newsfeed"
Example Conversation
User: What's on Pavel Durov's wall?
Claude: I'll check Pavel Durov's VK wall for recent posts.
[Uses vk_wall_get with domain="durov"]
Here are the latest posts from Pavel Durov's wall:
1. [Post content...]
2. [Post content...]
Testing
Run the test suite:
npm test
Run tests with coverage:
npm run test:coverage
API Reference
This server wraps VK API v5.199. For detailed parameter documentation, see:
Security Notes
- Never share your access token
- The
offlinescope provides a non-expiring token - Review permissions before authorizing
- For production, consider using a service token
Contributing
Contributions are welcome! Please read the Contributing Guidelines first.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT © 2026 bulatko
Links
Made with ❤️ for the MCP ecosystem
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found