Skip to main content
Glama

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以上

  • Claude Desktop

  • Viva Engageにアクセス可能なMicrosoftの職場/学校アカウント


ステップ1 — Azureアプリの登録

これは初回のみのセットアップ(約10分)です。自身のMicrosoftアカウントでアプリを登録します。他の誰もあなたのアプリを使用することはできません。あなたの資格情報にのみ紐付いています。

  1. portal.azure.com にアクセスし、職場/学校のMicrosoftアカウントでサインインします

  2. **「アプリの登録」**を検索 → **「+ 新規登録」**をクリック

  3. 以下を入力:

    • 名前: mcp-viva-engage (任意)

    • サポートされているアカウントの種類: 複数のEntra IDテナントすべてのテナントを許可を選択

    • リダイレクトURI:

      • プラットフォーム = パブリッククライアント/ネイティブ (モバイルおよびデスクトップ)

      • URI = http://localhost

  4. **「登録」**をクリック

  5. 概要ページで、以下の両方をコピーして保存してください:

    • アプリケーション (クライアント) ID

    • ディレクトリ (テナント) ID

API権限の追加

  1. 左側のサイドバーで**「APIのアクセス許可」**をクリック

  2. 「+ アクセス許可の追加」**「すべてのAPI」**タブ → **「Yammer」**を検索

  3. **「Yammer」**をクリック → **「委任されたアクセス許可」**をクリック

  4. 以下の4つの権限にチェックを入れます:

    • user_impersonation

    • Community.Read.All

    • EngagementConversation.ReadWrite.All

    • Storyline.ReadWrite.All

  5. **「アクセス許可の追加」**をクリック

職場/学校アカウントに関する注意: 初回ログイン前に、組織の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.json

  • Mac: ~/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について初めて質問すると:

  1. Microsoftのログインページが記載されたブラウザウィンドウが自動的に開きます

  2. 職場/学校のMicrosoftアカウントでサインインします

  3. 権限を承認します

  4. ブラウザに**「Login successful!」**と表示されます

  5. Claudeがリクエストを完了します

セッションはマシン上で暗号化されて保持されます。Claude Desktopを再起動した際、再度ログインが必要になる場合があります。


利用可能なツール

ツール

説明

get_networks

所属しているすべてのViva Engageネットワークを取得

get_communities

ホームネットワーク内のすべてのコミュニティを一覧表示

get_community_by_id

IDを指定して特定のコミュニティの詳細を取得

get_community_messages

特定のコミュニティ内のすべての投稿を取得

get_thread

会話スレッド内のすべてのメッセージを取得

search_messages

ホームネットワーク全体で投稿を検索

post_message

コミュニティに新しいメッセージを投稿

reply_to_message

既存の会話スレッドに返信

get_storyline_feed

個人のViva Engageストーリーラインフィードを取得


セキュリティとプライバシー

🔐 独自のAzureアプリ

各ユーザーが独自のアプリを登録 — 共有インフラストラクチャなし

🔐 独自の資格情報

自身のMicrosoftアカウントでログイン

🔐 暗号化されたトークン保存

トークンはWindows DPAPI(Mac/Linuxではプレーンファイル)を使用して暗号化

🔐 コード内に秘密情報なし

クライアントIDとテナントIDはローカルの.envファイルのみに保持

🔐 委任された権限

サーバーは、あなたが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とは提携、推奨、サポートされていません。自己責任で使用してください。

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables sending and receiving Instagram Direct Messages, managing conversations, downloading media, viewing user profiles and stories, and interacting with posts through natural language in Claude.
  • A
    license
    A
    quality
    D
    maintenance
    Enables Claude Desktop to manage your LinkedIn profile and company pages, including posting, reading posts, and fetching profile information.
    7
    177
    4
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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