mcp-viva-engage
mcp-viva-engage
Claude AIをViva Engage (Yammer) に接続するオープンソースのModel Context Protocol (MCP) サーバーです。Claudeとの自然な会話を通じて、ホームネットワークのコミュニティの閲覧、投稿の検索、会話の読み取り、返信の投稿が可能です。
作成者: Pranav Joshi
できること
接続後、Claudeに以下のような質問ができます:
「私が所属しているViva Engageコミュニティは何ですか?」
「Business Centralのエラーに関する投稿を検索して」
「Developersコミュニティの最新の会話は何ですか?」
「そのスレッドに…と返信して」
「私のViva Engageフィードを見せて」
Related MCP server: linkedin-mcp-server
重要な制限 — ホームネットワークのみ
このMCPサーバーは、ホームネットワークのみ(ログイン資格情報に紐付いた主要な組織ネットワーク)で動作します。
なぜ外部ネットワークにアクセスできないのですか?
Viva Engageは2種類のネットワークをサポートしています:
ホームネットワーク — 主要な組織(例:会社のViva Engage)
外部ネットワーク — ゲストメンバーとして参加している他の組織がホストするコミュニティ(例:MicrosoftのBC Partnersコミュニティ)
Yammer REST API (www.yammer.com/api/v1) は、どのようなパラメータやトークンを使用しても、ホームネットワークからのデータのみを返します。外部ネットワークには、完全なWebベースのログイン後にのみ利用可能なブラウザセッションCookieが必要であり、これはAPI呼び出しだけでは再現できません。
Microsoftの新しいGraph API (graph.microsoft.com) も外部ネットワークをサポートしておらず、自身のテナント内のネイティブモードのネットワークでのみ動作します。
これはMicrosoft APIの制限であり、このMCPサーバーの制限ではありません。将来的にMicrosoftがAPIを拡張して外部ネットワークをサポートすれば、このサーバーもそれに対応するように更新可能です。
仕組み
You ask Claude a question
↓
Claude calls this MCP server
↓
Server calls Viva Engage API using YOUR login
↓
Returns data only YOU can already see
↓
Claude answers your questionプライバシー: 各ユーザーが独自のAzureアプリを登録し、自身のMicrosoft資格情報を使用します。データが他者のインフラストラクチャを経由することはありません。ログイントークンは、あなたのマシン上にのみ暗号化されて保存されます。
前提条件
Node.js v18以上
Viva Engageにアクセス可能なMicrosoftの職場/学校アカウント
ステップ1 — Azureアプリの登録
これは初回のみのセットアップ(約10分)です。自身のMicrosoftアカウントでアプリを登録します。他の誰もあなたのアプリを使用することはできません。あなたの資格情報にのみ紐付いています。
portal.azure.com にアクセスし、職場/学校のMicrosoftアカウントでサインインします
**「アプリの登録」**を検索 → **「+ 新規登録」**をクリック
以下を入力:
名前:
mcp-viva-engage(任意)サポートされているアカウントの種類:
複数のEntra IDテナント→すべてのテナントを許可を選択リダイレクトURI:
プラットフォーム =
パブリッククライアント/ネイティブ (モバイルおよびデスクトップ)URI =
http://localhost
**「登録」**をクリック
概要ページで、以下の両方をコピーして保存してください:
アプリケーション (クライアント) ID
ディレクトリ (テナント) ID
API権限の追加
左側のサイドバーで**「APIのアクセス許可」**をクリック
「+ アクセス許可の追加」 → **「すべてのAPI」**タブ → **「Yammer」**を検索
**「Yammer」**をクリック → **「委任されたアクセス許可」**をクリック
以下の4つの権限にチェックを入れます:
✅
user_impersonation✅
Community.Read.All✅
EngagementConversation.ReadWrite.All✅
Storyline.ReadWrite.All
**「アクセス許可の追加」**をクリック
職場/学校アカウントに関する注意: 初回ログイン前に、組織のIT管理者がこのアプリへの同意を付与する必要がある場合があります。これは初回のみのステップです。サーバーを初めて実行する際、ログイン画面から直接承認リクエストを送信できます。
ステップ2 — クローンとビルド
# Clone the repo
git clone https://github.com/pranav4186/mcp-viva-engage.git
cd mcp-viva-engage
# Install dependencies
npm install
# Build
npm run buildステップ3 — 資格情報の設定
サンプルenvファイルをコピーします:
# Windows
copy .env.example .env
# Mac/Linux
cp .env.example .env.envを開き、ステップ1で取得した値を入力します:
AZURE_CLIENT_ID=your-application-client-id-here
AZURE_TENANT_ID=your-directory-tenant-id-here重要:
.envファイルをGitHubにコミットしないでください。これを防ぐために既に.gitignoreに含まれています。
ステップ4 — Claude Desktopへの接続
Claude Desktopの設定ファイルを開きます:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMac:
~/Library/Application Support/Claude/claude_desktop_config.json
mcpServersセクションにviva-engageサーバーを追加します:
{
"mcpServers": {
"viva-engage-mcp": {
"command": "node",
"args": ["C:/path/to/mcp-viva-engage/dist/server.js"],
"env": {
"AZURE_CLIENT_ID": "your-application-client-id-here",
"AZURE_TENANT_ID": "your-directory-tenant-id-here"
}
}
}
}
C:/path/to/mcp-viva-engageを、リポジトリをクローンした実際のパスに置き換えてください。 Windowsのパスでは、スラッシュ/またはダブルバックスラッシュ\を使用できます。
保存後、Claude Desktopを完全に終了して再起動してください。
ステップ5 — 初回ログイン
ClaudeにViva Engageについて初めて質問すると:
Microsoftのログインページが記載されたブラウザウィンドウが自動的に開きます
職場/学校のMicrosoftアカウントでサインインします
権限を承認します
ブラウザに**「Login successful!」**と表示されます
Claudeがリクエストを完了します
セッションはマシン上で暗号化されて保持されます。Claude Desktopを再起動した際、再度ログインが必要になる場合があります。
利用可能なツール
ツール | 説明 |
| 所属しているすべてのViva Engageネットワークを取得 |
| ホームネットワーク内のすべてのコミュニティを一覧表示 |
| IDを指定して特定のコミュニティの詳細を取得 |
| 特定のコミュニティ内のすべての投稿を取得 |
| 会話スレッド内のすべてのメッセージを取得 |
| ホームネットワーク全体で投稿を検索 |
| コミュニティに新しいメッセージを投稿 |
| 既存の会話スレッドに返信 |
| 個人のViva Engageストーリーラインフィードを取得 |
セキュリティとプライバシー
🔐 独自のAzureアプリ | 各ユーザーが独自のアプリを登録 — 共有インフラストラクチャなし |
🔐 独自の資格情報 | 自身のMicrosoftアカウントでログイン |
🔐 暗号化されたトークン保存 | トークンはWindows DPAPI(Mac/Linuxではプレーンファイル)を使用して暗号化 |
🔐 コード内に秘密情報なし | クライアントIDとテナントIDはローカルの |
🔐 委任された権限 | サーバーは、あなたがViva Engageですでに閲覧可能なもののみを参照可能 |
🔐 パスワードに非接触 | 認証は完全にMicrosoftが処理 |
プロジェクト構造
mcp-viva-engage/
├── src/
│ ├── auth/
│ │ └── auth.ts # Microsoft OAuth login with DPAPI encrypted cache
│ ├── yammerClient.ts # Viva Engage / Yammer API client
│ └── server.ts # MCP server and tool definitions
├── .env.example # Template — copy to .env and fill in your values
├── .gitignore # Prevents .env from being committed
├── package.json
├── tsconfig.json
└── README.mdトラブルシューティング
初回ログイン時に「承認が必要です」と表示される
組織が新しいアプリに対して管理者の同意を求めています。IT管理者にAzureポータル → エンタープライズアプリケーション →
mcp-viva-engageを検索 → 管理者の同意を付与するよう依頼してください。これは初回のみの操作です。
Claude Desktopにサーバーが表示されない
設定ファイルを編集した後、Claude Desktopを完全に終了して再起動してください。
dist/server.jsへのパスが正しいか確認してください。
再起動後に再度ログインが必要になる
暗号化されたトークンの有効期限が切れている可能性があります。再度ログインしてください。ログイン後にセッションがキャッシュされます。
ホームネットワークのコミュニティしか表示されない
これは仕様です。上記の重要な制限セクションを参照してください。Yammer REST APIはホームネットワークへのアクセスのみをサポートしています。
Windowsでのパスの問題
設定ファイルでは、スラッシュ
C:/path/to/dist/server.jsまたはダブルバックスラッシュC:\\path\\to\\dist\\server.jsを使用してください。
既知の制限
ホームネットワークのみ — 外部ネットワーク(例:Microsoft BC Partnersコミュニティ)には、公開されているMicrosoft APIではアクセスできません。上記の説明を参照してください。
レート制限 — Yammer APIは、ユーザー1人あたり、アプリ1つあたり、30秒間に10リクエストまで許可されています。
読み取り専用検索 — 検索結果はViva Engageがインデックスしているものに限定されます。
ロードマップ
[ ] ユーザーがローカル設定を不要にするため、リモートコネクタに変換
[ ] 大規模なコミュニティフィードのページネーションサポートを追加
[ ] より安全なトークン保存のためにWindows資格情報マネージャーをサポート
[ ] 将来的にMicrosoftがAPIサポートを追加した場合、外部ネットワークをサポート
ライセンス
MIT — 詳細はLICENSEを参照してください。
免責事項
これは独立したオープンソースプロジェクトであり、MicrosoftやViva Engageとは提携、推奨、サポートされていません。自己責任で使用してください。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables sending and receiving Instagram Direct Messages, managing conversations, downloading media, viewing user profiles and stories, and interacting with posts through natural language in Claude.
- AlicenseAqualityDmaintenanceEnables Claude Desktop to manage your LinkedIn profile and company pages, including posting, reading posts, and fetching profile information.71774MIT
- AlicenseAqualityDmaintenanceEnables Claude to interact with LinkedIn for posting, commenting, sharing media, and viewing feed and profile.91773MIT
- AlicenseNot gradedqualityBmaintenanceConnects Claude with Microsoft 365 services such as Email, Calendar, Teams, OneDrive, and more through the Microsoft Graph API.4616MIT
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pranav4186/mcp-viva-engage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server