> ## Documentation Index
> Fetch the complete documentation index at: https://docs.consile.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Teams

> Read access to Microsoft Teams for your AI: your teams, channels, conversation threads and the connected user's own chats. Eight read-only tools. Requires a Microsoft 365 administrator's consent for channel messages.

*[Læs siden på dansk](https://docs.consile.ai/connectors/teams.md)*

The Teams connector gives your AI read-only access to Microsoft Teams. Your AI can see
the teams the connected user is a member of, the team's channels, the posts in a
channel and the replies in a thread, and the user's own chats. Messages are read as
text with sender, time, mentions and attachments. You connect with a Microsoft work
account, and your AI never sees the access itself.

> [!WARNING]
>
> Teams requires a Microsoft 365 administrator in your organization to consent to the
> permission `ChannelMessage.Read.All` (read channel messages). A regular user cannot
> grant it alone. Without that consent, Teams cannot be connected. See
> [Administrator consent](https://docs.consile.ai/en/connect/connect-teams.md#administrator-consent).

> [card] Access
>
> Read-only

> [card] Authentication
>
> Microsoft work account + admin consent

> [card] Hosting
>
> Hosted in the EU · Frankfurt

* **Price:** 299 DKK/month excl. VAT (39 EUR/month excl. VAT). No lock-in, cancel at
  any time. The price covers 1 user and 1 agreement (one connection to one Microsoft
  user). Each extra user and each extra agreement costs 149.50 DKK/month excl. VAT
  (19.50 EUR/month). Also included in [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md)
  and [the free edition](https://docs.consile.ai/en/portal/free-edition.md). See [Pricing](https://docs.consile.ai/en/portal/pricing.md).
* **Users:** whoever buys Teams automatically gets the included access. If more
  colleagues need Teams in their AI, an administrator gives them access under **Team**
  in the portal (choose **All tools** next to Teams on the person's page). An extra
  user is billed pro rata from the day access is given. A colleague without access can
  still see the tools in their AI, but every lookup is refused with a message to ask an
  administrator for access. If you have [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md),
  an administrator instead gives one membership licence per person, and it also covers
  Teams. See [Team](https://docs.consile.ai/en/portal/team.md).
* **Multiple Microsoft users:** the portal calls each connection to the system an
  agreement. One agreement is one Microsoft user's Teams: the teams, channels and chats
  that user can see. If your AI should read with another Microsoft user's access, or in
  another Microsoft organization, an administrator adds another agreement with **Add
  agreement** on the **Connections** card on the connector's page in the portal. Each
  agreement gets its own address, for example `https://mcp.consile.ai/teams-2/mcp`,
  which you add as a separate connector in your AI. Under
  [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md#one-more-agreement-in-a-system)
  and in [the free edition](https://docs.consile.ai/en/portal/free-edition.md), other rules apply to adding an agreement. See
  [Connect Teams](https://docs.consile.ai/en/connect/connect-teams.md#multiple-microsoft-users).
* **Endpoint:** `https://mcp.consile.ai/teams/mcp` (your own named connector in your
  AI).

## What does it require?

* **A Microsoft work or school account with Teams.** You log in with an account in your
  organization at Microsoft that uses Teams. A personal Microsoft account cannot be
  used.
* **An administrator's consent.** A Microsoft 365 administrator must consent to
  `ChannelMessage.Read.All` for the whole organization. This happens once. See
  [Connect Teams](https://docs.consile.ai/en/connect/connect-teams.md#administrator-consent).
* **The right Microsoft user.** Your AI sees exactly what the connected user can see in
  Teams, including the user's own chats. See [Who sees what?](#who-sees-what) below.

## Prerequisites

**1. Subscription**

The connector must be bought in the [portal](https://app.consile.ai). See
[Buy a connector](https://docs.consile.ai/en/portal/buy-a-connector.md).

**2. Microsoft approved**

An administrator has consented for the organization, and you have logged in with
your Microsoft work account and approved Consile. The connection applies to your
whole Consile account. See [Connect Teams](https://docs.consile.ai/en/connect/connect-teams.md).

**3. Access for your user**

If there are several users on the account, an administrator must assign you Teams
under **Team** in the portal. Whoever bought the connector has access from the
start. If you have created your own Consile account, but belong to a company that
already has Teams, ask your administrator for an invitation to the team instead of
buying again. See [Team](https://docs.consile.ai/en/portal/team.md).

**4. Your AI connected**

Each user adds the connector in their own AI and logs in with their own Consile
login. See [Connect Claude](https://docs.consile.ai/en/connect/connect-claude.md) or
[Connect ChatGPT](https://docs.consile.ai/en/connect/connect-chatgpt.md).

## Who sees what?

An agreement is connected to one Microsoft user. Everyone in your Consile account with
access to Teams reads through that user:

* They see the teams and channels the connected user is a member of. Private and
  shared channels only if the user is in them.
* They see the connected user's own 1:1 chats, group chats and meeting chats.

So think about who connects. If colleagues should not be able to read a particular
person's chats, do not connect with that person's account. Consider another agreement
with a different Microsoft user.

## Read-only

All the permissions Consile asks Microsoft for are read permissions:

| Permission | Gives access to |
| - | - |
| `Team.ReadBasic.All` | Name and description of the teams the user belongs to |
| `Channel.ReadBasic.All` | Name and description of the team's channels |
| `ChannelMessage.Read.All` | Posts and replies in the channels. Requires the administrator's consent |
| `Chat.Read` | The user's own chats and the messages in them |
| `User.Read` | The connected user's own profile, so the agreement can be named |
| `offline_access` | Keeps the connection alive |

The connector has no write tools, and Consile only sends read requests. Your AI cannot
write, reply, react or delete anything in Teams. If Microsoft's approval is missing one
of the permissions, or contains permissions for anything other than Microsoft Graph,
the connection is refused.

Consile does not store the messages. A lookup is fetched from Microsoft and handed to
your AI in the same call.

## What can it do? (tools)

You do not need to know the tool names. You ask in natural language, and your AI picks
the right one itself. The connector has eight read-only tools. When your AI calls
them, they are called `teams__<tool>` (for example `teams__list_joined_teams`).

**Teams and channels**

| Tool | What it does |
| - | - |
| `list_joined_teams` | The teams the user belongs to: name, description, whether the team is archived, public or private, and a link |
| `get_team` | One team with its creation date and, when Microsoft reports it, the number of members, owners and guests |
| `list_channels` | The channels of a team with their type (standard, private or shared). Can show only one type |

**Channel posts**

| Tool | What it does |
| - | - |
| `list_channel_messages` | The latest posts in a channel, newest first, with sender, time, text, mentions, attachments and number of reactions. Replies are not included |
| `get_channel_message` | One post or reply with its full text |
| `list_message_replies` | The replies of a conversation thread |

**Chats**

| Tool | What it does |
| - | - |
| `list_chats` | The user's chats, most recently active first: 1:1 chats, group chats and meeting chats with their members (name and e-mail) |
| `list_chat_messages` | The messages of a chat, newest first. Can be limited to messages changed after a given time |

> [card] [Building on top yourself? See the API reference](https://docs.consile.ai/developers/tools/teams.md)
>
> Full reference with the eight tools, arguments, pages and error messages.

## Try asking

> [accordion] Channels and threads
>
> > *"Summarize what has been written in the \<channel> channel of the \<team> team in the past week."*
>
> > *"What was decided in the thread about \<topic>, and who replied?"*

> [accordion] Chats
>
> > *"What have \<name> and I written about in our chat since Monday?"*
>
> > *"Make a to-do list from the latest messages in the \<topic> group chat."*

> [accordion] Overview
>
> > *"Which teams am I in, and which channels does the \<team> team have?"*

> [!TIP]
>
> Mention the team and channel, or who the chat is with, and a period. Teams has no
> search in channel posts, so your AI reads the posts page by page, newest first. The
> narrower the question, the fewer lookups.

## Limitations

* **Read-only:** the connector cannot send, reply to, edit or delete messages.
* **Only work accounts:** personal Microsoft accounts are not supported.
* **No search in channels:** Microsoft offers no filtering or searching in channel
  posts. Your AI reads them page by page, newest first. In a chat, your AI can limit
  the messages to those changed after a given time.
* **Replies are read separately:** a channel's posts and the replies in a thread are
  fetched separately, so a whole thread takes two lookups.
* **Small pages:** channel posts, chats and chat messages are fetched 20 at a time by
  default and at most 50. Replies in a thread are fetched 50 at a time.
* **Text, not formatting:** messages are read as plain text. A message longer than
  10,000 characters is cut short, and the answer marks it.
* **Attachments are not fetched:** your AI sees an attachment's name, type and link,
  but not the file itself.
* **Microsoft's call limit:** Microsoft limits how fast channel messages can be read.
  If a lookup hits the limit, your AI is told to wait a little and ask for fewer rows.
* **The user's access applies:** if the connected user cannot see a team, a channel or
  a chat, Microsoft answers with an error (403 or 404), and your AI is told about it.
  Reconnecting does not help with a 403. Instead, ask a Microsoft 365 administrator for
  access.
* **Explanatory errors, but not always:** for the common errors, the connector gives
  your AI an explanation: an access that must be connected again, missing access, an
  id that does not exist, a request Microsoft refuses, and Microsoft's call limit.
  Other errors, for example a timeout or an error at Microsoft, only give the general
  error "Tool invocation failed."
* **The access is renewed automatically, but can stop:** if the renewal fails, or
  Consile is removed in your Microsoft organization, your AI is told that the
  connection must be set up again from the Consile portal. The portal can still show
  **Connected**. Only an administrator can reconnect. See
  [Connect Teams](https://docs.consile.ai/en/connect/connect-teams.md#the-access-is-renewed-but-the-connection-can-stop).

Is something not working as expected? See [Troubleshooting](https://docs.consile.ai/en/troubleshooting.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.