Snail.Sdk.Mcp.Testing 0.2.2

dotnet add package Snail.Sdk.Mcp.Testing --version 0.2.2
                    
NuGet\Install-Package Snail.Sdk.Mcp.Testing -Version 0.2.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Snail.Sdk.Mcp.Testing" Version="0.2.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Snail.Sdk.Mcp.Testing" Version="0.2.2" />
                    
Directory.Packages.props
<PackageReference Include="Snail.Sdk.Mcp.Testing" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Snail.Sdk.Mcp.Testing --version 0.2.2
                    
#r "nuget: Snail.Sdk.Mcp.Testing, 0.2.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Snail.Sdk.Mcp.Testing@0.2.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Snail.Sdk.Mcp.Testing&version=0.2.2
                    
Install as a Cake Addin
#tool nuget:?package=Snail.Sdk.Mcp.Testing&version=0.2.2
                    
Install as a Cake Tool

Snail.Sdk.Mcp.Testing

Contract tests of a Snail MCP server, over stdio, against the build a client runs:

  • ServerProgram.StartAsync(assembly, variable): the server started the way a client starts it — the dll beside the tests, or the published program the variable names — with an empty home of its own (ServerProgram.Home, a TestFolder), deleted when the test run ends, and no settings file (ServerProgram.NoSettingsFile, which never exists, in its SNAIL_MCP_<SHORT>_CONFIG). A server that never answers initialize fails the test after two minutes with the program named, and its process is ended.
  • TestFolder.Create(): a temporary folder for a test, named s3l-test-<pid>-<start>-<random> directly in the temporary folder — the test process's id and the second it started (Unix seconds, as the system reports it) — and deleted when the test process exits. A run that crashes leaves it behind, and its name proves it a leftover once no process with that id and start runs, so a cleaner removes it without guessing. Tests take their temporary folders from it rather than from Directory.CreateTempSubdirectory() or a random name under Path.GetTempPath().
  • answer.Text(): the text of a tool's answer.
  • ToolGuards.Problems(tools): every guard rule the listed tools break — snake-case unique names, descriptions in English for the tool and every parameter, the effect stated, every allowed value named.
await using var client = await ServerProgram.StartAsync("Snail.MCP.Demo", "SNAIL_DEMO_SERVER");
var tools = await client.ListToolsAsync();

Assert.Empty(ToolGuards.Problems(tools.Select(tool => tool.ProtocolTool)));

A test project built on Snail.Sdk.Mcp references it implicitly.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.2 83 10/26/2026
0.2.1 190 10/24/2026
0.2.0 163 10/23/2026
0.1.0 103 10/17/2026