Skip to content

Improvements to the Teams MCP server example#597

Merged
MehakBindra merged 19 commits into
mainfrom
mehak/ai-polish
Jun 3, 2026
Merged

Improvements to the Teams MCP server example#597
MehakBindra merged 19 commits into
mainfrom
mehak/ai-polish

Conversation

@MehakBindra

@MehakBindra MehakBindra commented May 26, 2026

Copy link
Copy Markdown
Member

This pull request makes significant improvements to the Teams MCP server example, focusing on enabling multiple simultaneous "ask" requests per user, adding a user search tool via Microsoft Graph, and updating the documentation and code to reflect these enhancements.
Key changes include:

1. Enhanced Ask/Reply Flow

  • Replaces the previous "one ask per user" model with support for multiple concurrent asks by using Adaptive Cards with embedded request IDs and a new card.action.ask_reply handler. This enables tracking replies to individual asks and allows multiple pending questions per user.

2. User Search via Microsoft Graph

  • Adds a new find_user tool that searches for users by name, email, or UPN using Microsoft Graph, and returns up to 5 Azure AD object IDs. This is implemented in a new graphClient.ts file and documented in the README.

3. Documentation and Developer Experience

  • Updates the README to reflect new tool names, parameters, and usage patterns, including detailed instructions for setting up Graph API permissions and clarifying the meaning of userId as the AAD object id.

4. Package and Dependency Updates

  • Adds new dependencies for Microsoft Graph support in package.json. (examples/mcp-server/package.json)

These changes collectively make the MCP server example more robust, flexible, and easier to use in real-world scenarios.

AI-MCP Example

  • Add AI generated label to card responses as well

Copilot AI review requested due to automatic review settings May 26, 2026 22:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Teams MCP server example to support multiple concurrent “ask” flows per user, adds a Microsoft Graph-backed find_user tool, and refreshes documentation to match the new tool set and request/response flow.

Changes:

  • Replace “next message answers the ask” with Adaptive Card-based replies correlated by requestId, plus waiter-based wait_for_reply / wait_for_approval.
  • Add Microsoft Graph user search (find_user) via a new lightweight app-only Graph client.
  • Update README and example code to reflect new tool names and AAD object-id semantics.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
examples/mcp-server/src/state.ts Adds waiter maps to support event-driven reply/approval waits.
examples/mcp-server/src/mcpTools.ts Reworks ask/approval tools (snake_case names), adds wait_* tools, adds find_user.
examples/mcp-server/src/graphClient.ts New app-only Graph client for user search.
examples/mcp-server/src/app.ts Routes replies via card.action.ask_reply and approvals via card.action.approval_response.
examples/mcp-server/README.md Documents new tools, AAD object-id usage, and Graph permissions.
examples/mcp-server/package.json Adds Graph dependencies for the new find_user tool.
examples/ai-mcp/src/handlers.ts Marks adaptive-card emissions as AI-generated content.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread examples/mcp-server/src/mcpTools.ts Outdated
Comment thread examples/mcp-server/src/mcpTools.ts Outdated
Comment thread examples/mcp-server/src/mcpTools.ts Outdated
Comment thread examples/mcp-server/src/mcpTools.ts Outdated
Comment thread examples/mcp-server/src/graphClient.ts
Comment thread examples/mcp-server/src/graphClient.ts Outdated
Comment thread examples/mcp-server/README.md
Comment thread examples/mcp-server/src/state.ts Outdated
@MehakBindra MehakBindra changed the title mcp-graph Improvements to the Teams MCP server example May 26, 2026
@MehakBindra
MehakBindra requested a review from corinagum May 26, 2026 23:43
Comment thread examples/mcp-server/src/app.ts Outdated
Comment thread examples/mcp-server/src/mcpTools.ts Outdated
Comment thread examples/mcp-server/src/mcpTools.ts
Comment thread examples/mcp-server/README.md Outdated
Comment thread examples/mcp-server/README.md Outdated
Comment thread examples/mcp-server/src/mcpTools.ts
Comment thread examples/mcp-server/src/graphClient.ts Outdated
Comment thread examples/mcp-server/src/app.ts Outdated
Comment thread examples/ai-mcp/src/handlers.ts
Comment thread examples/mcp-server/src/app.ts
Comment thread examples/mcp-server/src/app.ts
Comment thread examples/mcp-server/src/graphClient.ts Outdated
Comment thread examples/mcp-server/src/mcpTools.ts
@MehakBindra
MehakBindra added this pull request to the merge queue Jun 3, 2026
Merged via the queue into main with commit 07a5e72 Jun 3, 2026
7 checks passed
@MehakBindra
MehakBindra deleted the mehak/ai-polish branch June 3, 2026 20:03
corinagum added a commit that referenced this pull request Jun 15, 2026
## Release 2.0.13

Merges main into release for stable publish.

### Notable changes since 2.0.12
- fix(client): use explicit Graph scopes for Teams Desktop NAA
compatibility (#616)
- ci: switch publish pipeline to 1ES Official template for CodeQL/SDL
(#607)
- ci: add weekly SDL pipeline for CodeQL/CredScan compliance (#608)
- Refresh teams.apps README (#604)
- Reject unauthenticated when no credentials (#506)
- fix(api): conditionally set citation encodingFormat based on text
presence (#579)
- Improvements to the Teams MCP server example (#597)
- Bump MSAL Node to v5 (#603)
- Merge root message entities in Activity (#590)
- TeamsSDK: Correct imports and return types in misc. packages (#589)
- Cache federated identity MSAL clients (#613)

### Release steps
1. Merge this PR
2. Trigger the [release
pipeline](https://dev.azure.com/DomoreexpGithub/Github_Pipelines/_build?definitionId=52&_a=summary)
for `release` branch with **Public** publish type
3. Bump version on main to `2.0.14-preview.{height}`
4. Create git tag and GitHub Release page
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants