teams

microsoft

teams.

Where the person can read and post in Microsoft Teams.

ajouter à otoauth : —prefix : teams_*

setup & usage

⚠ connect with your Microsoft 365 account

on the "Teams" card, click Authorize Teams and choose your work account. Nothing else to install or register. The account itself is the "Microsoft 365 account" connector: Teams borrows it and only adds its own permissions (your teams and channels, posting in a channel, your chats).

  • the agent acts with your rights: it sees the teams, channels and chats you are a member of, and what it posts is posted in your name. Each person in the org connects their own account
  • work or school accounts only; a guest of a client's Microsoft 365 fills in Client directory at connection (the client's domain; see the "Microsoft 365 account" connector)
  • an account already linked for another Microsoft service only needs to authorize this one; an account that has not authorized Teams is refused by the tools, naming this card
  • ⚙ reading channel messages: the administrator's approval

    Microsoft lets a person authorize alone everything above, except reading the messages of a channel: that permission (ChannelMessage.Read.All) can only be granted by a Microsoft 365 administrator of the organization, once for everyone.

  • until then, reading a channel is refused, and the answer gives the approval link to send to the administrator; the card says "Reading channel messages requires your Microsoft admin's approval"
  • microsoft_admin_consent(services=["teams"]) gives the same link (valid seven days), for the account's directory or the one you name in tenant
  • once approved, nothing to reconnect: the next read sees it. Chats and posting never need it
  • some organizations also require an administrator for the first connection itself ("admin approval required" on Microsoft's screen): the same link covers both
  • ▸ read and post

    teams_spaces(op=teams|channels|chats) (where you can read and post) and teams_message(op=list|replies|post|reply), on a channel (team_id + channel_id) or a chat (chat_id), under the account the call names (_account=), otherwise the default one.

  • "my teams" → teams_spaces(); "the channels of Sales" → teams_spaces(op="channels", team_id="…"); "my chats" → teams_spaces(op="chats")
  • "the latest messages of my chat with Marc" → teams_message(chat_id="…")
  • "what was said in #general" → teams_message(team_id="…", channel_id="…") (administrator's approval needed), and a thread → op="replies" with message_id
  • "post the summary in #general" → teams_message(op="post", team_id="…", channel_id="…", body="…"); "answer in that thread" → op="reply" with message_id; in a chat → op="post" with chat_id
  • body is written in markdown and posted as formatted text; each message comes back as text (full=true for the complete Microsoft Graph object)
  • · what is misleading
  • ⚠️ a post is visible at once to the members of the channel or chat: Teams has no draft
  • ⚠️ reading a channel needs the administrator's approval, reading a chat does not: a refusal on a channel is not a problem with your account
  • a chat has no threads: reply in it with op="post"
  • a channel's list returns its root messages only; the replies of one are op="replies"
  • ids look like 19:…@thread.tacv2: pass them exactly as returned
  • · scope

    teams, channels, chats: list them, read messages (channels with the administrator's approval), post, reply in a channel thread. Nothing creates a team or a channel, adds a member, edits or deletes a message, or reads files shared in Teams (those are in SharePoint: the "SharePoint & OneDrive" connector).

    ⚙ multiple comptes

    this connector accepts multiple comptes: connecting with another compte adds it alongside the others, named by its address; reconnecting with the same one replaces its own.

  • the first linked compte is the default
  • without specification, the agent takes the only linked compte, otherwise the one marked as default; otherwise the call is refused, naming the available comptes — never a random choice
  • target a compte for a call: _account="<name>" on the tool; list them: oto_identity(op='list', connector='teams')
  • set the default: oto_identity(op='set', connector='teams', identity_id='<name>')
  • ⚠️ no tool walks through the comptes on its own: a total across several comptes is obtained by calling each one (_account) and adding up
  • outils

    chargement…

    utilisation

    claude code — installe le plugin oto — claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configurés.
    claude.ai — branche mcp.oto.cx/mcp en connecteur custom (guide)
    cli — pipx install oto-cli puis oto teams …