mcpField
V
VK MCP Server

VK MCP Server

ローカル
github.com/ssm82ソーシャルメディア122 週間前に更新

VK MCP Server について

VK MCP Serverは公式スキーマから生成したツールを通じて、MCP対応AIアシスタントにVK API操作を提供します。読み取り、書き込み、金銭関連操作を制御でき、ローカルとリモートの両方で接続できます。

主な機能

  1. 01スキーマ生成のVK APIツール180種以上
  2. 02プロファイルとセクション・メソッドの絞り込み
  3. 03読み取り・書き込み・金銭モード
  4. 04メディアアップロード補助
  5. 05stdio、HTTP、SSEトランスポート

活用シーン

  1. 01VKユーザーやコミュニティの検索
  2. 02ウォール投稿の閲覧や公開
  3. 03メッセージ、写真、グループの管理
  4. 04統計やマーケット情報の確認

MCP 対応

VK APIの操作をMCPツールとしてAIアシスタントに公開します。stdio、Streamable HTTP、SSE接続に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ssm82-vk": {
"command": "npx",
"args": [
"-y",
"full-vk-mcp"
]
}
}
}
起動コマンドnpx -y full-vk-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmfull-vk-mcp0.2.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

VK MCP サーバー

VKontakte(VK)向けのModel Context Protocol(MCP)サーバーです。VKはロシアおよびCIS諸国で最大のソーシャルネットワークです。

このサーバーを使用すると、AI アシスタント(Claude、Cursor、Windsurf、VS Code など)が標準化されたMCPインターフェースを通じてVKを操作できます。

特長

  • 公式スキーマから自動生成される180以上のVK APIツール(VK_MCP_MODE=allで全セットを利用できます。安全なデフォルト設定では、より小さなサブセットが公開されます) — ユーザー、ウォール、グループ、友達、写真、動画、メッセージ、マーケット、統計、ストーリー、投票など
  • VK APIスキーマから自動生成 — 常に公式APIの最新状態に保たれます
  • 読み取り/書き込み/金銭関連モードのフィルタリング — AIを読み取り専用に制限するか、金銭関連以外の書き込みを許可するか、金銭的に慎重な扱いが必要なメソッドを有効にできます
  • セクションのフィルタリング — 特定のAPIセクションを含めるか除外できます(例:ads、secureを無効化)
  • .env対応 — ローカル開発用に環境ファイルからトークンを読み込みます
  • VKアップロードAPIヘルパー — メディアのワークフロー向けにアップロードサーバーと保存メソッドを公開します
  • ESMベース — 最新のNode.jsモジュールシステムを使用しています
  • 複数のトランスポート — stdio(Claude Desktop/Cursor向け)、Streamable HTTP、SSE(GrokなどのリモートMCPクライアント向け)

前提条件

  • Node.js ≥ 18
  • 必要な権限を持つVKアクセストークン

インストール

オプション1:npxで実行(インストール不要)
npx full-vk-mcp
オプション2:グローバルにインストール
npm install -g full-vk-mcp
full-vk-mcp
オプション3:GitHubからクローン
git clone https://github.com/ssm82/full-vk-mcp.git
cd full-vk-mcp
npm install
node src/index.js

VK APIスキーマは初回実行時に自動的にダウンロードされます。手動での作業は不要です。

設定

1. VKアクセストークン

プロジェクトのルートに.envファイルを作成します。

VK_ACCESS_TOKEN=your_vk_token_here

または、次の場所からトークンを取得します。

必要な権限は用途によって異なります。

  • wall — ウォールへの投稿と読み取り
  • photos — 写真のアップロード
  • groups — コミュニティの管理
  • friends、messages、market、stats — 必要に応じて

セキュリティ: トークンをgitにコミットしないでください。.envファイルはすでに.gitignoreに含まれています。

2. プロファイルを選択(推奨)

セクションやメソッドを手動で設定する代わりに、VK_MCP_PROFILEを使って組み込みプロファイルを利用します。

