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: 2 additions & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,12 @@
{
"name": "microsoft-365-agents-toolkit",
"source": "./plugins/microsoft-365-agents-toolkit",
"version": "1.3.1",
"version": "1.5.0",
"description": "Toolkit for building and evaluating Microsoft 365 Copilot declarative agents — scaffolding, JSON manifest development, capability configuration, and eval workflows.",
"skills": [
"./skills/install-atk",
"./skills/declarative-agent-developer",
"./skills/teams-app-developer",
"./skills/ui-widget-developer",
"./skills/m365-agent-evaluator"
]
Expand Down
3 changes: 2 additions & 1 deletion .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,12 @@
{
"name": "microsoft-365-agents-toolkit",
"source": "./plugins/microsoft-365-agents-toolkit",
"version": "1.3.1",
"version": "1.5.0",
"description": "Toolkit for building and evaluating Microsoft 365 Copilot declarative agents — scaffolding, JSON manifest development, capability configuration, and eval workflows.",
"skills": [
"./plugins/microsoft-365-agents-toolkit/skills/install-atk",
"./plugins/microsoft-365-agents-toolkit/skills/declarative-agent-developer",
"./plugins/microsoft-365-agents-toolkit/skills/teams-app-developer",
"./plugins/microsoft-365-agents-toolkit/skills/ui-widget-developer",
"./plugins/microsoft-365-agents-toolkit/skills/m365-agent-evaluator"
]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "microsoft-365-agents-toolkit",
"description": "Toolkit for building and evaluating Microsoft 365 Copilot declarative agents — scaffolding, JSON manifest development, capability configuration, and eval workflows.",
"version": "1.4.0",
"version": "1.5.0",
"author": {
"name": "Microsoft"
}
Expand Down
1 change: 1 addition & 0 deletions plugins/microsoft-365-agents-toolkit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file eva
|-------|-------------|
| [**install-atk**](./skills/install-atk/SKILL.md) | Install or update the ATK CLI and VS Code extension |
| [**declarative-agent-developer**](./skills/declarative-agent-developer/SKILL.md) | Scaffolding, JSON manifest authoring, capability configuration, security patterns, deployment via ATK CLI |
| [**teams-app-developer**](./skills/teams-app-developer/SKILL.md) | Build, test, and deploy code-based Teams apps (Custom Engine Agents, bots, tabs, message extensions) via the ATK CLI |
| [**ui-widget-developer**](./skills/ui-widget-developer/SKILL.md) | Build MCP servers with OpenAI Apps SDK widget rendering for Copilot Chat |
| [**m365-agent-evaluator**](./skills/m365-agent-evaluator/SKILL.md) | Generate, run, and analyze evaluation suites for M365 Copilot declarative agents |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ This skill triggers when building MCP servers with OAI app or widget rendering f
| **Existing M365 agent, new MCP server** | MCP server + widgets + mcpPlugin.json | Start at [Implementation](#implementation) |
| **Existing MCP server, add Copilot widgets** | Widget support added to existing server | Start at [Copilot Widget Protocol](references/copilot-widget-protocol.md#adaptation-checklist-existing-mcp-server) |
| **Language choice** (non-TypeScript) | Protocol requirements | See [Copilot Widget Protocol](references/copilot-widget-protocol.md) for what to implement, [MCP Server Pattern (TypeScript)](references/mcp-server-pattern.md) as a reference |
| **Deploy to Azure** (remote hosting, not just devtunnel) | Provision + Deploy wired in `m365agents.yml` with Bicep, managed identity, App Insights | Follow [Azure Provision & Deploy](references/azure-provision-deploy.md) |

---

Expand Down Expand Up @@ -372,6 +373,8 @@ Core requirements:
## DevTunnels Setup

> **Local testing only.** DevTunnels are for development and testing on your machine. Before sharing the agent more broadly, deploy both the MCP server and widget assets to a hosted environment (e.g., Azure App Service, Azure Static Web Apps, or another hosting provider) and update the agent manifest URLs accordingly.
>
> **Going to Azure?** To make the Agents Toolkit **Provision** and **Deploy** actions create Azure resources (Bicep) and push the MCP server to Azure App Service, see [references/azure-provision-deploy.md](references/azure-provision-deploy.md). It rewrites `m365agents.yml`, adds `infra/` Bicep, and fixes the `env/.env.<env>` files.

DevTunnels expose your localhost MCP server to M365 Copilot using **named tunnels** for stable URLs. See [references/devtunnels.md](references/devtunnels.md) for setup scripts, command reference, and troubleshooting.

Expand Down Expand Up @@ -413,6 +416,25 @@ On first run, provision the agent once the tunnel is up (see AGENT PROVISIONING

3. **Provision + test** — see AGENT PROVISIONING rule for when this is needed; bump `version` in manifest.json if Copilot doesn't reflect changes

## Deploy to Azure (remote hosting)

The devtunnel workflow above is for **local** development. To host the MCP server on Azure
so it has a stable public URL (and the agent works without a developer machine running),
follow [references/azure-provision-deploy.md](references/azure-provision-deploy.md).

That reference makes the Agents Toolkit **Provision** and **Deploy** buttons do real Azure
work by adding an `arm/deploy` step and a `deploy:` stage to `m365agents.yml`, plus Bicep
under `infra/`. It provisions, with an identity-first, monitoring-ready posture:

- a resource group (created — with a location choice — or reused), with its id saved to env
- an App Service (Linux, Node 22) on a **B1** plan by default, with larger SKUs offered
- a **user-assigned managed identity** instead of secrets (Key Vault reference offered when
a secret is unavoidable)
- **Application Insights** + Log Analytics for monitoring and debugging

Use it whenever the user asks to deploy/host the MCP server on Azure, fix a Provision or
Deploy that does nothing, or wire `m365agents.yml` to Azure infrastructure.

## Best Practices

See [references/best-practices.md](references/best-practices.md) for detailed guidance.
Expand Down
Loading