@theyahia/vk-mcp
This server lets AI assistants interact with VK (ВКонтакте) via an MCP interface.
get_wall – Fetch posts from a user's or community's wall.
post_wall – Publish a new post to a user's or community's wall, with optional attachments and scheduled publishing.
search_posts – Search news feed posts by keywords, with optional time range filtering.
get_user – Get profile information for VK users by ID or screen name.
get_groups – Get community information by ID or short name.
get_friends – List a user's friends, with ordering, fields, and pagination options.
send_message – Send a message to a user, chat, or community.
get_stats – Retrieve community statistics for a specified date range.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@theyahia/vk-mcpShow my last 5 wall posts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
VK MCP — публикация во ВКонтакте и работа со стеной из нейросети
Если вы искали, как постить во ВКонтакте прямо из диалога с ИИ, читать стену сообщества, разбирать личные сообщения или снимать статистику группы без ручных выгрузок — это оно. 8 инструментов поверх VK API: записи со стены, публикация, сообщения, друзья, пользователи, группы и статистика.
Часть серии WWmcp (46 серверов) by @theYahia.
Установка
Claude Desktop
{
"mcpServers": {
"vk": {
"command": "npx",
"args": ["-y", "@theyahia/vk-mcp"],
"env": { "VK_ACCESS_TOKEN": "your-token" }
}
}
}Claude Code
claude mcp add vk -e VK_ACCESS_TOKEN=your-token -- npx -y @theyahia/vk-mcpVS Code / Cursor
{
"servers": {
"vk": {
"command": "npx",
"args": ["-y", "@theyahia/vk-mcp"],
"env": { "VK_ACCESS_TOKEN": "your-token" }
}
}
}Smithery
npx @smithery/cli install @theyahia/vk-mcp --client claudeТребуется
VK_ACCESS_TOKEN. Получите на vk.com/dev.
Related MCP server: discord-mcp
Транспорт
Режим | Запуск |
stdio (по умолчанию) |
|
Streamable HTTP |
|
Инструменты (8)
Инструмент | Метод VK API | Описание |
|
| Записи со стены пользователя или сообщества |
|
| Публикация записи на стене |
|
| Поиск постов по ключевым словам |
|
| Информация о пользователях |
|
| Информация о сообществах |
|
| Список друзей пользователя |
|
| Отправка сообщения |
|
| Статистика сообщества |
Skills (Prompts)
Skill | Описание |
| Опубликуй пост в группу VK |
| Статистика группы VK за N дней |
Примеры
Покажи последние посты со стены Дурова
Опубликуй пост "Привет мир!" в группу 123456
Найди посты про AI в VK
Информация о группе team
Покажи моих друзей
Статистика группы 123456 за 30 днейРазработка
npm install
npm test # Vitest
npm run build # TypeScript
npm run dev # tsx watchAPI
Base URL:
https://api.vk.com/method/API version:
v=5.199Auth:
VK_ACCESS_TOKEN(env)Retry: 3 попытки с exponential backoff (429, 5xx)
Timeout: 10 секунд
Часть серии WWmcp
46 серверов: github.com/theYahia/WWmcp
Лицензия
MIT
Available Tools
8 toolsget_friendsC
Список друзей пользователя ВКонтакте.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество друзей | |
| order | No | Сортировка | hints |
| fields | No | Дополнительные поля | nickname,city,photo_200 |
| offset | No | Смещение | |
| user_id | No | ID пользователя (по умолчанию — текущий) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as read-only nature, pagination behavior, authentication requirements, or rate limits. It only states the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and to the point, with no wasted words. However, it is in Russian, which may not be ideal for all agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters and no output schema. The description does not explain return values, pagination, or the effect of parameters like 'fields'. It is insufficient for an agent to use correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to add parameter meaning. The baseline is 3; the description adds no extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it lists friends of a VK user, which is clear and specific. It distinguishes from sibling tools like get_user or get_groups, though no explicit differentiation is needed as no other tool returns friends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no exclusions, and no context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_groupsB
Информация о сообществах ВКонтакте по ID или короткому имени.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Дополнительные поля | members_count,description,activity,status |
| group_ids | Yes | ID или короткие имена групп через запятую |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It does not disclose whether the tool is read-only, requires authentication, handles errors (e.g., invalid IDs), or has rate limits. The description is silent on safety and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundancy. However, it could be slightly expanded to include key context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with 2 parameters and no output schema, the description is minimally adequate but lacks details on return format, pagination, or error handling. It does not fully equip an agent to confidently invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters, so schema coverage is 100%. The description adds no additional meaning beyond the schema parameter descriptions. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves VKontakte community information by ID or short name. It uses a specific verb ('get') and resource ('groups'), differentiating it from siblings like get_user or get_wall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. An explicit comparison with siblings or usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsB
Статистика сообщества ВКонтакте за указанный период.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | Конечная дата (YYYY-MM-DD) | |
| group_id | Yes | ID сообщества | |
| date_from | Yes | Начальная дата (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. The description only states the purpose but does not mention any behavioral traits such as read-only nature, authentication requirements, rate limits, or whether data is aggregate or detailed. For a statistics tool, users need to know if mutations are possible (they are not), but this is not clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with no extraneous words. It is front-loaded with the essential purpose. However, it might be too brief, sacrificing useful detail, but it earns points for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the parameters (no enums, no nested objects) and no output schema, the description is minimally complete. However, it lacks information about the output format or what specific statistics are returned, which is crucial for an agent to use the tool effectively. A more complete description would outline expected return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents all three parameters (group_id, date_from, date_to) with clear descriptions (e.g., YYYY-MM-DD format). The description adds no extra meaning beyond stating 'for the specified period,' which aligns with the schema. With 100% schema coverage, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides VK community statistics for a specified period, which distinguishes it from sibling tools focused on wall posts, users, groups, etc. However, it does not specify what type of statistics (e.g., reach, engagement) which would enhance clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the name and description—statistics for a community over a time range. However, no explicit guidance is given on when to prefer this over alternatives or any prerequisites (e.g., authentication). The sibling tools are distinct enough that confusion is unlikely, but better guidelines would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userB
Информация о пользователях ВКонтакте по ID или screen_name.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Дополнительные поля | photo_200,city,followers_count,screen_name |
| user_ids | Yes | ID пользователей через запятую или screen_name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states basic functionality with no mention of side effects, permissions, rate limits, or data freshness. For a read tool, this is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler. All information is front-loaded. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and does not explain return structure or available fields. However, for a simple lookup tool with well-documented parameters, it is minimally adequate but could clarify expected behavior (e.g., multiple IDs, error states).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both params have descriptions). The description adds no new parameter details beyond the schema's 'ID or screen_name' and 'additional fields' hints. Baseline 3 is appropriate since schema already covers parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves user information by ID or screen_name, which is a specific verb-resource combination. It helps distinguish from siblings like get_friends (friends list) or get_groups (groups), but could be improved by mentioning returned fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_friends or get_wall. The description does not include usage context, prerequisites, or differentiation from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallB
Получить записи со стены пользователя или сообщества ВКонтакте.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Количество записей | |
| offset | No | Смещение | |
| owner_id | Yes | ID владельца стены (отрицательный для групп) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose any behavioral traits like authentication requirements, rate limits, or what happens if the wall is private or empty. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words. It is concise, though slightly more information could improve it without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides minimal context. It lacks return format or pagination behavior, but the tool is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters documented. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get posts from the wall of a VK user or community' using a specific verb and resource. It distinguishes itself from siblings like post_wall (create) and search_posts (search), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as search_posts or post_wall. The description only implies a read operation, but lacks exclusions or usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_wallB
Опубликовать запись на стене пользователя или сообщества ВКонтакте.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Текст поста | |
| owner_id | Yes | ID владельца стены (отрицательный для групп) | |
| from_group | No | 1 — от имени группы, 0 — от пользователя | |
| attachments | No | Вложения: photo123_456,video789_012 | |
| publish_date | No | Отложенная публикация (unix timestamp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It does not mention authorization requirements, side effects, rate limits, or that this is a write operation, leaving behavioral traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous words, efficiently conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about return values, error conditions, and output schema. For a mutation tool with no output schema, the agent would benefit from knowing what the tool returns to confirm success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters. The description adds no additional parameter-level meaning beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool posts a record on a VK wall, using a specific verb ('опубликовать') and resource ('запись на стене'). It distinguishes well from sibling tools like get_wall (reading) and send_message (messaging).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for posting walls but provides no explicit guidance on when to use it versus alternatives, no prerequisites, and no exclusion criteria. Usage is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_postsC
Поиск постов в новостной ленте ВКонтакте по ключевым словам.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Поисковый запрос | |
| count | No | Количество результатов | |
| end_time | No | Конец периода (unix timestamp) | |
| start_time | No | Начало периода (unix timestamp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only mentions searching by keywords, omitting key behavioral details such as whether authentication is required, how results are sorted, pagination, or any limitations on post visibility (public vs private). The schema implies time range and count, but the description adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Russian (8 words) that efficiently states the tool's purpose. There is no extraneous information or redundancy; every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters (1 required), no output schema, and no annotations, the description is insufficiently complete. It fails to describe return values, sorting, pagination, or any constraints. A more complete description would include result format and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter explained (q, count, start_time, end_time). The description itself does not add any additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches posts in VKontakte news feed by keywords. It specifies the verb (search), resource (posts), scope (news feed), and method (keywords). However, it does not differentiate from sibling tools like 'get_wall' which retrieves posts from a specific wall, leaving potential confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_wall'. The description only states what it does, with no explicit when-to-use, when-not-to-use, or alternative suggestions. This is a significant gap for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageB
Отправить сообщение пользователю или в беседу ВКонтакте.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Текст сообщения | |
| peer_id | Yes | ID получателя (user_id, 2000000000+chat_id, или -group_id) | |
| attachment | No | Вложения через запятую |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states the action without disclosing side effects, authentication needs, rate limits, or whether the message is sent immediately. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core functionality without unnecessary words. It is appropriately sized and front-loaded with the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should provide more context about return values, error handling, or behavioral considerations. It only states the action, leaving the agent uninformed about success/failure responses or other important details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 3 parameters with descriptions, achieving 100% coverage. The description does not add new meaning beyond the schema. The baseline of 3 is appropriate as the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: sending a message to a user or conversation in VKontakte. The verb 'send' and the resource 'message' are specific, and it distinguishes itself from sibling tools like get_wall or get_user which are for reading content or user info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool vs alternatives. However, the sibling tools are all different in function (walls, users, groups), so usage is implied for messaging. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v1.1.0- First observed
get_friends - First observed
get_groups - First observed
get_stats - First observed
get_user - First observed
get_wall - First observed
post_wall - First observed
search_posts - First observed
send_message
TDQS
Scored across 8 tools
Each tool has a distinct purpose: wall operations, user/group info, friends list, messaging, and stats. No overlap between tools, making selection clear.
All tools follow a consistent verb_noun snake_case pattern (e.g., get_wall, post_wall, send_message). No mixing of conventions.
With 8 tools, the set is well-scoped for a VK API server. It covers essential operations without being excessive or insufficient.
Covers major VK features (wall, user, groups, friends, messaging, search, stats). Minor gaps like comments or media uploads exist but do not hinder basic workflows.
Maintenance
Related MCP Connectors
An MCP server that provides tools to validate an email address using Dilli Email Validation API.
8 MCP servers, 104+ tools: memory, social, PDF, email, images, calendar, scheduler, files.
Meta Ads MCP server with 47 tools for campaigns, creatives, audiences, and insights.
An MCP server that automatically collects feedback on your MCP server.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server providing access to Lolzteam Market and Forum APIs with 271 tools for account trading, forum interactions, and more.5MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for managing Discord servers with 73 tools including channels, roles, messages, moderation, voice, events, forums, emojis, invites, and permissions.127 npmMIT
- AlicenseAqualityBmaintenanceMCP server for TGStat API that provides analytics for Telegram channels, including search, posts, statistics, mentions, and comparison across 8 tools.2020 npm4MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server for LinkedIn automation that provides tools for automatically posting messages to LinkedIn, scheduling posts, and managing LinkedIn API integration.1-