VK_MCP_PROFILE=minimal npx full-vk-mcp
プロファイルモード説明警告
minimalread基本的な読み取りメソッド安全
socialreadユーザー、友達+追加機能安全
content_readread約25個のコンテンツ閲覧メソッド安全
content_publishall約20個のコンテンツ作成メソッド公開できます
community_managerallウォール、掲示板、グループの管理コミュニティを変更できます
messengerallメッセージ+ユーザー情報messagesスコープが必要
analyticsread統計、ウォール、グループの分析情報安全
moneymoneymoneyモードのフィルタリングで許可される、金銭的に慎重な扱いが必要なすべてのメソッド金銭的に慎重な扱いが必要
adsmoney広告API+ヘルパーメソッド金銭を使用する可能性があります
marketmoneyVKマーケット+アップロードヘルパーショップを変更できます
commercemoneyマーケット、注文、ストア、ギフト、ドーナツ金銭的に慎重な扱いが必要
searchread約10個の検索メソッド安全
full_readreadads/secure以外のすべての読み取りメソッド安全
fullallすべてのVK APIメソッド開発専用

環境変数を使ってプロファイルを拡張できます。

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

環境変数によるプロファイルの拡張: リスト形式の変数(sections、methods、excludes)はプロファイルに追加されます。スカラー値のmodeは環境変数で上書きされます。

3. MCPクライアントの設定
VS Code(Copilot/Claudeなどを使用)

.vscode/mcp.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
    }
  ]
}

クローンしたリポジトリからローカル開発する場合は、次を使用します。

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

.cursor/mcp.jsonを作成します。

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

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
{
  "mcpServers": {
    "vk": {
      "command": "npx",
      "args": ["-y", "full-vk-mcp"],
      "env": {
        "VK_ACCESS_TOKEN": "your_token",
        "VK_MCP_PROFILE": "minimal"
      }
    }
  }
}

クローンしたリポジトリからローカル開発を行う場合は、次を使用します。

{
  "command": "node",
  "args": ["/absolute/path/to/full-vk-mcp/src/index.js"]
}
Windsurf / その他の MCP クライアント

stdio トランスポートを使用し、環境変数で VK_ACCESS_TOKEN を指定します。

4. トランスポートモード

デフォルトでは、サーバーはローカル MCP クライアント向けに stdio トランスポートを使用します。リモート接続を有効にするには、HTTP に切り替えます。

VK_MCP_TRANSPORT用途
stdio (default)Claude Desktop、Cursor、VS Code、Windsurf
httpGrok、ChatGPT、リモート MCP クライアント
ssehttp と同じ(両方のエンドポイントが有効になります)
# HTTP mode for remote clients
VK_ACCESS_TOKEN=your_token VK_MCP_TRANSPORT=http npx full-vk-mcp

環境変数

変数デフォルト説明
VK_ACCESS_TOKEN(必須)VK API アクセストークン
VK_MCP_PROFILE—組み込みプロファイル名(minimal、social、full など)
VK_MCP_MODEreadread — 読み取り専用、write — 金融関連以外の書き込み、money — 金融上の慎重な取り扱いが必要な操作、all — すべて
VK_MCP_INCLUDE_SECTIONS—API セクションのカンマ区切りの許可リスト。プロファイルがない場合は、安全なサブセット(users、groups、wall、friends、photos)が使用されます
VK_MCP_EXCLUDE_SECTIONSads,secure,market,orders,store,gifts,donut,votes (プロファイルなし/明示的な許可リストなしの場合)API セクションのカンマ区切りの拒否リスト。VK_MCP_INCLUDE_SECTIONS または VK_MCP_INCLUDE_METHODS が設定されている場合は無視されます
VK_MCP_INCLUDE_METHODS—メソッドのカンマ区切りの許可リスト(例:users.get,wall.get)
VK_MCP_EXCLUDE_METHODS—メソッドのカンマ区切りの拒否リスト
VK_MCP_MAX_TOOLS—公開するツールの数を制限します
VK_MCP_TRANSPORTstdioトランスポートの種類:stdio、http、または sse
VK_MCP_PORT3000HTTP ポート(Render などの PaaS では $PORT にフォールバックします)
VK_MCP_HOST127.0.0.1バインドアドレス。公開ホストでは 0.0.0.0 を使用します
VK_MCP_AUTH_TOKEN—HTTP トランスポート認証用のベアラートークン(ループバック以外にバインドする場合は必須)
モードによるフィルタリング

