vk-mcp-server

mcp
Security Audit
Fail
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.

SUMMARY

Model Context Protocol (MCP) server for VK (VKontakte) social network API

README.md

VK MCP Server

VK Logo

npm version npm downloads CI license

Model Context Protocol (MCP) server for VK (VKontakte) social network API

Enables AI assistants like Claude to interact with VK through a standardized interface.

vk-mcp-server MCP server


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

  1. Go to VK Developers and create a Standalone app
  2. Get your app ID
  3. 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
    
  4. Authorize and copy the access_token from 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 offline scope 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT © 2026 bulatko

Links


Made with ❤️ for the MCP ecosystem

Reviews (0)

No results found