VK MCP Server

io.github.ssm82由 GitHub 帳號 ssm82 發布v0.2.2更新於 Oct 24, 2026

MCP server for VK API with 180+ tools: users, wall, groups, friends, photos, messages.

已驗證STDIO僅桌面溝通與協作商業與電商

概覽

AI 產生的概覽

讓助理透過 180 多個自動產生的 VK API 工具讀寫 VKontakte 帳號,涵蓋塗鴉牆貼文、訊息、社團、相片和廣告等。

可以做什麼
把官方 VK API schema 包裝成 180 多個 MCP 工具,涵蓋使用者、塗鴉牆、社團、好友、相片、影片、訊息、市集、統計、限時動態、投票、廣告等。內建設定檔與模式過濾可把曝露的工具限制為唯讀、非財務寫入或財務敏感方法,也能依區段或個別方法做白名單與黑名單。另外提供 VK 上傳伺服器與儲存輔助方法用於媒體流程,並支援 stdio、Streamable HTTP 和 SSE 傳輸。
適用情境
當助理需要操作 VK 帳號或社群時使用:讀取塗鴉牆、搜尋使用者、管理社團、處理訊息,或執行廣告與市集操作。適合想要較完整 VK API 能力、又能用設定檔或唯讀模式縮小範圍的使用者。
執行需求
需要 Node.js 18 或更新版本,透過 npx 或全域 npm 安裝在本機執行。必須提供 VK 存取權杖,以 VK_ACCESS_TOKEN 環境變數或 .env 檔案給出,並具備與用途相符的權限範圍。首次執行會自動下載 VK API schema,因此需要網路存取。HTTP 傳輸還會用到 VK_MCP_TRANSPORT、VK_MCP_PORT、VK_MCP_HOST 和 VK_MCP_AUTH_TOKEN。
安裝前請注意
該權杖可存取真實 VK 帳號,請勿提交到版本庫,並只授予所需權限範圍。寫入與 money 模式會讓助理發文、編輯、刪除、傳送訊息、修改社群,或透過廣告與市集工具花錢,若不打算變更應使用唯讀模式。把 HTTP 綁定到公開位址時必須設定 VK_MCP_AUTH_TOKEN,並使用 HTTPS。伺服器首次執行會從外部儲存庫下載 API schema。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 VK MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

VK MCP Server

Model Context Protocol (MCP) server for VKontakte (VK) — the largest social network in Russia and CIS countries.

This server allows AI assistants (Claude, Cursor, Windsurf, VS Code, etc.) to interact with VK through a standardized MCP interface.

Features

  • 180+ VK API tools auto-generated from the official schema (full set available with VK_MCP_MODE=all; safe defaults expose a smaller subset) — users, wall, groups, friends, photos, videos, messages, market, stats, stories, polls, and more
  • Auto-generated from VK API schema — always up-to-date with the official API
  • Read/Write/Money mode filtering — restrict AI to read-only, allow non-financial writes, or enable financially sensitive methods
  • Section filtering — include or exclude specific API sections (e.g., disable ads, secure)
  • .env support — load token from environment file for local development
  • VK upload API helpers — exposes upload-server and save methods for media workflows
  • ESM-based — modern Node.js module system
  • Multiple transports — stdio (for Claude Desktop / Cursor), Streamable HTTP and SSE (for remote MCP clients like Grok)

Prerequisites

  • Node.js ≥ 18
  • VK Access Token with required permissions

Installation

Option 1: Run with npx (no install)

bash
npx full-vk-mcp

Option 2: Install globally

bash
npm install -g full-vk-mcpfull-vk-mcp

Option 3: Clone from GitHub

bash
git clone https://github.com/ssm82/full-vk-mcp.gitcd full-vk-mcpnpm installnode src/index.js

The VK API schema is downloaded automatically on the first run. No manual steps needed.

Configuration

1. VK Access Token

Create a .env file in the project root:

bash
VK_ACCESS_TOKEN=your_vk_token_here

Or get a token from:

Required permissions depend on your use case:

  • wall — posting and reading wall
  • photos — uploading photos
  • groups — community management
  • friends, messages, market, stats — as needed

