Microsoft 365 Agents SDK is a software toolkit for building AI agents that can communicate through channels such as Microsoft 365 Copilot, Teams, web apps, and custom applications. Developers use it to add state, storage, event handling, and channel-specific behavior while choosing their own AI services and models. The catalogue entries are skills and plugins for working with this SDK.
Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/microsoft/Agentsnpx agentmods add skills/microsoft/agents/agents-sdk-typescriptWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/microsoft/agents/agents-sdk-typescript)<a href="https://agentmods.dev/skills/microsoft/agents/agents-sdk-typescript"><img src="https://agentmods.dev/badge/skills/microsoft/agents/agents-sdk-typescript/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/microsoft/agents/agents-sdk-typescript"><img src="https://agentmods.dev/badge/skills/microsoft/agents/agents-sdk-typescript.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 5 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Privilege Escalation · line 180 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- high Privilege Escalation · line 303 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- medium Data Exfiltration · line 248 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
- medium Data Exfiltration · line 265 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
- medium Data Exfiltration · line 253 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00111 | $0.04430 |
| Opus 5.5 | $0.00044 | $0.01772 |
| Sonnet 5.5 | $0.00022 | $0.00886 |
| Haiku 4.5 | $0.00011 | $0.00443 |
Grade A, and why
agents-sdk-typescript scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s -X POST \ How it starts
The opening of the file, as written. The whole thing — 504 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Overview
The Microsoft 365 Agents SDK builds multichannel agents for Teams, Copilot Studio, and web chat.
| Package | Purpose |
|---|---|
@microsoft/agents-hosting |
Core: AgentApplication, CloudAdapter, TurnContext, TurnState, storage |
@microsoft/agents-hosting-express |
startServer() convenience wrapper |
@microsoft/agents-hosting-storage-blob |
Azure Blob Storage backend |
@microsoft/agents-hosting-storage-cosmos |
CosmosDB backend |
@microsoft/agents-hosting-dialogs |
Dialog system |
Requires Node 18+. Use node --env-file .env (Node 20+) to load environment variables.
Azure Resources Required
Microsoft Entra App Registration
clientId— Application (client) IDclientSecret— Certificates & secretstenantId— Directory (tenant) ID
Azure Bot Resource
- Messaging endpoint:
https://<your-host>/api/messages - Microsoft App ID must match
clientId
Local dev: Use Bot Framework Emulator. No Azure Bot needed until deployment. Leave clientId blank to skip auth validation.
Environment Variables
Modern format (recommended)
Uses connections__ and connectionsMap__ prefixes. Double underscores (__) separate path segments; .settings. is stripped automatically.
Single connection (most common):
connections__serviceConnection__settings__clientId=<your-app-id>
connections__serviceConnection__settings__clientSecret=<your-secret>
connections__serviceConnection__settings__tenantId=<your-tenant-id>
connectionsMap__0__connection=serviceConnection
connectionsMap__0__serviceUrl=*
How connectionsMap works:
Each entry maps a serviceUrl pattern to a named connection. The first matching entry wins.
serviceUrl=*— matches any service URL (use as the default/fallback)serviceUrlis treated as a regex for all other values
connectionsMap can be omitted when there is only one connection — the SDK defaults it to serviceUrl=*.
Multiple connections (e.g. different identities for different channels):
connections__mainConn__settings__clientId=<app-id-1>
connections__mainConn__settings__clientSecret=<secret-1>
connections__mainConn__settings__tenantId=<tenant-id>
connections__teamsConn__settings__clientId=<app-id-2>
connections__teamsConn__settings__clientSecret=<secret-2>
connections__teamsConn__settings__tenantId=<tenant-id>
connectionsMap__0__connection=teamsConn
connectionsMap__0__serviceUrl=https://smba.trafficmanager.net/.*
connectionsMap__1__connection=mainConn
connectionsMap__1__serviceUrl=*
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 504 lines · 111 tokens per session scan A 53ff3920281d
agents-sdk-typescript is a skill published in the GitHub repository microsoft/Agents (1,086 stars, last pushed yesterday), licensed MIT. It adds 111 tokens to every session and 4,430 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
azure-identity-ts
Authenticate to Azure services using Azure Identity library for JavaScript (@azure/identity). Use when configuring authentication with DefaultAzureCredential, managed identity, service principals, or interactive browser login.
typescript-development
You MUST activate this skill when working on TypeScript or JavaScript projects.
fp-ts-errors
Handle errors as values using fp-ts Either and TaskEither for cleaner, more predictable TypeScript code. Use when implementing error handling patterns with fp-ts.
fp-ts-pragmatic
A practical, jargon-free guide to fp-ts functional programming - the 80/20 approach that gets results without the academic overhead. Use when writing TypeScript with fp-ts library.
fp-types-ref
Quick reference for fp-ts types. Use when user asks which type to use, needs Option/Either/Task decision help, or wants fp-ts imports.
react-modernization
Master React version upgrades, class to hooks migration, concurrent features adoption, and codemods for automated transformation.