Composable Microsoft.Extensions.AI IChatClient middlewares for .NET — tool-call tracking with in-band streaming progress, per-tool token usage reports, and satellite packages for MCP tools and Microso
Middleware extensions for Microsoft.Extensions.AI: per-request and per-tool token usage tracking, and streaming status propagation for IChatClient pipelines.
- Token usage tracking — input/output/total tokens for the main assistant, per model turn, and attributed to each tool call (including LLM calls nested inside tools), rolled up into a ChatUsageReport. - Streaming progress statuses — synthetic ChatProgressContent updates interleaved into the live stream so your UI can show "Calling GetWeather Tool", sub-statuses reported from inside the tool ("Extracting…", "Processing…"), and completion — while the model and tools are still working. - Out-of-band observers — implement IChatProgressObserver to receive the same events and the final report without parsing the stream. - Privacy by default — progress events never carry prompt content, tool arguments, or tool results unless explicitly opted in.
Register the middleware before UseFunctionInvocation() — the tracker must wrap the tools that the function-invoking client executes:
Tools that are themselves LLM-backed (for example, agents exposed as functions) can attribute their own usage to the calling scope with ChatProgress.ReportUsage(...) — or simply run their own UseToolTracking() pipeline, whose total rolls up automatically.
Before persisting responses into conversation history, remove the synthetic content:
First-class MCP support ships as a satellite package so the core stays dependency-lean:
From the project README.
Add the radar badge to your README — it shows your project was picked up by MCP Radar and links to this page:
[](https://mcp.liqiwa.com/s/Andes-Software-Solutions--Andes.Extensions.AI.html)
Firewall-friendly messaging for AI agents: MCP server that turns one Azure Storage account into an addressed multi-agent message bus. Pull-only, zero inbound ports.
0xwilliamortiz/openclaude-improvedruns anywhere. uses anything
livetennisapi/livetennisapi-mcpMCP server for the Live Tennis API — give Claude, Cursor and other LLM agents real-time tennis scores, odds and model win-probability
risa-labs-inc/BossConsoleOpen-source, multi-platform harness for AI agents — a native, multi-threaded operator's console (JVM, not Electron) to run Claude Code, Codex, Gemini or OpenCode with a real browser, terminal, editor,
0xsline/OpenChatCutLocal-first conversational AI video editor with a professional multi-track timeline, Agent Skills, MCP integration, and Remotion-powered rendering.
mrpulor-gh/nuphus-mcpDesktop automation MCP server — computer use for any AI agent: control screen, windows, mouse/keyboard, and Chrome via Model Context Protocol (stdio)
The top new MCP servers of the week, every Monday. No spam, unsubscribe anytime.