# 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 - **Read Operations**: Get users, wall posts, groups, friends, newsfeed, photos - **Write Operations**: Create posts, add comments - **Analytics**: Get community statistics - **Secure**: Token-based authentication via environment variable - **Tested**: Comprehensive test coverage - **Easy Install**: Available on npm and MCP Registry ## Quick Start ### Installation ```bash npm install -g vk-mcp-server ``` Or run directly with npx: ```bash npx 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](https://vk.com/dev) 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): ```json { "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`: ```json { "mcpServers": { "vk": { "command": "npx", "args": ["-y", "vk-mcp-server"], "env": { "VK_ACCESS_TOKEN": "your_access_token_here" } } } } ``` ## Available Tools | Tool | Description | |------|-------------| | `vk_users_get` | Get user profiles by IDs or screen names | | `vk_wall_get` | Get posts from user/community wall | | `vk_wall_post` | Publish a new post | | `vk_wall_create_comment` | Add comment to a post | | `vk_groups_get` | Get user's communities list | | `vk_groups_get_by_id` | Get community info by ID | | `vk_friends_get` | Get user's friends list | | `vk_newsfeed_get` | Get user's newsfeed | | `vk_stats_get` | Get community statistics (admin only) | | `vk_photos_get` | Get photos from albums | ## 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: ```bash npm test ``` Run tests with coverage: ```bash npm run test:coverage ``` ## API Reference This server wraps VK API v5.199. For detailed parameter documentation, see: - [VK API Methods](https://dev.vk.com/ru/method) - [VK API Objects](https://dev.vk.com/ru/reference) ## 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](CONTRIBUTING.md) 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](LICENSE) © 2026 bulatko ## Links - [npm Package](https://www.npmjs.com/package/vk-mcp-server) - [MCP Registry](https://registry.modelcontextprotocol.io/) - [VK API Documentation](https://dev.vk.com/) - [Model Context Protocol](https://modelcontextprotocol.io/) ---Made with ❤️ for the MCP ecosystem