サーバーは各 VK API メソッドをリスクレベルに自動分類します。

モード説明セクション
read読み取り専用メソッド安全なサブセット:users、groups、wall、friends、photos
write読み取りと金融関連以外の書き込みアカウントを変更できます(投稿、編集、削除、送信など)
money金融上の慎重な取り扱いが必要な操作のみads、market、orders、store、gifts、donut、votes、選択された secure.*
allすべて読み取り+書き込み+金融関連 — 制限なし
  • 読み取りメソッド — get*、search*、is*、are*、check*、resolve*、find*、count*、lookup*、list*
  • 書き込みメソッド — その他すべて(投稿、編集、削除、送信など)
  • 金融関連メソッド — 金融関連セクションのメソッド、または明示的にタグ付けされたメソッド(secure.getAppBalance など)

AI が VK アカウントに変更を加えないようにするには、VK_MCP_MODE=read を使用します。 広告、市場、または支払い関連のツールが必要な場合は、VK_MCP_MODE=money を使用します。

ローカルでの実行

npm/npx を使用する場合:

VK_ACCESS_TOKEN=your_token npx full-vk-mcp

クローンしたリポジトリを使用する場合:

# With .env file (recommended for development)
node src/index.js

# Or inline
VK_ACCESS_TOKEN=your_token node src/index.js

# Use a profile
VK_ACCESS_TOKEN=your_token VK_MCP_PROFILE=minimal node src/index.js

# Read-only mode
VK_ACCESS_TOKEN=your_token VK_MCP_MODE=read node src/index.js

# Include only specific sections
VK_ACCESS_TOKEN=your_token VK_MCP_INCLUDE_SECTIONS=users,wall node src/index.js
HTTP モード
# Start HTTP server (localhost only, no auth)
VK_ACCESS_TOKEN=your_token VK_MCP_TRANSPORT=http npx full-vk-mcp

# With custom port
VK_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
HTTP エンドポイントのテスト
# Health check
curl http://127.0.0.1:3000/health

MCP プロトコルを完全にテストするには、MCP Inspector を使用します。

npx @modelcontextprotocol/inspector

次に、以下を選択します。

Transport: Streamable HTTP
URL: http://127.0.0.1:3000/mcp

Streamable HTTP はセッションベースです。生の tools/list リクエストは、initialize リクエストの後にのみ、返された Mcp-Session-Id ヘッダーを付けて送信してください。

Inspector の UI で Streamable HTTP を選択し、http://127.0.0.1:3000/mcp を入力します。

利用可能なツール(カテゴリ別)

カテゴリ例数
ウォールvk_wall_get, vk_wall_post, vk_wall_edit, vk_wall_delete, vk_wall_search10+
ユーザーvk_users_get, vk_users_search, vk_users_get_followers5+
グループvk_groups_get, vk_groups_get_members, vk_groups_search, vk_groups_join20+
写真vk_photos_get, vk_photos_get_upload_server, vk_photos_save15+
動画vk_video_get, vk_video_search, vk_video_save10+
メッセージvk_messages_get_history, vk_messages_get_conversations, vk_messages_send20+
友達vk_friends_get, vk_friends_get_online, vk_friends_add10+
マーケットvk_market_get, vk_market_search, vk_market_get_orders10+
ストーリーvk_stories_get, vk_stories_get_upload_server5+
投票vk_polls_create, vk_polls_get_by_id, vk_polls_add_vote5+
統計vk_stats_get, vk_stats_get_post_reach2+
広告vk_ads_get_campaigns, vk_ads_get_ads, vk_ads_get_statistics15+
ほか60以上のセクションdocs、notes、board、fave、notifications、pages、storage など—