Security: Never commit your token to git. The .env file is already in .gitignore.

2. Choose a Profile (Recommended)

Instead of manually configuring sections and methods, use a built-in profile via VK_MCP_PROFILE:

bash
VK_MCP_PROFILE=minimal npx full-vk-mcp
ProfileModeDescriptionWarning
minimalreadEssential read methodsSafe
socialreadUsers, friends + extrasSafe
content_readread~25 content viewing methodsSafe
content_publishall~20 content creation methodsCan publish
community_managerallWall, board, groups managementCan modify communities
messengerallMessages + user infoRequires messages scope
analyticsreadStats, wall, groups insightsSafe
moneymoneyAll financially sensitive methods allowed by money-mode filteringFinancially sensitive
adsmoneyAds API + helper methodsCan spend money
marketmoneyVK Market + upload helpersCan modify shop
commercemoneyMarket, orders, store, gifts, donutFinancially sensitive
searchread~10 search methodsSafe
full_readreadAll read methods except ads/secureSafe
fullallAll VK API methodsDevelopment only

Profiles can be extended with environment variables:

bash
VK_MCP_PROFILE=social VK_MCP_INCLUDE_SECTIONS=wall npx full-vk-mcp

Env extends profile: list variables (sections, methods, excludes) are merged with the profile; scalar mode is overridden by env.

3. MCP Client Setup

VS Code (with Copilot / Claude / etc.)

Create .vscode/mcp.json:

json
{  "servers": {    "vk": {      "type": "stdio",      "command": "npx",      "args": ["-y", "full-vk-mcp"],      "env": {        "VK_ACCESS_TOKEN": "${input:vk-token}",        "VK_MCP_PROFILE": "minimal"      }    }  },  "inputs": [    {      "type": "promptString",      "id": "vk-token",      "description": "VK Access Token",      "password": true    }  ]}

For local development from a cloned repository, use:

json
{  "command": "node",  "args": ["/absolute/path/to/full-vk-mcp/src/index.js"]}
Cursor

Create .cursor/mcp.json:

json
{  "mcpServers": {    "vk": {      "command": "npx",      "args": ["-y", "full-vk-mcp"],      "env": {        "VK_ACCESS_TOKEN": "your_token",        "VK_MCP_PROFILE": "social"      }    }  }}
Claude Desktop

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
json
{  "mcpServers": {    "vk": {      "command": "npx",      "args": ["-y", "full-vk-mcp"],      "env": {        "VK_ACCESS_TOKEN": "your_token",        "VK_MCP_PROFILE": "minimal"      }    }  }}

For local development from a cloned repository, use:

json
{  "command": "node",  "args": ["/absolute/path/to/full-vk-mcp/src/index.js"]}
Windsurf / Other MCP Clients

Use the stdio transport and provide VK_ACCESS_TOKEN via environment variables.

4. Transport Mode

By default, the server uses stdio transport for local MCP clients. To enable remote connections, switch to HTTP:

VK_MCP_TRANSPORTUse case
stdio (default)Claude Desktop, Cursor, VS Code, Windsurf
httpGrok, ChatGPT, remote MCP clients
sseSame as http (both endpoints enabled)
bash
# HTTP mode for remote clientsVK_ACCESS_TOKEN=your_token VK_MCP_TRANSPORT=http npx full-vk-mcp

Environment Variables

