Overview
The Microsoft Teams integration connects Alysio to a user’s Microsoft account so Alysio can retrieve Teams collaboration data through the Microsoft Graph API. Once connected, users can list the teams they belong to, browse channels within a team, retrieve recent channel messages, list their chats, and retrieve chat messages. This makes it easy to reference internal discussions, align on decisions, and pull context into revenue workflows directly from Alysio. All access is authorized through OAuth 2.0 and is limited to the Microsoft Graph permissions granted during connection.Supported Data and Capabilities
Teams
Access the teams the signed in user has joined. Supported operations include: Listing joined teamsRetrieving team IDs for downstream channel queries
Channels
Access channels within a team. Supported operations include: Listing channels for a teamRetrieving channel IDs for message queries
Channel Messages
Retrieve messages posted in a specific team channel. Supported operations include: Fetching recent messagesRetrieving a defined number of messages
Optionally expanding message fields when supported
Chats
Access a user’s Teams chats. Supported operations include: Listing chatsRetrieving chat IDs for message retrieval
Optionally returning richer chat context such as members or message previews when supported
Chat Messages
Retrieve messages in a specific chat thread. Supported operations include: Fetching recent chat messagesRetrieving a defined number of messages
Filtering or ordering messages when supported
Authentication
Method
OAuth 2.0 through Microsoft identity platform Azure ADAPI Provider
Microsoft Graph APIRedirect URI
Configured in Alysio when setting up the Microsoft Teams integration.The Azure AD application must allow this redirect URI.
Token Handling
OAuth tokens for the connected Microsoft account are stored securely and refreshed automatically. Each user has their own credential connection so all Teams and chat access is scoped to that user’s Microsoft account. If the integration is disconnected or authorization is revoked, Microsoft Teams tools will not be available until reconnection.Required Microsoft Graph Permissions
The Microsoft Teams integration typically uses delegated Microsoft Graph permissions aligned to the tool set below. User ReadRead signed in user profile and enable /me context Team ReadBasic All
List teams the user has joined Channel ReadBasic All
List channels within a team ChannelMessage Read All or ChannelMessage Read Group
Retrieve channel messages depending on the organization’s permission policy Chat Read
List chats and retrieve chat messages
Permission Justification
| Permission | Purpose |
|---|---|
| User.Read | Required for /me context including joined teams and chats |
| Team.ReadBasic.All | List teams the user is a member of |
| Channel.ReadBasic.All | List channels for a team |
| ChannelMessage.Read.All or ChannelMessage.Read.Group | Retrieve channel messages |
| Chat.Read | List user chats and retrieve chat messages |
MCP Tools
The Microsoft Teams MCP exposes tools that allow Alysio to retrieve Teams and chat data via natural language prompts.microsoft_teams_get_teams
Lists teams the current user has joined. Example prompts List my Teams teamsWhat teams am I in
microsoft_teams_get_teams_channels
Lists channels for a specific team. Requires team_id returned by microsoft_teams_get_teams. Example prompts List channels for this teamShow channels in the Engineering team
microsoft_teams_get_channel_messages
Retrieves messages for a specific team channel. Requires team_id and channel_id.Supports optional parameters like top and expand when available. Example prompts Show the last 10 messages in General
Get recent messages from this channel
microsoft_teams_get_chats
Lists the current user’s chats. Supports optional parameters such as expand, top, filter, and orderBy where the tool model allows. Example prompts List my Teams chatsShow my most recent chats
microsoft_teams_get_chat_messages
Retrieves messages for a specific chat thread. Requires chat_id returned by microsoft_teams_get_chats.Supports optional parameters like top, filter, and orderBy. Example prompts Show messages in this chat
Get the latest 20 messages from chat X
App Behavior
Microsoft Teams data is retrieved on demand when users ask Alysio to list teams, browse channels, or read messages. Alysio does not continuously sync Teams content. Each request triggers the relevant Microsoft Graph API call using the user’s OAuth credential. This ensures Teams access remains permissioned, scoped, and tied to explicit user intent.Example Workflow
User asks Show the last 10 messages from the General channel in my Engineering team Alysio routes the request to the Microsoft Teams MCP. The MCP retrieves the team ID using microsoft_teams_get_teams. The MCP retrieves the channel ID using microsoft_teams_get_teams_channels for that team. The MCP retrieves the last 10 messages using microsoft_teams_get_channel_messages with top set to 10. Microsoft Graph returns the channel messages. Alysio displays the results in the conversation interface.Troubleshooting
Microsoft Teams Not Connected
The user has not authorized the integration. SolutionReconnect Microsoft Teams under Settings → Integrations and complete the OAuth flow.
401 Unauthorized
The token is invalid, expired, or revoked. SolutionReauthorize the Microsoft Teams integration in Settings → Integrations.
403 Forbidden
The Azure AD app does not have sufficient Microsoft Graph permissions or the user has not consented. SolutionConfirm the Azure AD application includes the required delegated permissions and that tenant admin consent has been granted where required.
Missing team_id or channel_id
Channel listing and channel message retrieval require the team ID and channel ID. SolutionCall microsoft_teams_get_teams to retrieve team IDs, then microsoft_teams_get_teams_channels to retrieve channel IDs.
Missing chat_id
Chat message retrieval requires a chat ID. SolutionCall microsoft_teams_get_chats to retrieve chat IDs, then call microsoft_teams_get_chat_messages using the desired chat_id.