vk-mcp-server
The vk-mcp-server enables AI assistants to interact with the VK (VKontakte) social network API through standardized tools.
Read Operations:
User Profiles (
vk_users_get): Retrieve user info by IDs or screen names, with optional profile fieldsWall Posts (
vk_wall_get): Fetch posts from any user or community wall, with pagination supportCommunities (
vk_groups_get): List communities a user is a member of, with filtering optionsCommunity Info (
vk_groups_get_by_id): Get detailed info about specific communities by ID or short nameFriends (
vk_friends_get): Fetch a user's friends list with sorting and field optionsNewsfeed (
vk_newsfeed_get): Retrieve the user's newsfeed, filterable by content type (posts, photos, videos)Photos (
vk_photos_get): Get photos from user or community albums, including special albums (wall, profile, saved)
Write Operations:
Publish Posts (
vk_wall_post): Create posts on a wall, optionally on behalf of a communityAdd Comments (
vk_wall_create_comment): Post comments on wall posts
Analytics:
Community Statistics (
vk_stats_get): Access analytics for a community (admin access required), with interval options
Security: Token-based authentication configured via an environment variable.
VK 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
Pagination that explains itself: list results say how many matches exist and which offset continues from here, so the model can page through a wall instead of stopping at the first twenty posts
Things you can look at: on hosts that support MCP Apps — Claude, Claude Desktop, VS Code Copilot, Goose — walls, communities and profiles render as cards: posts with their photos and clip previews, communities with their banner and size, profiles with avatar and following. Everywhere else it behaves exactly as before
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
Honest about tokens: VK has three kinds and they differ enormously in reach.
--checknames which one you hold and probes what it can actually do,--loginwalks the VK ID flow for the reading kind, and every VK error carries the fix rather than the code aloneTested: 84 tests driving the real server over the MCP protocol
Related MCP server: Kaspersky OpenTIP MCP Server
Quick Start
Claude Desktop — one click
Download the latest .mcpb bundle from the
releases page and
open it. 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.
VS Code — one click
VS Code prompts for your VK token and keeps it out of the config file. From a terminal instead:
code --add-mcp '{"name":"vk","command":"npx","args":["-y","vk-mcp-server"],"env":{"VK_ACCESS_TOKEN":"your_token"}}'npm
npx vk-mcp-serverOr install globally with npm install -g vk-mcp-server.
MCP Registry
Also available in the official MCP Registry:
io.github.bulatko/vkGetting VK Access Token
For anything beyond reading public pages, you need a community token. Open
a community you manage → Manage → API usage → Access tokens →
Create token, ticking wall and photos. Three clicks, no app, never
expires, tied to no browser or IP — and it is the only kind VK still lets post,
edit or upload.
For public reads alone, either of these does:
npx vk-mcp-server --login <YOUR_APP_ID> # sign in as yourself…or the service key from any app page.
Worth knowing before you spend an evening on it: --login returns a VK ID
token (vk2.a…), which VK issues for signing in rather than for the API. It
reads public profiles, walls and community info; posting, photos, friends,
feeds and statistics all answer error 1051, whatever scopes you request. The
older flow that granted full user tokens now refuses newly created apps
outright. npx vk-mcp-server --check names which kind you hold and what it
reaches.
Use your own app rather than an App ID from somewhere else: a token dies with the app that issued it, and the error gives no hint that this is what happened.
📖 Full setup guide — every step with the exact screens, what the scopes unlock, remote installs, and what each error means.
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 |
| for tool calls | — | VK API access token. The server starts and lists its tools without one; calling a tool then returns an error saying so |
| no |
| Abort a VK request that hangs longer than this |
| no |
| 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.
Command line
Command | What it does |
| Runs the MCP server (this is what your client calls) |
| Gets a token through VK ID in your browser |
| Reports what your token is and which tools it can use |
| Lists the commands and environment variables |
Troubleshooting
Start with:
VK_ACCESS_TOKEN=your_token npx vk-mcp-server --checkIt identifies which of the three token types you have — user, community or service — and probes what that token can actually reach, so you find out up front instead of discovering it tool by tool. It never calls a write method.
Common cases:
What you see | What it means |
| The VK app that issued the token is blocked. Every token from it fails this way, however valid the token looks. Create your own app and issue a fresh token. |
| The token expired or was revoked — run |
| A service token cannot call user methods. Use a user or community token. |
| The data is restricted — a private profile, or a community that hides its members. |
| VK bound the token to the IP that authorised it, and the server is on a different one. Common when the server runs on a VPS but you signed in from your laptop. Get the token on the machine that runs the server, or use a community token. |
| The old implicit OAuth flow. Use |
| The server is running but your client never passed |
The server turns these into messages that say what to do, so the model can usually explain the fix without you reading this table.
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 |
| Get user profiles by IDs or screen names |
| Search users by name, city, age and other criteria |
Wall
Tool | Description |
| Get posts from user/community wall |
| Get specific posts by |
| ✏️ Publish a new post |
| ✏️ Edit an existing post |
| ✏️ Delete a post |
| ✏️ Add comment to a post |
Groups
Tool | Description |
| Get user's communities list |
| Get community info by ID |
| Search communities by name and criteria |
| Get community members |
| ✏️ Join a community or request to join |
Photos
Tool | Description |
| Get photos from albums |
| ✏️ Upload a photo and get an attachment string for |
Other
Tool | Description |
| Get user's friends list |
| Get user's newsfeed |
| Get users who liked an object, with reaction counts |
| 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 |
| Reads recent posts and summarises themes, standouts and cadence |
| Ranks posts by likes and by comments, then explains what the winners share |
| Samples members and describes the audience by sex, city and activity |
| Drafts a post in the community's own tone, shows it for approval, publishes it |
| 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
A real exchange — the numbers below came back from VK while this was written.
You: How big is the VK Mini Apps community, and how are its recent posts doing?
Claude: [vk_groups_get_by_id group_ids="apiclub", fields="members_count,activity"]
[vk_wall_get domain="apiclub", count=3]
VK Mini Apps (@vkappsdev, id 166562603) — 245,457 members, filed under
Programming, with 898 posts on the wall. The three most recent:
21 Jan 22,653 views 46 likes 15 reposts "Готовы сделать этот год прорывным?..."
20 Jul 529 views 18 likes 0 reposts (photo post, no text)
13 Jul 3,782 views 11 likes 3 reposts "Суперсила игр и приложений в соцсети..."
The January post reached forty times the audience of the July ones —
worth a look at what it did differently.The model gets each of those numbers as typed fields rather than text it has to parse, because every tool declares an output schema.
Changelog
See CHANGELOG.md.
Testing
Run the test suite:
npm testRun tests with coverage:
npm run test:coverageAPI 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 tokenReview 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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceA Model Context Protocol server that provides a standardized interface for interacting with the Tinder API, handling authentication, request processing, rate limiting, caching, and error handling.Last updated23
- AlicenseAqualityBmaintenanceKaspersky OpenTIP Model Context Protocol Server. This server gives access to Kaspersky OpenTIP API to agentic applications.Last updated625Apache 2.0
- Alicense-qualityAmaintenanceModel Context Protocol server for BusinessMap (Kanbanize) integration. Provides comprehensive access to BusinessMap's project management features including workspaces, boards, cards, subtasks, parent-child relationships, outcomes, custom fields, and more.Last updated17511MIT
- AlicenseAqualityCmaintenanceA minimal Model Context Protocol server for interacting with Telegram bots via MTProto. It provides simple tools to send messages and retrieve chat history while serving as an easy-to-extend reference for developers.Last updated2MIT
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
MCP (Model Context Protocol) server for Appwrite
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bulatko/vk-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server