VariableDefaultDescription
VK_ACCESS_TOKEN(required)Your VK API access token
VK_MCP_PROFILE—Built-in profile name (minimal, social, full, etc.)
VK_MCP_MODEreadread — read-only, write — non-financial writes, money — financially sensitive, all — everything
VK_MCP_INCLUDE_SECTIONS—Comma-separated whitelist of API sections. Without a profile, safe subset (users, groups, wall, friends, photos) is used
VK_MCP_EXCLUDE_SECTIONSads,secure,market,orders,store,gifts,donut,votes (without profile / without explicit includes)Comma-separated blacklist of API sections. Skipped when VK_MCP_INCLUDE_SECTIONS or VK_MCP_INCLUDE_METHODS is set
VK_MCP_INCLUDE_METHODS—Comma-separated whitelist of methods (e.g., users.get,wall.get)
VK_MCP_EXCLUDE_METHODS—Comma-separated blacklist of methods
VK_MCP_MAX_TOOLS—Limit the number of exposed tools
VK_MCP_TRANSPORTstdioTransport type: stdio, http, or sse
VK_MCP_PORT3000HTTP port (falls back to $PORT for PaaS like Render)
VK_MCP_HOST127.0.0.1Bind address. Use 0.0.0.0 for public hosts
VK_MCP_AUTH_TOKEN—Bearer token for HTTP transport auth (required when binding to non-loopback)

Mode Filtering

The server automatically classifies each VK API method into risk levels:

ModeDescriptionSections
readRead-only methodsSafe subset: users, groups, wall, friends, photos
writeRead + non-financial writesCan modify your account (post, edit, delete, send, etc.)
moneyFinancially sensitive onlyads, market, orders, store, gifts, donut, votes, selected secure.*
allEverythingRead + write + money — no restrictions
  • Read methods — get*, search*, is*, are*, check*, resolve*, find*, count*, lookup*, list*
  • Write methods — everything else (post, edit, delete, send, etc.)
  • Money methods — any method in financial sections or explicitly tagged (secure.getAppBalance, etc.)

Use VK_MCP_MODE=read to prevent the AI from making any changes to your VK account. Use VK_MCP_MODE=money when you need ads, market, or payment-related tools.

Running Locally

With npm/npx:

bash
VK_ACCESS_TOKEN=your_token npx full-vk-mcp

With a cloned repository:

bash
# With .env file (recommended for development)node src/index.js
# Or inlineVK_ACCESS_TOKEN=your_token node src/index.js
# Use a profileVK_ACCESS_TOKEN=your_token VK_MCP_PROFILE=minimal node src/index.js
# Read-only modeVK_ACCESS_TOKEN=your_token VK_MCP_MODE=read node src/index.js
# Include only specific sectionsVK_ACCESS_TOKEN=your_token VK_MCP_INCLUDE_SECTIONS=users,wall node src/index.js

HTTP Mode

bash
# Start HTTP server (localhost only, no auth)VK_ACCESS_TOKEN=your_token VK_MCP_TRANSPORT=http npx full-vk-mcp
# With custom portVK_MCP_TRANSPORT=http VK_MCP_PORT=8080 npx full-vk-mcp
# Public deploy (auth required)VK_MCP_TRANSPORT=http VK_MCP_HOST=0.0.0.0 VK_MCP_AUTH_TOKEN=your_secret npx full-vk-mcp

Test HTTP endpoint

bash
# Health checkcurl http://127.0.0.1:3000/health

For full MCP protocol testing, use the MCP Inspector:

bash
npx @modelcontextprotocol/inspector

Then select:

text
Transport: Streamable HTTPURL: http://127.0.0.1:3000/mcp

Streamable HTTP is session-based. A raw tools/list request must be sent only after an initialize request and with the returned Mcp-Session-Id header.

In the Inspector UI select Streamable HTTP and enter http://127.0.0.1:3000/mcp.

Available Tools (by Category)

CategoryExamplesCount
Wallvk_wall_get, vk_wall_post, vk_wall_edit, vk_wall_delete, vk_wall_search10+
Usersvk_users_get, vk_users_search, vk_users_get_followers5+
Groupsvk_groups_get, vk_groups_get_members, vk_groups_search, vk_groups_join20+
Photosvk_photos_get, vk_photos_get_upload_server, vk_photos_save15+
Videosvk_video_get, vk_video_search, vk_video_save10+
Messagesvk_messages_get_history, vk_messages_get_conversations, vk_messages_send20+
Friendsvk_friends_get, vk_friends_get_online, vk_friends_add10+
Marketvk_market_get, vk_market_search, vk_market_get_orders10+
Storiesvk_stories_get, vk_stories_get_upload_server5+
Pollsvk_polls_create, vk_polls_get_by_id, vk_polls_add_vote5+
Statsvk_stats_get, vk_stats_get_post_reach2+
Adsvk_ads_get_campaigns, vk_ads_get_ads, vk_ads_get_statistics15+
+ 60 more sectionsdocs, notes, board, fave, notifications, pages, storage, etc.—

