Teams MCP Server
Teams MCP Server
Claude를 위한 최초의 오픈소스 Microsoft Teams 커넥터입니다. 모든 Microsoft 365 사용자는 회사 계정으로 로그인하기만 하면 연결할 수 있습니다. 설정, 자격 증명, 자체 호스팅이 필요 없습니다.
메시지 읽기, 채널 목록 보기, Teams 전체 검색, 메시지 보내기 — 모두 Claude Code, Claude Desktop 또는 Claude Cowork에서 가능합니다.
작동 방식
┌─────────────┐ 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):
Claude가 Microsoft Teams 연결을 요청합니다
인증 링크를 클릭합니다
Microsoft 회사 계정으로 로그인합니다
완료 — 이제 Claude가 Teams를 읽을 수 있습니다
API 키, Azure 포털, 설정이 필요 없습니다.
개발자: 자체 호스팅
1. 클론 및 설치
git clone https://github.com/SurgeEnterpriseAI/teams-mcp-server.git
cd teams-mcp-server
npm install
npm run build2. Azure AD 앱 등록
Azure Portal로 이동 → 앱 등록 → 새 등록
이름:
Teams MCP Server지원되는 계정 유형: "모든 조직 디렉터리의 계정(모든 Azure AD 디렉터리 - 다중 테넌트)"
리디렉션 URI: 웹 →
https://your-server.com/auth/callback등록 클릭
구성:
인증서 및 비밀 → 새 클라이언트 비밀 → 값 복사
API 권한 → 위임된 권한 추가 (Microsoft Graph):
ChannelMessage.Read.All,ChannelMessage.SendChat.Read,Chat.ReadWrite,ChatMessage.SendTeam.ReadBasic.All,Channel.ReadBasic.AllUser.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.js4. 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 나열 |
| 팀의 채널 나열 |
| 최근 채널 메시지 읽기 |
| 채널에 메시지 보내기 |
| 채널 스레드에서 답장 |
| 스레드 답장 읽기 |
| DM 및 그룹 채팅 나열 |
| 채팅에서 메시지 읽기 |
| 직접/그룹 채팅 메시지 보내기 |
| 모든 Teams에서 메시지 검색 |
| 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)환경 변수
변수 | 필수 | 기본값 | 설명 |
| 예 | — | Azure AD 앱 클라이언트 ID |
| 예 | — | Azure AD 클라이언트 비밀 |
| 아니요 |
|
|
| 아니요 |
|
|
| 아니요 |
| HTTP 서버 포트 |
| 아니요 |
| 공개 URL |
| 아니요 |
| OAuth 콜백 URL |
| 아니요 |
| 토큰 캐시 디렉터리 |
| 아니요 |
| 로깅 수준 |
라이선스
MIT — LICENSE
기여
이슈와 PR을 환영합니다. SurgeEnterpriseAI 제작.
This server cannot be installed
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 gradedqualityCmaintenanceConnects Claude to Microsoft Outlook through the Microsoft Graph API, enabling email management (list, search, read, send) and calendar operations (list, create, accept, decline, delete events) via OAuth 2.0 authentication.1MIT
- FlicenseNot gradedqualityCmaintenanceProvides Claude Desktop and Claude Code with access to Microsoft 365 email and calendar services via the Microsoft Graph API. It enables users to manage emails, search folders, schedule calendar events, and check availability through natural language commands.
- AlicenseNot gradedqualityBmaintenanceConnects Claude with Microsoft 365 services such as Email, Calendar, Teams, OneDrive, and more through the Microsoft Graph API.4616MIT
- AlicenseNot gradedqualityCmaintenanceConnects Claude with Microsoft 365 services including Outlook, OneDrive, and Power Automate, enabling email, calendar, files, and flow management through natural language.34423MIT
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.
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/SurgeEnterpriseAI/teams-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server