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/microsoft/mcp-dotnet-samples/copilot-instructionsgit clone --depth 1 https://github.com/microsoft/mcp-dotnet-samplesWhat 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 | $0.01021 | $0.01021 |
| Opus 5 | $0.00511 | $0.00511 |
| Sonnet 5 | $0.00204 | $0.00204 |
| Haiku 4.5 | $0.00102 | $0.00102 |
Grade A, and why
mcp-dotnet-samples copilot-instructions.md scanned grade A with 0 findings 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 2d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Copilot Instructions (Concise) – MCP .NET Samples
Purpose: Make agents instantly productive. Follow ONLY patterns proven in this repo; don’t invent abstractions.
Architecture & Runtime
- Mono-repo of independent Hybrid MCP servers:
awesome-copilot/,markdown-to-html/,todo-list/,outlook-email/+ shared libshared/McpSamples.Shared/. - Hybrid pattern: same
Program.cscan run STDIO (default) or stateless HTTP when-- http(or envUseHttp=true). Selection viaAppSettings.UseStreamableHttp(...); final wiring throughBuildApp(useStreamableHttp). - Discovery: Tools / Prompts / Resources auto-registered by assembly scan (
With*FromAssembly). New public attributed types in the entry assembly just work—avoid manual registration. - HTTP mode: single POST
/mcp; some samples add dual OpenAPI docs (swagger 2.0 + openapi 3.0) viaMcpDocumentTransformer<T>.
Sample-Specific Nuance
- awesome-copilot: Large
metadata.json; reuseIMetadataService(don’t repeatedly load whole file). Tools: search & load instructions. - markdown-to-html: Extra switches
-tc,-p,--tagsonly parsed AFTER--delimiter. - todo-list: In‑memory SQLite kept alive by one singleton
SqliteConnection; use EF Core set-based ops (ExecuteUpdateAsync/ExecuteDeleteAsync). - outlook-email: Supports auth parameters (
--tenant-id/-t,--client-id/-c,--client-secret/-s) or user secrets; can also host via Azure Functions (see sample README). Only add auth handling inside this sample—do not leak to shared.
Core Conventions
- Target: .NET 9; nullable + implicit usings enabled globally.
- Entry project path pattern:
./<sample>/src/<PascalName>.HybridApp/. - Always preserve argument delimiter:
dotnet run … -- --http <other-switches>. - JSON camelCase & case-insensitive (match existing config); prefer
System.Text.Json. - Keep Dockerfiles minimal; expose port 8080 internally; local HTTP dev ports: ac=5250, todo=5240, html=5280, outlook=5260.
Adding / Modifying Tools
- Create public class or method with
[McpServerTool](and[Description]for method + parameters). Return lightweight DTO / primitives; let host format. - For prompts use
[McpServerPrompt]. No manual DI registration unless you need extra services—then add viabuilder.ServicesbeforeBuildApp.
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.
- 2d ago First seen · 57 lines · 1,021 tokens per session scan A 90aad4e049db
mcp-dotnet-samples copilot-instructions.md is an instructions file published in the GitHub repository microsoft/mcp-dotnet-samples (196 stars, last pushed 6d ago), licensed MIT. It adds 1,021 tokens to every session, about $0.0051 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
csharp-sdk copilot-instructions.md
Copilot instructions for modelcontextprotocol/csharp-sdk, covering copilot instructions for mcp c# sdk, github interactions, commits and pushes, ai-generated content disclosure and critical: always build and test.
own-planner AGENTS.md
Instructions for am-space/own-planner, covering agents.md, common commands, verify only one stack, single test project, class, or method and run the console chat loop (type exit to quit).
own-planner CLAUDE.md
Instructions for am-space/own-planner, covering claude.md, common commands, verify only one stack, single test project, class, or method and run the console chat loop (type exit to quit).
own-planner copilot-instructions.md
Instructions for am-space/own-planner, covering ownplanner copilot instructions, repository overview, architecture documentation, general rules and database migrations.
own-planner backend.instructions.md
Instructions for am-space/own-planner, covering backend instructions, technology, coding rules, layering rules and web server guidance.
own-planner frontend.instructions.md
Instructions for am-space/own-planner, covering frontend instructions, technology, coding rules and change preferences.