Skip to main content
Glama

Teams MCP Server

Claude를 위한 최초의 오픈소스 Microsoft Teams 커넥터입니다. 모든 Microsoft 365 사용자는 회사 계정으로 로그인하기만 하면 연결할 수 있습니다. 설정, 자격 증명, 자체 호스팅이 필요 없습니다.

메시지 읽기, 채널 목록 보기, Teams 전체 검색, 메시지 보내기 — 모두 Claude Code, Claude Desktop 또는 Claude Cowork에서 가능합니다.

SurgeEnterpriseAI 제작.

작동 방식

┌─────────────┐     Click "Connect"     ┌──────────────────────┐
│ Claude User  │ ──────────────────────► │ Teams MCP Server     │
│ (Cowork/     │                         │ (hosted by Surge)    │
│  Desktop/    │     SSE/MCP Protocol    │                      │
│  Code)       │ ◄─────────────────────► │  ┌────────────────┐  │
└─────────────┘                          │  │ OAuth (common)  │  │
                                         │  │ Any M365 user   │  │
       User signs in with their          │  │ can sign in     │  │
       own Microsoft account             │  └───────┬────────┘  │
       ─────────────────────►            │          │           │
                                         │  ┌───────▼────────┐  │
                                         │  │ Microsoft       │  │
                                         │  │ Graph API       │  │
                                         │  └────────────────┘  │
                                         └──────────────────────┘

사용자는 자신의 Microsoft 365 계정을 연결합니다. 자신의 팀, 자신의 채널, 자신의 메시지를 볼 수 있습니다. 각 사용자의 토큰은 격리됩니다. 서버는 브리지 역할만 하며 메시지를 저장하지 않고 전달만 합니다.

Related MCP server: Microsoft 365 MCP Server

기능

  • 원클릭 연결/connect 방문, Microsoft 로그인, 완료

  • 멀티 테넌트 — 모든 Microsoft 365 조직, 모든 사용자

  • 11가지 도구 — 팀, 채널, 메시지, 채팅, 검색, 프로필

  • 이중 전송 — Claude Code용 STDIO, Cowork 및 원격용 HTTP/SSE

  • 다중 사용자 — 각 세션은 격리된 OAuth 토큰을 받습니다

  • 자동 감지 — 실행 방법에 따라 올바른 전송을 선택합니다

  • 토큰 캐싱 — 자동 갱신, 세션마다 재로그인 불필요

  • 재시도 로직 — 제한된 Graph API 호출 시 자동 재시도

  • TypeScript — 완전한 타입, 깔끔한 아키텍처, MIT 라이선스

사용자: 1클릭으로 연결

