A side-by-side look at the Vk MCP Server and Social → Context MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Vk MCP Server for social media work as a local process; choose Social → Context for social media over a hosted endpoint. You can also run both side by side in one mcpServers block.
VK_ACCESS_TOKEN, VK_TIMEOUT_MS, VK_API_BASE.vk_users_get, vk_users_search, vk_wall_get.socialdl_extract, socialdl_metadata, socialdl_download.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Social Media | Social Media |
| Quality signal | 65/100 · Great | 55/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | API key required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | VK_ACCESS_TOKENVK_TIMEOUT_MSVK_API_BASE | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 14 | 0 |
| Directory activity | 5 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 19 | 9 |
| Full listing | View Vk MCP Server | View Social → Context |
vk_users_getLook up VK users by numeric ID or short name (e.g. durov). Use this to resolve a name to an ID before calling other tools, or to check whether a profile is closed.vk_users_searchFind VK users by name, optionally narrowed by city, country, sex or age. Returns matches with a total count; page through them with offset.vk_wall_getRead posts from a user or community wall, newest first. Pass domain for a short address (durov) or owner_id for a numeric one — negative for a community, positive for a person. Each post carries its likes, reposts, comments and views.vk_wall_postPublish a post on a wall. To post in a community, set owner_id to the community ID with a minus sign (-123) and from_group true, otherwise it appears as your personal post on the community wall. Attach media with the attachment string that vk_photos_upload_wall returns. Returns the new post_id.vk_wall_create_commentAdd a comment to a post. owner_id is negative for a community. Returns the new comment_id.vk_wall_get_by_idFetch particular posts by their full IDs in {owner_id}_{post_id} form, e.g. -1_340393. Use it to re-read a post you already know about, such as one you just published.vk_wall_editReplace the text or attachments of an existing post. owner_id is negative for a community. Editing overwrites the previous content, so pass the full new text rather than an addition.vk_wall_deleteDelete a post from a wall. owner_id is negative for a community. This cannot be undone.vk_photos_upload_wallUpload a photo so it can be attached to a post. Takes a URL or a local file path, runs VK's three-step upload, and returns an attachment string like photo-1_2 to pass to vk_wall_post or vk_wall_edit. group_id is positive here, without the minus sign.vk_groups_searchFind communities by keyword, optionally narrowed by type, country, city or sort order. Returns matches with a total count.vk_groups_get_membersList the members of a community. Returns bare user IDs unless you ask for fields, in which case it returns profiles. Many communities hide their member list, which comes back as an access error rather than an empty list.vk_groups_joinJoin a community as the token owner, or send a join request if it is closed. group_id is positive here, without the minus sign.socialdl_extractDownload a social-media link (TikTok, Instagram reel/post/carousel, YouTube, or any direct .mp4) and return it as usable text context: metadata (author, caption, duration), the audio/video transcript, and a vision description (OCR + summary) of each image in a carousel/post. YouTube uses its existing captions when available. Use this to give Claude the content of a video or post the user pasted.socialdl_metadataLightweight lookup: resolve a social-media link to its metadata (author, caption, duration, counts) and media URLs WITHOUT transcribing or running vision. Cheaper than socialdl_extract — use when the caption/context alone is enough.socialdl_downloadResolve a TikTok / Instagram / YouTube link (or direct .mp4/image URL) to its DIRECT download URLs from the source CDN — every video quality, audio track and image, with quality labels. Use when the user wants to DOWNLOAD/save the media instead of transcribing it. No transcription/vision.show_versionShow the current MCP platform and adapter versions.report_bugReport a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.connectReturns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.toolkit_infoReturns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.marketplaceThe official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.authenticateMCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"bulatko-vk-mcp-server": {
"command": "npx",
"args": [
"-y",
"vk-mcp-server"
],
"env": {
"VK_ACCESS_TOKEN": "YOUR_VK_ACCESS_TOKEN_HERE",
"VK_TIMEOUT_MS": "YOUR_VK_TIMEOUT_MS_HERE",
"VK_API_BASE": "YOUR_VK_API_BASE_HERE"
}
}
}
}
{
"mcpServers": {
"social-context": {
"url": "https://api.mcp.ai/p_socialdl"
}
}
}