Skip to content
Agentmart
Submit a tool

Microsoft Teams API

AI-native Microsoft Teams integration — read chats, send messages, search people

Connector by Maxim-Mazurok · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 8
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/maxim-mazurok-teams-api

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

AI-native Microsoft Teams integration — read chats, send messages, search people

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
11 read · 4 write · 2 delete
Secrets
4 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 17

Read from the source code; the running server may list different tools.

Read 11 · Look things up without changing anything.

  • describe-image
  • find-chats
  • find-conversation
  • find-one-on-one
  • find-people
  • get-members
  • get-messages
  • get-profiles
  • get-transcript
  • list-conversations
  • whoami

Write 4 · Create, change, send or run things.

  • add-reaction
  • download-file
  • edit-message
  • send-message

Delete 2 · Delete, drop, revoke or wipe things.

  • delete-message
  • remove-reaction

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • TEAMS_BEARER_TOKEN
  • TEAMS_IMAGE_DESCRIPTION_API_KEY
  • TEAMS_SUBSTRATE_TOKEN
  • TEAMS_TOKEN

Other settings (environment variables or headers).

  • TEAMS_AUTO
  • TEAMS_DEBUG
  • TEAMS_EMAIL
  • TEAMS_IMAGE_DESCRIPTION_BASE_URL
  • TEAMS_IMAGE_DESCRIPTION_MODEL
  • TEAMS_LOGIN
  • TEAMS_REGION
  • TEAMS_TELEMETRY
  • TEAMS_TELEMETRY_PATH

Network hosts it talks to 8

  • api.openai.com · found in code
  • as-prod.asyncgw.teams.microsoft.com · found in code
  • config.teams.microsoft.com · found in code
  • github.com · found in code
  • schema.skype.com · found in code
  • statics.teams.cdn.office.net · found in code
  • substrate.office.com · found in code
  • teams.cloud.microsoft · found in code

Files it touches

  • /tmp/teams-api-chrome-profile
  • Your home directory (~)

Tools (17)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add-reactionAdd Reaction

    Add a reaction (emoji) to a message. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). At least one identifier is required. Standard reaction keys: "like", "heart", "laugh", "surprised", "angry", "sad". User-friendly names are auto-resolved to Teams emoji IDs (e.g. "horse" → "1f40e_horse").

  • delete-messageDelete Message

    Delete a message from a conversation. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). At least one identifier is required. The message to delete is identified by --message-id.

  • describe-imageDescribe Image

    Describe an inline Teams image using a configured OpenAI-compatible vision model. Use amsObjectId directly, or identify a message by chat/to/conversationId plus messageId. Set TEAMS_IMAGE_DESCRIPTION_API_KEY or OPENAI_API_KEY before using this tool.

  • download-fileDownload File

    Download file attachment(s) from a message. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). Specify the message containing the file(s) via --message-id. Use --output-directory to save files to a specific directory. Without --output-directory, files are saved to a temporary directory. Text file contents and images are returned inline in the response. Other binary files (PDFs, videos, archives, etc.) are saved to disk only; the response reports the local save path.

  • edit-messageEdit Message

    Edit an existing message in a conversation. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). At least one identifier is required. The message to edit is identified by --message-id. Content is interpreted as Markdown by default and converted to rich HTML.

  • find-chatsFind Chats

    Search for chats by name or member name. Uses the Substrate search API (requires authentication via auto-login or interactive). Returns matching chats with member lists and thread IDs.

  • find-conversationFind Teams Conversation

    Find a conversation by topic name (case-insensitive partial match). When Substrate search is available, also matches by member names. For 1:1 chats (which have no topic), use find-one-on-one instead. Use the returned conversation ID for subsequent operations like get-messages or send-message.

  • find-one-on-oneFind 1:1 Conversation

    Find or create a 1:1 conversation with a person by name. Uses Substrate people/chat search when available — if a conversation already exists it is returned; if the person is found in the org directory but no chat exists yet, a new 1:1 is started. Falls back to scanning message senders when Substrate is unavailable. Also finds the self-chat if the name matches the current user.

  • find-peopleFind People

    Search for people in the organization directory by name. Uses the Substrate search API (requires authentication via auto-login or interactive). Returns matching people with emails, job titles, and departments.

  • get-membersGet Conversation Members

    List members of a conversation. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). At least one identifier is required. Display names are resolved via the Teams profile API when available, with message history as fallback. Note: 1:1 chat members may have empty display names if profile resolution is unavailable.

  • get-messagesGet Messages

    Get messages from a conversation. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). At least one identifier is required. For channel threads, provide --message-id to read replies under a specific post. Messages include reactions, mentions, followers (thread subscribers), and quoted message references.

  • get-profilesGet User Profiles

    Get Teams profiles for one or more people by MRI. Returns display name, email, job title, office location, and user type.

  • get-transcriptGet Meeting Transcript

    Get the meeting transcript from a conversation that contains a recorded meeting. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). Use --raw-vtt to get the original VTT file instead of parsed output.

  • list-conversationsList Teams Conversations

    List conversations (chats, group chats, meetings, channels). Returns conversation ID, topic, type, and last message time.

  • remove-reactionRemove Reaction

    Remove a reaction (emoji) from a message. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). At least one identifier is required. Only removes the current user's reaction of the specified type. User-friendly names are auto-resolved to Teams emoji IDs (e.g. "horse" → "1f40e_horse").

Show 2 more tools
  • send-messageSend Message

    Send a message to a conversation. Identify the conversation by topic name (--chat), person name for 1:1 chats (--to), or direct ID (--conversation-id). At least one identifier is required. For channel thread replies, provide --message-id to reply under a specific post. Content is interpreted as Markdown by default and converted to rich HTML. To send images, provide file paths via --image. To send file attachments (documents, videos, etc.), provide file paths via --file. Use [image] placeholders in --content to interleave text and images (e.g. --content 'Before [image] after [image] done' --ima…

  • whoamiCurrent User Info

    Get the display name and region of the currently authenticated user.

Signals

Stars
8
Forks
5
Open issues
2
Last commit
Oct 20, 2026 (8 days ago)
Last release
Oct 20, 2026 (8 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.Maxim-Mazurok/teams-api
Version
1.7.1
Auth
API key
Packages
npm teams-api
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Maxim-Mazurok

Cite this page

Microsoft Teams API MCP server. Agent Mart. https://agentmart.dev/connectors/maxim-mazurok-teams-api (last updated 2026-10-24)