Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
VK (VKontakte): read walls, users, communities and stats; publish, edit and comment on posts.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
VK_ACCESS_TOKEN, VK_SERVICE_KEY标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"vk": {
"command": "npx",
"args": [
"-y",
"vk-mcp-server"
],
"env": {
"VK_ACCESS_TOKEN": "your-value",
"VK_SERVICE_KEY": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add vk --env VK_ACCESS_TOKEN=your-value --env VK_SERVICE_KEY=your-value -- npx -y vk-mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"vk": {
"command": "npx",
"args": [
"-y",
"vk-mcp-server"
],
"env": {
"VK_ACCESS_TOKEN": "your-value",
"VK_SERVICE_KEY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"vk": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"vk-mcp-server"
],
"env": {
"VK_ACCESS_TOKEN": "your-value",
"VK_SERVICE_KEY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 bulatko 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:VK_ACCESS_TOKEN, VK_SERVICE_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.9.0)于27天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Zendesk
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Zendesk MCP Pack — tickets, users, organizations via OAuth.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Model Context Protocol (MCP) server for VK (VKontakte) social network API
English · Русский · Сайт (RU)
Enables AI assistants like Claude to interact with VK through a standardized interface.
Walls, communities and profiles on a host that supports MCP Apps. The model gets the same structured data either way — this is what the person sees.
--check names which one you hold and probes what it can actually do, --login walks the VK ID flow for the reading kind, and every VK error carries the fix rather than the code aloneDownload 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 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"}}'
npx vk-mcp-server
Or install globally with npm install -g vk-mcp-server.
Also available in the official MCP Registry:
io.github.bulatko/vk
To let the assistant post, you need a community token. Open a community you manage → Manage → API usage → Access tokens → Create token, ticking wall, photos, stories, messages and manage. Three clicks, no app, never expires, tied to no browser or IP. It posts, comments and publishes stories as the community.
Add a service key next to it, and the assistant reads walls too. VK refuses a community token wall reads (error 27). Set the service key from your VK app's settings page as VK_SERVICE_KEY, and the server makes every read the token is refused with the key instead — writes never go to it:
"env": {
"VK_ACCESS_TOKEN": "vk1.a...community token", "VK_SERVICE_KEY": "...service key" }
What no token VK issues to a new app can do, checked against the live API in October 2026: edit or delete posts, upload wall photos, read statistics, likes, photo albums, search or the newsfeed. VK keeps those for full user tokens, which it no longer grants.
For public reads alone, the service key on its own is enough (as VK_SERVICE_KEY or VK_ACCESS_TOKEN), or sign in as yourself:
npx vk-mcp-server --login <YOUR_APP_ID>
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](docs/SETUP.md) — every step with the exact screens, what the scopes unlock, remote installs, and what each error means.
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" } } } }
Add to your project's .mcp.json:
{
"mcpServers": { "vk": { "command": "npx", "args": ["-y", "vk-mcp-server"], "env": { "VK_ACCESS_TOKEN": "your_access_token_here" } } } }
| Variable | Required | Default | Purpose |
|---|---|---|---|
VK_ACCESS_TOKEN | for tool calls | — | The token tools act with, usually a community token. The server starts and lists its tools without one; calling a tool then returns an error saying so |
VK_SERVICE_KEY | no | — | Service key from your VK app. Reads the access token is refused (a wall, under a community token) are made with it; never used for writes. On its own, it is enough for public reads |
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.
| Command | What it does |
|---|---|
npx vk-mcp-server | Runs the MCP server (this is what your client calls) |
npx vk-mcp-server --login | Gets a token through VK ID in your browser |
npx vk-mcp-server --check | Reports what your token is and which tools it can use |
npx vk-mcp-server --help | Lists the commands and environment variables |
Start with:
VK_ACCESS_TOKEN=your_token npx vk-mcp-server --check
It 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 |
|---|---|
error 8: Application is blocked | 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. |
error 5: User authorization failed | The token is not accepted: revoked, deleted or replaced by a newer one — or pasted with quotes, spaces or a trailing comment. Check it is the whole token; if so, create a fresh one where it came from (a community token: Manage → API usage → Access tokens). --login reissues only VK ID tokens, which cannot post. |
error 27: Group authorization failed | A community token asked for something VK keeps from it — reading a wall, say. Set VK_SERVICE_KEY and reads go to the key; edits, deletions and statistics stay closed. |
error 1051 or error 28 | A VK ID token or a service key asked for a method closed to it. To post, use a community token. |
error 15: Access denied | The data is restricted — a private profile, or a community that hides its members. |
error 5 with subcode 1130 | 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. |
Security Error when authorising | The old implicit OAuth flow. Use --login, which does the current VK ID flow. |
No VK token configured on every tool | The server is running but your client never passed VK_ACCESS_TOKEN to it. Check the env block in your client config — a token in your shell does not reach a server the client spawns itself. |
The server turns these into messages that say what to do, so the model can usually explain the fix without you reading this table.
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.
The model sees only the tools your token reaches. On start the server asks VK which token it holds — community, user, VK ID or service key — and leaves out the tools VK would refuse it, so the model does not discover the limits one error at a time. `vk_to
只显示了开头部分;其余内容请在仓库中阅读