Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,10 @@ coverage/
a365.config.json
a365.generated.config.json
app.zip
app_logs.zip
app_logs/
publish/
manifest/

# OS-specific files
.DS_Store
Expand Down
3 changes: 3 additions & 0 deletions nodejs/claude/sample-agent/.env.template
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ ANTHROPIC_API_KEY=

# MCP Tooling Configuration
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)
BEARER_TOKEN_MCP_MAILTOOLS=
Comment on lines 5 to +7
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

Per-server bearer tokens were added for MailTools and CalendarTools, but the updated ToolingManifest.json only lists CalendarTools. Please either add MailTools back to the manifest or remove the unused BEARER_TOKEN_MCP_MAILTOOLS variable. It would also help to document whether BEARER_TOKEN should be unset when using per-server tokens in the V2 per-audience model.

Suggested change
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)
BEARER_TOKEN_MCP_MAILTOOLS=
# Shared/default bearer token. Leave unset when using V2 per-server bearer tokens below.
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)
# For the V2 per-audience model, prefer server-specific tokens and leave BEARER_TOKEN unset.

Copilot uses AI. Check for mistakes.
BEARER_TOKEN_MCP_CALENDARTOOLS=

# Enable to use observability exporter, default is false which means using console exporter
ENABLE_A365_OBSERVABILITY_EXPORTER=false
Expand Down
18 changes: 6 additions & 12 deletions nodejs/claude/sample-agent/ToolingManifest.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
{
"mcpServers": [
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_MailTools",
"scope": "McpServers.Mail.All",
"audience": "ea9ffc3e-8a23-4a7d-836d-234d7c7565c1"
},
{
"mcpServerName": "mcp_WordServer",
"mcpServerUniqueName": "mcp_WordServer",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_WordServer",
"scope": "McpServers.Word.All",
"audience": "ea9ffc3e-8a23-4a7d-836d-234d7c7565c1"
"mcpServerName": "mcp_CalendarTools",
"mcpServerUniqueName": "mcp_CalendarTools",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_CalendarTools",
Comment on lines 2 to +6
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

This manifest drops mcp_MailTools (and other servers) and leaves only mcp_CalendarTools. The Claude Node.js sample still processes EmailNotification and asks the model to retrieve message content, which requires mcp_MailTools; without it, email notifications can’t be handled correctly. Add back mcp_MailTools (and any other required servers) with the new V2 scope/audience settings.

Copilot uses AI. Check for mistakes.
"scope": "Tools.ListInvoke.All",
"audience": "910333d2-47e9-43ca-981f-6df2f4531ef4",
"publisher": "Microsoft"
Comment on lines +6 to +9
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

Per the PR description, these entries should be updated to the V2 service hostname and to per-server audiences (Mail vs Calendar). The current url is still on the legacy hostname and the audience is a single GUID; update the CalendarTools entry accordingly (and apply the Mail audience on the MailTools entry once restored).

Copilot uses AI. Check for mistakes.
}
]
}
3 changes: 3 additions & 0 deletions nodejs/langchain/sample-agent/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ OPENAI_MODEL=gpt-4o

# MCP Tooling Configuration
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)
BEARER_TOKEN_MCP_MAILTOOLS=
Comment on lines 14 to +16
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

This file introduces per-server bearer tokens for MailTools and CalendarTools, but the sample’s ToolingManifest.json currently only contains CalendarTools. Please align the env template with the manifest (restore MailTools in the manifest or drop the unused MailTools token variable), and clarify whether BEARER_TOKEN is legacy vs. the preferred per-server tokens in the V2 per-audience model.

Suggested change
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)
BEARER_TOKEN_MCP_MAILTOOLS=
# Legacy/global fallback token. Prefer per-server bearer tokens in the V2 per-audience model.
BEARER_TOKEN=
# Preferred V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)

Copilot uses AI. Check for mistakes.
BEARER_TOKEN_MCP_CALENDARTOOLS=