合計: 公式 VK API スキーマから自動生成された180以上のツールです。

例

自分のウォール投稿を取得する
Tool: vk_wall_get
Arguments: { "count": 5 }
ユーザーを検索する
Tool: vk_users_search
Arguments: { "q": "Ivan Ivanov", "count": 10 }
コミュニティのメンバーを取得する
Tool: vk_groups_get_members
Arguments: { "group_id": "apiclub", "count": 100 }
投票を作成する
Tool: vk_polls_create
Arguments: {
  "question": "What's your favorite color?",
  "add_answers": "[\"Red\", \"Green\", \"Blue\"]"
}

デプロイ

Render、Railway、Fly.io、または同様の PaaS の場合:

# build command
npm install

# start command (when deploying from repository)
node src/index.js

# or when deploying from npm package
npx full-vk-mcp

# environment variables
VK_ACCESS_TOKEN=...
VK_MCP_TRANSPORT=http
VK_MCP_HOST=0.0.0.0
VK_MCP_PORT=3000        # or omit to use $PORT (Render auto-sets it)
VK_MCP_AUTH_TOKEN=...   # required for public access
VK_MCP_MODE=read        # or your chosen profile/mode

Render に関する注意: Render は $PORT 環境変数を通じてポートを提供します。VK_MCP_PORT が設定されていない場合、サーバーは自動的にこの値を使用します。

開発

# Run tests (schema downloads automatically on first run)
npm test

# Start the server
node src/index.js

プロジェクト構成

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

注意: 公開されている npm パッケージには、実行時に必要なファイルのみ(src/、README.md、LICENSE、server.json)が含まれます。テストファイルと開発用ファイルは GitHub リポジトリにあります。

VK API スキーマ

軽量化のため、VK API スキーマはこのリポジトリに含まれていません。初回実行時(サーバーまたはテスト)、公式 VK リポジトリから自動的にダウンロードされます:

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

スキーマはプロジェクトのルートにある vk-api-schema/ に保存され、以降の実行ではキャッシュが使用されます。

スキーマの更新

最新の VK API の変更を取得するには、キャッシュされたフォルダーを削除して再起動します:

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

セキュリティ

  • トークンの保存: .env または MCP クライアントの安全な環境変数を使用してください。トークンをコミットしないでください。
  • 最小権限: AI がデータの読み取りのみを必要とする場合は、VK_MCP_MODE=read を使用してください。
  • セクションのフィルタリング: 不要な場合は、ads、secure などの機密セクションを除外してください。
  • HTTP モードのセキュリティ: デフォルトでは、HTTP は 127.0.0.1 のみにバインドされます。0.0.0.0(パブリック)にバインドする場合は、VK_MCP_AUTH_TOKEN が必須です。設定されていないと、サーバーは起動を拒否します。本番環境では必ず HTTPS を使用してください。

トラブルシューティング

問題解決策
VK_ACCESS_TOKEN is required.env ファイルを作成するか、環境変数を設定してください
Unknown toolメソッド名が snake_case(vk.wall.get ではなく vk_wall_get)になっていることを確認してください
Access deniedトークンに必要な VK 権限スコープがありません
ツールが多すぎるVK_MCP_INCLUDE_SECTIONS または VK_MCP_MODE=read を使用してフィルタリングしてください
HTTP Not Acceptableヘッダー Accept: application/json, text/event-stream を追加してください
HTTP VK_MCP_AUTH_TOKEN is required0.0.0.0 にバインドする際は認証トークンを設定してください

ライセンス

MIT

コントリビューション

プルリクエストを歓迎します。大きな変更については、まず issue を作成してご相談ください。


Model Context Protocol エコシステム向けに開発

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。