プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

MCP Teams

作者:dockndevaiバージョン 0.2.0i★ –iパソコンで動く
レジストリ名io.github.dockndevai/mcp-teams

インストール

概要

作者による説明(英語の原文)

Read Microsoft Teams teams, channels, chats and messages, and post/reply/send, safe by default.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: チャット・メール
  • 入力が必要なもの:TEAMS_CLIENT_SECRET, TEAMS_TOKEN

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: TEAMS_CLIENT_ID, TEAMS_TENANT_ID, TEAMS_CLIENT_SECRET, TEAMS_TOKEN, TEAMS_MODE, TEAMS_ALLOW_SEND

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "teams": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-teams"
      ],
      "env": {
        "TEAMS_CLIENT_ID": "your-value",
        "TEAMS_TENANT_ID": "your-value",
        "TEAMS_CLIENT_SECRET": "your-value",
        "TEAMS_TOKEN": "your-value",
        "TEAMS_MODE": "your-value",
        "TEAMS_ALLOW_SEND": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add teams --env TEAMS_CLIENT_ID=your-value --env TEAMS_TENANT_ID=your-value --env TEAMS_CLIENT_SECRET=your-value --env TEAMS_TOKEN=your-value --env TEAMS_MODE=your-value --env TEAMS_ALLOW_SEND=your-value -- npx -y @dockndevai/mcp-teams

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "teams": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-teams"
      ],
      "env": {
        "TEAMS_CLIENT_ID": "your-value",
        "TEAMS_TENANT_ID": "your-value",
        "TEAMS_CLIENT_SECRET": "your-value",
        "TEAMS_TOKEN": "your-value",
        "TEAMS_MODE": "your-value",
        "TEAMS_ALLOW_SEND": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "teams": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-teams"
      ],
      "env": {
        "TEAMS_CLIENT_ID": "your-value",
        "TEAMS_TENANT_ID": "your-value",
        "TEAMS_CLIENT_SECRET": "your-value",
        "TEAMS_TOKEN": "your-value",
        "TEAMS_MODE": "your-value",
        "TEAMS_ALLOW_SEND": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • TEAMS_CLIENT_ID env
    Entra (Azure AD) app (client) id. For browser sign-in, register a public client with redirect URI http://localhost.
  • TEAMS_TENANT_ID env
    Directory tenant: a tenant id, or common | organizations | consumers (default common).
  • TEAMS_CLIENT_SECRET 秘密 env
    App secret for app-only (client-credentials) auth. Omit to use interactive browser sign-in.
  • TEAMS_TOKEN 秘密 env
    A pre-obtained Microsoft Graph bearer token (alternative to browser or app-only auth).
  • TEAMS_MODE env
    Access mode: read-only | read-write | admin. Starts read-only; writes need read-write.
  • TEAMS_ALLOW_SEND env
    Set true to permit posting messages (channel/chat send & reply). Off by default.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント dockndevai で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

チャット・メールのほかのサーバーとの比較i

  • このカテゴリのほかの1785件のうち0%よりスターが多い
  • このカテゴリのほかの1785件のうち41%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1785件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

MCP Teamsは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:TEAMS_CLIENT_SECRET, TEAMS_TOKEN

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは39 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Vexa

作者:Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

クラウドで動く★ 2,949Apache-2.02 か月前更新
インストール

emailmd

作者:anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

パソコンでもクラウドでも★ 1,385MIT32 日前更新
インストール

MCP WhatsApp Cloud

作者:codespar

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

パソコンで動く★ 277MIT5 か月前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

mcp-teams

A safe-by-default Model Context Protocol server for Microsoft Teams, over Microsoft Graph. It lets an agent read and operate Teams — list joined teams, channels and members, read channel messages and threaded replies, read 1:1/group chats and their messages, and (in higher modes) post to channels, reply in threads, send chat messages, and soft-delete a message.

Browser sign-in: on first run it opens your browser to the Microsoft sign-in page, then caches the token and refreshes it silently — the server never sees your password.

Part of the dockndevai MCP server suite — one governance model across all of them.

What it gives an agent

The server starts read-only (see Safe by default); higher-capability tools are only registered when you raise the mode.

ToolForNeeds mode
whoamiconfirm which account is in useread-only
list_teamsteams the user has joinedread-only
list_channelschannels in a teamread-only
list_team_membersmembers of a teamread-only
list_channel_messagesrecent messages in a channelread-only
get_channel_messageone channel message + bodyread-only
list_message_repliesa channel message's threadread-only
list_chatsthe user's 1:1 / group chatsread-only
list_chat_messagesmessages in a chatread-only
send_channel_messagepost to a channelread-write + TEAMS_ALLOW_SEND
reply_channel_messagereply in a channel threadread-write + TEAMS_ALLOW_SEND
send_chat_messagesend a chat messageread-write + TEAMS_ALLOW_SEND
delete_channel_messagesoft-delete your own messageadmin + TEAMS_ALLOW_DELETE

Install

npx -y @dockndevai/mcp-teams

You need an Entra (Azure AD) app registration. For the default browser sign-in, register a public client and add the redirect URI http://localhost (platform: *Mobile and desktop applications*), then use its Application (client) ID as TEAMS_CLIENT_ID. Grant delegated Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Read.All (and ChannelMessage.Send / Chat.ReadWrite to post). No client secret is needed for interactive use.

Configure

{

"mcpServers": { "teams": { "command": "npx", "args": ["-y", "@dockndevai/mcp-teams"], "env": { "TEAMS_CLIENT_ID": "00000000-0000-0000-0000-000000000000", "TEAMS_TENANT_ID": "common", "TEAMS_MODE": "read-only" } } } }

On first use the server opens your browser to sign in and caches the token at ~/.mcp-teams/token.json (0600); later runs refresh silently.

See docs/CLIENTS.md for Claude Code / Cursor / Codex / VS Code / Windsurf snippets, and .env.example for every supported variable.

Authentication

Auth mode is chosen automatically (override with TEAMS_AUTH):

  • interactive (default) — only TEAMS_CLIENT_ID set. Authorization-code + PKCE with a loopback redirect: the browser opens, you approve once, and the access + refresh token are cached on disk. Most Teams messaging APIs are delegated-only, so this is the primary mode. The server never handles your password.
  • client-credentials (app-only) — TEAMS_CLIENT_SECRET present; the server fetches an app token itself. Note that several Teams message APIs are not available to app-only tokens without protected-API approval from Microsoft.
  • token — TEAMS_TOKEN set to a pre-obtained Graph bearer token. You manage its lifetime.

Safe by default

The access model is enforced by src/security.ts — defence in depth on top of the Graph token's own scopes/roles:

  • `TEAMS_MODE` — read-only (default) → read-write → admin. A tool is registered only if the mode allows its capability. Read-only exposes the 9 read tools; posting needs read-write; deletes need admin.
  • `TEAMS_ALLOW_SEND` — posting a message is visible to others and can't be silently un-posted, so on top of read-write it also requires this flag.
  • `TEAMS_ALLOW_DELETE` — deletes require this flag on top of admin mode. Deletes are soft-deletes (recoverable), and only your own messages.
  • `TEAMS_TEAM_ALLOWLIST` / `TEAMS_PROTECTED_TEAMS` — confine which teams can be posted to / moderated; mark teams that may be read but never posted to.
  • Interactive confirmation — when the client supports MCP elicitation, posting and deleting pause and ask the human to approve the exact target before running; clients that can't elicit fall back to the TEAMS_ALLOW_SEND / TEAMS_ALLOW_DELETE gates.
  • `TEAMS_DRY_RUN` — validate and log writes without executing them.
  • `TEAMS_AUDIT_LOG` — a JSON audit line per guarded operation, on stderr (default on).

See SECURITY.md.

Developing

npm install

npm run build

introspect the tool list without signing in (uses a fake token, no network):

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | TEAMS_TOKEN=x node dist/index.js npm test

Licence

MIT

PopNxに聞く