# MCPPlatform Configuration. Default to production values.
MCP_PLATFORM_ENDPOINT=
Expand Down
11 changes: 6 additions & 5 deletions nodejs/langchain/sample-agent/ToolingManifest.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{
"mcpServers": [
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_MailTools",
"scope": "McpServers.Mail.All",
"audience": "ea9ffc3e-8a23-4a7d-836d-234d7c7565c1"
"mcpServerName": "mcp_CalendarTools",
"mcpServerUniqueName": "mcp_CalendarTools",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_CalendarTools",
Comment on lines 2 to +6
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

ToolingManifest.json now defines only mcp_CalendarTools. This sample’s agent handles EmailNotification and attempts to retrieve message content, which depends on mcp_MailTools; with MailTools removed, that scenario will fail. Re-add mcp_MailTools alongside CalendarTools (with the appropriate V2 scope/audience).

Copilot uses AI. Check for mistakes.
"scope": "Tools.ListInvoke.All",
"audience": "910333d2-47e9-43ca-981f-6df2f4531ef4",
"publisher": "Microsoft"
Comment on lines +6 to +9
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

The url/audience values shown here don’t align with the PR description’s V2 hostname and per-server audience GUIDs. Please update the CalendarTools entry to use the V2 endpoint and the Calendar audience GUID (and apply the Mail audience GUID on the MailTools entry once it’s restored).

Copilot uses AI. Check for mistakes.
}
]
}
3 changes: 3 additions & 0 deletions nodejs/openai/sample-agent/.env.template
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ AZURE_OPENAI_API_VERSION=2024-10-21

# MCP Tooling Configuration
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)
BEARER_TOKEN_MCP_MAILTOOLS=
Comment on lines 15 to +17
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

This template adds per-server tokens for both MCP_MAILTOOLS and MCP_CALENDARTOOLS, but the updated ToolingManifest.json only defines CalendarTools. Either restore the MailTools server in the manifest or remove the MailTools token variable so the template matches the configured servers. Also consider clarifying that BEARER_TOKEN should be left empty when using per-server tokens for the V2 per-audience model.

Suggested change
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)
BEARER_TOKEN_MCP_MAILTOOLS=
# Leave BEARER_TOKEN empty when using V2 per-server bearer tokens.
BEARER_TOKEN=
# V2 per-server bearer tokens (dev mode — SDK reads BEARER_TOKEN_<SERVER_NAME_UPPER>)

Copilot uses AI. Check for mistakes.
BEARER_TOKEN_MCP_CALENDARTOOLS=

# Enable to use observability exporter, default is false which means using console exporter
ENABLE_A365_OBSERVABILITY_EXPORTER=false
Expand Down
12 changes: 3 additions & 9 deletions nodejs/openai/sample-agent/ToolingManifest.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
{
"mcpServers": [
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_MailTools",
"scope": "McpServers.Mail.All",
"audience": "ea9ffc3e-8a23-4a7d-836d-234d7c7565c1"
},
{
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

ToolingManifest.json now only includes mcp_CalendarTools. The Node.js samples’ agents handle EmailNotification and prompt the model to “retrieve this message”, which relies on mcp_MailTools; removing it will break that flow. Add back an mcp_MailTools entry (and keep mcp_CalendarTools) so email retrieval works again.

Suggested change
{
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_MailTools",
"scope": "Tools.ListInvoke.All",
"audience": "910333d2-47e9-43ca-981f-6df2f4531ef4",
"publisher": "Microsoft"
},
{

Copilot uses AI. Check for mistakes.
"mcpServerName": "mcp_CalendarTools",
"mcpServerUniqueName": "mcp_CalendarTools",
"url": "https://agent365.svc.cloud.microsoft/agents/servers/mcp_CalendarTools",
"scope": "McpServers.Calendar.All",
"audience": "ea9ffc3e-8a23-4a7d-836d-234d7c7565c1"
"scope": "Tools.ListInvoke.All",
"audience": "910333d2-47e9-43ca-981f-6df2f4531ef4",
Comment on lines 6 to +8
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

The URL/audience values here don’t match the PR description (“V2 URLs” under test.agent365.svc.cloud.dev.microsoft and per-server audiences for Mail vs Calendar). Update the url to the V2 hostname and set the audience to the Calendar audience GUID intended for mcp_CalendarTools.

Copilot uses AI. Check for mistakes.
"publisher": "Microsoft"
}
]
}
Loading