Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/maxim-mazurok/teams-api/copilot-instructionsgit clone --depth 1 https://github.com/Maxim-Mazurok/teams-apiWrote 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/instructions/maxim-mazurok/teams-api/copilot-instructions)<a href="https://agentmods.dev/instructions/maxim-mazurok/teams-api/copilot-instructions"><img src="https://agentmods.dev/badge/instructions/maxim-mazurok/teams-api/copilot-instructions.svg" alt="Measured on agentmods" height="20"></a>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.01789 | $0.01789 |
| Opus 5 | $0.00894 | $0.00894 |
| Sonnet 5 | $0.00358 | $0.00358 |
| Haiku 4.5 | $0.00179 | $0.00179 |
Grade B, and why
teams-api copilot-instructions.md scanned grade B 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 5d 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.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
const response = await fetch("https://teams.cloud.microsoft/api/mt/...", { method: "POST", How it starts
The opening of the file, as written. The whole thing — 161 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AI Agent Instructions
This file contains guidance specific to AI agents working on this codebase — tool usage, MCP workflows, reverse engineering techniques, and domain knowledge that wouldn't be found in standard developer docs.
- When consuming this project as a user (installing, configuring, using CLI/MCP), refer to README.md.
- When developing this project (making code changes, writing tests, understanding architecture), refer to CONTRIBUTING.md.
Dual-token authentication
Teams uses two independent tokens captured during a single CDP Fetch interception flow in src/auth/token-capture.ts:
| Token | Header | Audience | Used for |
|---|---|---|---|
| Skype token | Authentication: skypetoken=<token> |
Chat Service ({region}.ng.msg.teams.microsoft.com) |
Messages, threads, members, conversations |
| Bearer token | Authorization: Bearer <token> |
api.spaces.skype.com (MSAL) |
Middle-tier APIs on teams.cloud.microsoft (profiles, presence, search) |
These tokens cannot be derived from each other. Both are captured in all three auth strategies and persisted together in the macOS Keychain via src/token-store.ts.
If you discover a new endpoint that requires a different token or audience, update the CDP Fetch interception in src/auth/token-capture.ts.
Known API surfaces
| Host | Auth | Examples |
|---|---|---|
{region}.ng.msg.teams.microsoft.com/v1/ |
Skype token | Conversations, messages, thread members |
teams.cloud.microsoft/api/mt/{region}/ |
Bearer token | fetchShortProfile, user search, presence |
presence.teams.microsoft.com/ |
Bearer token | Availability status |
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.
- 5d ago First seen · 161 lines · 1,789 tokens per session scan B bb57b9bd4176
teams-api copilot-instructions.md is an instructions file published in the GitHub repository Maxim-Mazurok/teams-api (6 stars, last pushed 3d ago), licensed MIT. It adds 1,789 tokens to every session, about $0.0089 per session on Opus 5. A static security scan graded it B with 1 finding (sends data to an external url). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
teams-mcp copilot-instructions.md
Instructions for floriscornel/teams-mcp, covering copilot instructions — teams-mcp, project overview, architecture, commands and ci/cd.
chat AGENTS.md
AGENTS.md instructions for vercel/chat, covering agents.md, commands, per-package, monorepo layout and architecture.
vexa AGENTS.md
AGENTS.md instructions for Vexa-ai/vexa, covering agents.md — the agent front door (in-repo), researching vexa? start here, driving vexa from an agent session, your issue is your prd and claiming — and say hello on discord.
vexa CLAUDE.md
Claude Code instructions for Vexa-ai/vexa, a project described as: Open-source meeting transcription API for Google Meet, Microsoft Teams & Zoom. Auto-join bots, real-time WebSocket transcripts, MCP server for AI agents. Self-host or use hosted SaaS.
agent-almanac CLAUDE.md
Claude Code instructions for pjt222/agent-almanac, covering claude.md, project overview, architecture, five content types and registries.
operately copilot-instructions.md
Copilot instructions for operately/operately, covering operately development instructions, pull request naming convention, working effectively, bootstrap and build the repository and prerequisites: docker 20.0+ with compose plugin, make 4.0+.