MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Rediscover the MCP server
Distinguish schema discovery, host authorization and actual MCP server results.
Objectives
- Use this page to understand: Rediscover the MCP server.
No separately installed service
Prerequisites: Demo060 and Demo400. Working files: Client, Server/SupportTools.cs and tests/LocalMcp.Tests. The client launches its precompiled stdio server; rebuild the solution after edits. Direct mode and tests use fixture business data with a real MCP process. --live adds the configured chat model.
Discover, edit a copy, rediscover
dotnet build BaseTechnique.slnx -m:1 -c Release
dotnet run --project demos/Demo400_LocalMcp/Server/Demo400.Server.csproj -c Release --no-buildRecord the incidentId schema and INC-318/INC-999 results. In a server copy add a separate read-only tool with English description and XML documentation, then rebuild and restart the client. Verify discovery can grow while the host-selected allowlist stays fixed. Deliberately change that policy only in the copy to continue.
Observe the protocol boundary
Expected: Found for INC-318, NotFound without invention for INC-999, isError for invalid input and host refusal of delete_incident before dispatch. Discovery does not authorize a tool. Final prose does not replace the agent mode’s three successful actual lookups. Reserve stdout for protocol traffic and stderr for logs.
Check the running binary
Inspect the server path and Release/Debug configuration. A running process does not automatically reload a new schema. Restart the client owning the subprocess. For failures, inspect initialization, discovery, invocation and disposal separately.
Correction and real transport tests
dotnet test tests/LocalMcp.Tests/LocalMcp.Tests.csproj -m:1 -c Release --no-build --no-restoreTests cover invalid input, denied tools, cancellation, deadline and subprocess shutdown. Correct the exercise by separating exposed schema, selected allowlist and business result; do not hide refusal as an empty answer. An added tool is a working extension with no distributed Start/End solution.
A trusted process
The selected server runs with host permissions. Allowlisting and ReadOnly annotations provide neither an OS sandbox nor authentication. This exercise establishes no live benchmark or general injection resistance.