누군가 이미 이 서버를 호스팅하고 있다면 (예: https://teams-mcp.surgeai.com):

  1. Claude가 Microsoft Teams 연결을 요청합니다

  2. 인증 링크를 클릭합니다

  3. Microsoft 회사 계정으로 로그인합니다

  4. 완료 — 이제 Claude가 Teams를 읽을 수 있습니다

API 키, Azure 포털, 설정이 필요 없습니다.

개발자: 자체 호스팅

1. 클론 및 설치

git clone https://github.com/SurgeEnterpriseAI/teams-mcp-server.git
cd teams-mcp-server
npm install
npm run build

2. Azure AD 앱 등록

  1. Azure Portal로 이동 → 앱 등록새 등록

  2. 이름: Teams MCP Server

  3. 지원되는 계정 유형: "모든 조직 디렉터리의 계정(모든 Azure AD 디렉터리 - 다중 테넌트)"

  4. 리디렉션 URI: https://your-server.com/auth/callback

  5. 등록 클릭

구성:

  • 인증서 및 비밀 → 새 클라이언트 비밀 → 값 복사

  • API 권한 → 위임된 권한 추가 (Microsoft Graph):

    • ChannelMessage.Read.All, ChannelMessage.Send

    • Chat.Read, Chat.ReadWrite, ChatMessage.Send

    • Team.ReadBasic.All, Channel.ReadBasic.All

    • User.Read

  • 관리자 동의 부여 클릭 (자신의 테넌트용; 다른 테넌트는 첫 로그인 시 동의)

3. 구성 및 배포

cp .env.example .env
# Set TEAMS_CLIENT_ID, TEAMS_CLIENT_SECRET
# Set BASE_URL and REDIRECT_URI to your production URL
# TEAMS_AUTHORITY=common (multi-tenant, default)

Railway, Render, Azure App Service 또는 모든 Node.js 호스트에 배포:

# Railway
railway login && railway init && railway up

# Or Azure
az webapp up --name teams-mcp-server --runtime "NODE:20-lts"

# Or just run directly
TRANSPORT_MODE=http node dist/index.js

4. MCP 레지스트리에 제출

배포 및 테스트가 완료되면 서버 URL을 Anthropic의 MCP 커넥터 레지스트리에 제출하세요. 그러면 사용자는 Claude Cowork에서 Slack 및 Gmail과 마찬가지로 "Microsoft Teams"를 연결 옵션으로 볼 수 있습니다.

Claude Code 사용자: 로컬 STDIO 모드

.mcp.json에 추가:

{
  "mcpServers": {
    "teams": {
      "command": "node",
      "args": ["/path/to/teams-mcp-server/dist/index.js"],
      "cwd": "/path/to/teams-mcp-server"
    }
  }
}

첫 실행 시 Microsoft 로그인을 위해 브라우저가 열립니다. 이후에는 토큰이 캐시됩니다.

사용 가능한 도구

도구

기능

teams_list_teams

모든 Teams 나열

teams_list_channels

팀의 채널 나열

teams_read_channel_messages

최근 채널 메시지 읽기

teams_send_channel_message

채널에 메시지 보내기

teams_reply_to_message

채널 스레드에서 답장

teams_read_message_replies

스레드 답장 읽기

teams_list_chats

DM 및 그룹 채팅 나열

teams_read_chat_messages

채팅에서 메시지 읽기

teams_send_chat_message

직접/그룹 채팅 메시지 보내기

teams_search_messages

모든 Teams에서 메시지 검색

teams_get_profile

Microsoft 365 프로필 가져오기

아키텍처

src/
├── index.ts               Main entry (auto-detects transport)
├── config.ts              Central configuration
├── logger.ts              Structured logging
├── types.ts               TypeScript interfaces
├── sessions.ts            Multi-user session manager
├── auth/
│   ├── oauth.ts           MSAL OAuth (multi-tenant, per-user)
│   └── token-store.ts     Persistent token cache
├── graph/
│   ├── client.ts          Graph HTTP client with retries
│   ├── teams.ts           Teams & channels API
│   ├── messages.ts        Channel messages API
│   ├── chats.ts           DM & group chat API
│   └── search.ts          Search & profile API
├── mcp/
│   ├── server.ts          MCP server factory
│   └── tools/             11 tool definitions
├── transport/
│   ├── stdio.ts           STDIO (Claude Code)
│   └── http.ts            Express + SSE (Cowork / remote)

환경 변수

변수

필수

기본값

설명

TEAMS_CLIENT_ID

Azure AD 앱 클라이언트 ID

TEAMS_CLIENT_SECRET

Azure AD 클라이언트 비밀

TEAMS_AUTHORITY

아니요

common

common은 다중 테넌트용, 또는 특정 테넌트 ID

TRANSPORT_MODE

아니요

auto

auto, stdio 또는 http

PORT

아니요

3000

HTTP 서버 포트

BASE_URL

아니요

http://localhost:3000

공개 URL

REDIRECT_URI

아니요

{BASE_URL}/auth/callback

OAuth 콜백 URL

TOKEN_STORE_PATH

아니요

./.data/tokens

토큰 캐시 디렉터리

LOG_LEVEL

아니요

info

로깅 수준

라이선스

MIT — LICENSE

기여

이슈와 PR을 환영합니다. SurgeEnterpriseAI 제작.

A
license - permissive license
Not graded
quality - not tested
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

View all related MCP servers

Related MCP Connectors

  • Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

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/SurgeEnterpriseAI/teams-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server