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" />
<PackageReference Include="Snail.Sdk.Mcp.Testing" />
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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
#tool nuget:?package=Snail.Sdk.Mcp.Testing&version=0.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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, aTestFolder), deleted when the test run ends, and no settings file (ServerProgram.NoSettingsFile, which never exists, in itsSNAIL_MCP_<SHORT>_CONFIG). A server that never answersinitializefails the test after two minutes with the program named, and its process is ended.TestFolder.Create(): a temporary folder for a test, nameds3l-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 fromDirectory.CreateTempSubdirectory()or a random name underPath.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.
- Source and issues: https://github.com/orldev/Snail.Sdk
- The standard: orldev.github.io/Snail.Sdk
| Product | Versions 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.
-
net10.0
- ModelContextProtocol (>= 2.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.