Total: 180+ tools auto-generated from the official VK API schema.

Examples

Get your wall posts

Tool: vk_wall_getArguments: { "count": 5 }

Search for users

Tool: vk_users_searchArguments: { "q": "Ivan Ivanov", "count": 10 }

Get community members

Tool: vk_groups_get_membersArguments: { "group_id": "apiclub", "count": 100 }

Create a poll

Tool: vk_polls_createArguments: {  "question": "What's your favorite color?",  "add_answers": "[\"Red\", \"Green\", \"Blue\"]"}

Deployment

For Render, Railway, Fly.io, or similar PaaS:

bash
# build commandnpm install
# start command (when deploying from repository)node src/index.js
# or when deploying from npm packagenpx full-vk-mcp
# environment variablesVK_ACCESS_TOKEN=...VK_MCP_TRANSPORT=httpVK_MCP_HOST=0.0.0.0VK_MCP_PORT=3000        # or omit to use $PORT (Render auto-sets it)VK_MCP_AUTH_TOKEN=...   # required for public accessVK_MCP_MODE=read        # or your chosen profile/mode

Render note: Render provides the port via the $PORT environment variable. The server automatically falls back to it when VK_MCP_PORT is not set.

Development

bash
# Run tests (schema downloads automatically on first run)npm test
# Start the servernode src/index.js

Project Structure

full-vk-mcp/├── src/│   ├── index.js           # Entry point (transport switching)│   ├── server-factory.js  # MCP server factory│   ├── http-transport.js  # HTTP/SSE transport│   ├── schema-loader.js   # Loads and filters VK API schema│   ├── tool-registry.js   # Builds MCP tools from schema│   ├── param-converter.js # Converts VK params to JSON Schema│   ├── profiles.js        # Built-in profiles│   └── vk-client.js       # VK API HTTP client├── vk-api-schema/         # Official VK API schema (JSON) — see note below├── tests.test.js          # Test suite├── .env                   # Your token (gitignored)├── package.json└── README.md

Note: The published npm package includes runtime files only (src/, README.md, LICENSE, server.json). Tests and development files are kept in the GitHub repository.

VK API Schema

The VK API schema is not included in this repository to keep it lightweight. On the first run (server or tests), it is downloaded automatically from the official VK repository:

https://github.com/VKCOM/vk-api-schema

The schema is saved to vk-api-schema/ in the project root and cached for subsequent runs.

Updating the Schema

To get the latest VK API changes, delete the cached folder and restart:

bash
rm -rf vk-api-schema/node src/index.js  # schema will be re-downloaded automatically

Security

  • Token storage: Use .env or your MCP client's secure environment variables. Never commit tokens.
  • Least privilege: Use VK_MCP_MODE=read if the AI only needs to read data.
  • Section filtering: Exclude sensitive sections like ads, secure if not needed.
  • HTTP mode security: By default, HTTP binds to 127.0.0.1 only. If you bind to 0.0.0.0 (public), VK_MCP_AUTH_TOKEN is required — the server will refuse to start without it. Always use HTTPS in production.

Troubleshooting

IssueSolution
VK_ACCESS_TOKEN is requiredCreate .env file or set the environment variable
Unknown toolCheck that the method name uses snake_case (vk_wall_get not vk.wall.get)
Access deniedYour token lacks the required VK permission scope
Too many toolsUse VK_MCP_INCLUDE_SECTIONS or VK_MCP_MODE=read to filter
HTTP Not AcceptableAdd header Accept: application/json, text/event-stream
HTTP VK_MCP_AUTH_TOKEN is requiredSet auth token when binding to 0.0.0.0

License

MIT

Contributing

Pull requests are welcome! Please open an issue first to discuss major changes.


Made for the Model Context Protocol ecosystem

來源:README.md,提交 be6c21d

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分