Сценарий из mcp-everything. Актуально на 2026-10-24.
Чат-бот в сообщениях сообщества ВКонтакте без публичного сервера: бот сам забирает новые события.
import random, requests
TOKEN, GROUP_ID, V = "<ключ сообщества>", 123456, "5.199"
H = {"Authorization": f"Bearer {TOKEN}"}
def api(method, **params):
r = requests.post(f"https://api.vk.ru/method/{method}", headers=H, data={**params, "v": V}).json()
if "error" in r:
raise RuntimeError(r["error"])
return r["response"]
lp = api("groups.getLongPollServer", group_id=GROUP_ID)
ts = lp["ts"]
while True:
resp = requests.get(lp["server"], params={"act": "a_check", "key": lp["key"], "ts": ts, "wait": 25}, timeout=35).json()
if "failed" in resp: # ключ устарел — получить новый
lp = api("groups.getLongPollServer", group_id=GROUP_ID); ts = lp["ts"]; continue
ts = resp["ts"]
for u in resp["updates"]:
if u["type"] == "message_new":
msg = u["object"]["message"]
api("messages.send", peer_id=msg["peer_id"], message=f"Вы написали: {msg['text']}", random_id=random.getrandbits(31))
https://api.vk.ruhttps://api.vk.ru/method/<имя-API-метода>Тип: Bearer-токен
Ключ доступа передаётся в каждом запросе в заголовке Authorization: Bearer <КЛЮЧ_ДОСТУПА>. Тип ключа указан у каждого метода: ключ пользователя, ключ сообщества или сервисный ключ приложения.
Ответ:
curl 'https://api.vk.ru/method/users.get' \
-H 'Authorization: Bearer <КЛЮЧ_ДОСТУПА>' \
-F 'user_ids=743784474' \
-F 'fields=bdate' \
-F 'v=5.131'
Ключи: пользователя, сообщества.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
v |
body | string | да | Версия API |
peer_id |
body | integer | нет | Получатель: ID пользователя; 2000000000 + chat_id для беседы; -ID сообщества |
peer_ids |
body | array | нет | Несколько получателей, до 100 |
user_id |
body | integer | нет | ID пользователя |
domain |
body | string | нет | Короткий адрес пользователя |
random_id |
body | integer | нет | Уникальный ID для защиты от повторной отправки |
message |
body | string | нет | Текст; обязателен, если нет attachment |
attachment |
body | string | нет | Вложения |
reply_to |
body | integer | нет | ID сообщения, на которое отвечаем |
forward_messages |
body | array | нет | ID пересылаемых сообщений через запятую |
keyboard |
body | string | нет | Клавиатура бота (JSON) |
payload |
body | string | нет | Полезная нагрузка |
group_id |
body | integer | нет | ID сообщества (с ключом сообщества) |
dont_parse_links |
body | boolean | нет | Не создавать сниппеты ссылок |
disable_mentions |
body | boolean | нет | Отключить уведомления об упоминаниях |
Ключи: пользователя, сообщества. Возвращает данные для запросов к Long Poll серверу событий сообщества.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
v |
body | string | да | Версия API |
group_id |
body | integer | да | ID сообщества |
v — версия API. В документации указана актуальная версия 5.131, а официальная JSON-схема методов VK описывает версию 5.199.application/x-www-form-urlencoded или multipart/form-data (для файлов и данных больше 2 КБ); application/json не поддерживается.lang (ru, uk, be, en, es, fi, de, it) и test_mode=1.owner_id передаётся со знаком минус.Если этого недостаточно — официальная документация: https://dev.vk.com/ru/api/api-requests Вся интеграция одним документом: https://mcp-everything.ru/integrations/vk-api.md