Update to MCP conformance tests version 0.1.13 (#1249)
This commit is contained in:
parent
e55ae7b7bd
commit
0114de746e
4 changed files with 98 additions and 30 deletions
73
package-lock.json
generated
73
package-lock.json
generated
|
|
@ -1,12 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "csharp-sdk",
|
"name": "mcp",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@modelcontextprotocol/conformance": "0.1.10",
|
"@modelcontextprotocol/conformance": "0.1.13",
|
||||||
"@modelcontextprotocol/sdk": "1.25.3",
|
|
||||||
"@modelcontextprotocol/server-everything": "2025.12.18",
|
"@modelcontextprotocol/server-everything": "2025.12.18",
|
||||||
"@modelcontextprotocol/server-memory": "2026.1.26"
|
"@modelcontextprotocol/server-memory": "2026.1.26"
|
||||||
}
|
}
|
||||||
|
|
@ -24,16 +23,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@modelcontextprotocol/conformance": {
|
"node_modules/@modelcontextprotocol/conformance": {
|
||||||
"version": "0.1.10",
|
"version": "0.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/conformance/-/conformance-0.1.10.tgz",
|
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/conformance/-/conformance-0.1.13.tgz",
|
||||||
"integrity": "sha512-efzLxW3sNiC48ARADxNkSNSZREdjtQNJ+12MJHCUDSnHZMbiFa7v5SivB2Aja4LCE0ZiWgnG5I5PSNMBrp1xKg==",
|
"integrity": "sha512-J9cC7Dsi7hTn7sxorvxDZ+wC8OlHAkOmVxVm1/IBQ8HEpYJu8r0eAUEw68vTmjBPP5WcU8Jld4RZ3cOFp/Ih1g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@modelcontextprotocol/sdk": "^1.25.2",
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
||||||
"commander": "^14.0.2",
|
"commander": "^14.0.2",
|
||||||
"eventsource-parser": "^3.0.6",
|
"eventsource-parser": "^3.0.6",
|
||||||
"express": "^5.1.0",
|
"express": "^5.1.0",
|
||||||
"jose": "^6.1.2",
|
"jose": "^6.1.2",
|
||||||
|
"undici": "^7.19.0",
|
||||||
|
"yaml": "^2.8.2",
|
||||||
"zod": "^3.25.76"
|
"zod": "^3.25.76"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|
@ -41,9 +42,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@modelcontextprotocol/sdk": {
|
"node_modules/@modelcontextprotocol/sdk": {
|
||||||
"version": "1.25.3",
|
"version": "1.26.0",
|
||||||
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.25.3.tgz",
|
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.26.0.tgz",
|
||||||
"integrity": "sha512-vsAMBMERybvYgKbg/l4L1rhS7VXV1c0CtyJg72vwxONVX0l4ZfKVAnZEWTQixJGTzKnELjQ59e4NbdFDALRiAQ==",
|
"integrity": "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@hono/node-server": "^1.19.9",
|
"@hono/node-server": "^1.19.9",
|
||||||
|
|
@ -54,14 +55,15 @@
|
||||||
"cross-spawn": "^7.0.5",
|
"cross-spawn": "^7.0.5",
|
||||||
"eventsource": "^3.0.2",
|
"eventsource": "^3.0.2",
|
||||||
"eventsource-parser": "^3.0.0",
|
"eventsource-parser": "^3.0.0",
|
||||||
"express": "^5.0.1",
|
"express": "^5.2.1",
|
||||||
"express-rate-limit": "^7.5.0",
|
"express-rate-limit": "^8.2.1",
|
||||||
"jose": "^6.1.1",
|
"hono": "^4.11.4",
|
||||||
|
"jose": "^6.1.3",
|
||||||
"json-schema-typed": "^8.0.2",
|
"json-schema-typed": "^8.0.2",
|
||||||
"pkce-challenge": "^5.0.0",
|
"pkce-challenge": "^5.0.0",
|
||||||
"raw-body": "^3.0.0",
|
"raw-body": "^3.0.0",
|
||||||
"zod": "^3.25 || ^4.0",
|
"zod": "^3.25 || ^4.0",
|
||||||
"zod-to-json-schema": "^3.25.0"
|
"zod-to-json-schema": "^3.25.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
|
|
@ -467,10 +469,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/express-rate-limit": {
|
"node_modules/express-rate-limit": {
|
||||||
"version": "7.5.1",
|
"version": "8.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.2.1.tgz",
|
||||||
"integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==",
|
"integrity": "sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ip-address": "10.0.1"
|
||||||
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16"
|
"node": ">= 16"
|
||||||
},
|
},
|
||||||
|
|
@ -629,7 +634,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/hono/-/hono-4.11.7.tgz",
|
"resolved": "https://registry.npmjs.org/hono/-/hono-4.11.7.tgz",
|
||||||
"integrity": "sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==",
|
"integrity": "sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.9.0"
|
"node": ">=16.9.0"
|
||||||
}
|
}
|
||||||
|
|
@ -682,6 +686,15 @@
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
|
"node_modules/ip-address": {
|
||||||
|
"version": "10.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
|
||||||
|
"integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ipaddr.js": {
|
"node_modules/ipaddr.js": {
|
||||||
"version": "1.9.1",
|
"version": "1.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
||||||
|
|
@ -1207,6 +1220,15 @@
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/undici": {
|
||||||
|
"version": "7.20.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/undici/-/undici-7.20.0.tgz",
|
||||||
|
"integrity": "sha512-MJZrkjyd7DeC+uPZh+5/YaMDxFiiEEaDgbUSVMXayofAkDWF1088CDo+2RPg7B1BuS1qf1vgNE7xqwPxE0DuSQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=20.18.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/unpipe": {
|
"node_modules/unpipe": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
|
|
@ -1252,6 +1274,21 @@
|
||||||
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
|
"node_modules/yaml": {
|
||||||
|
"version": "2.8.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
|
||||||
|
"integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
|
||||||
|
"license": "ISC",
|
||||||
|
"bin": {
|
||||||
|
"yaml": "bin.mjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 14.6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/eemeli"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/zod": {
|
"node_modules/zod": {
|
||||||
"version": "3.25.76",
|
"version": "3.25.76",
|
||||||
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
|
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,7 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Pinned npm dependencies for MCP C# SDK integration and conformance tests",
|
"description": "Pinned npm dependencies for MCP C# SDK integration and conformance tests",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@modelcontextprotocol/conformance": "0.1.10",
|
"@modelcontextprotocol/conformance": "0.1.13",
|
||||||
"@modelcontextprotocol/sdk": "1.25.3",
|
|
||||||
"@modelcontextprotocol/server-everything": "2025.12.18",
|
"@modelcontextprotocol/server-everything": "2025.12.18",
|
||||||
"@modelcontextprotocol/server-memory": "2026.1.26"
|
"@modelcontextprotocol/server-memory": "2026.1.26"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -332,16 +332,49 @@ public class ConformanceTools
|
||||||
{
|
{
|
||||||
Properties =
|
Properties =
|
||||||
{
|
{
|
||||||
["color"] = new ElicitRequestParams.UntitledSingleSelectEnumSchema()
|
["untitledSingle"] = new ElicitRequestParams.UntitledSingleSelectEnumSchema()
|
||||||
{
|
{
|
||||||
Description = "Choose a color",
|
Description = "Choose an option",
|
||||||
Enum = ["red", "green", "blue"]
|
Enum = ["option1", "option2", "option3"]
|
||||||
},
|
},
|
||||||
["size"] = new ElicitRequestParams.UntitledSingleSelectEnumSchema()
|
["titledSingle"] = new ElicitRequestParams.TitledSingleSelectEnumSchema()
|
||||||
{
|
{
|
||||||
Description = "Choose a size",
|
Description = "Choose a titled option",
|
||||||
Enum = ["small", "medium", "large"],
|
OneOf =
|
||||||
Default = "medium"
|
[
|
||||||
|
new() { Const = "value1", Title = "First Option" },
|
||||||
|
new() { Const = "value2", Title = "Second Option" },
|
||||||
|
new() { Const = "value3", Title = "Third Option" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
#pragma warning disable MCP9001
|
||||||
|
["legacyEnum"] = new ElicitRequestParams.LegacyTitledEnumSchema()
|
||||||
|
{
|
||||||
|
Description = "Choose a legacy option",
|
||||||
|
Enum = ["opt1", "opt2", "opt3"],
|
||||||
|
EnumNames = ["Option One", "Option Two", "Option Three"]
|
||||||
|
},
|
||||||
|
#pragma warning restore MCP9001
|
||||||
|
["untitledMulti"] = new ElicitRequestParams.UntitledMultiSelectEnumSchema()
|
||||||
|
{
|
||||||
|
Description = "Choose multiple options",
|
||||||
|
Items = new ElicitRequestParams.UntitledEnumItemsSchema
|
||||||
|
{
|
||||||
|
Enum = ["option1", "option2", "option3"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
["titledMulti"] = new ElicitRequestParams.TitledMultiSelectEnumSchema()
|
||||||
|
{
|
||||||
|
Description = "Choose multiple titled options",
|
||||||
|
Items = new ElicitRequestParams.TitledEnumItemsSchema
|
||||||
|
{
|
||||||
|
AnyOf =
|
||||||
|
[
|
||||||
|
new() { Const = "value1", Title = "First Choice" },
|
||||||
|
new() { Const = "value2", Title = "Second Choice" },
|
||||||
|
new() { Const = "value3", Title = "Third Choice" }
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -354,8 +387,7 @@ public class ConformanceTools
|
||||||
|
|
||||||
if (result.Action == "accept" && result.Content != null)
|
if (result.Action == "accept" && result.Content != null)
|
||||||
{
|
{
|
||||||
return $"Accepted with values: color={result.Content["color"].GetString()}, " +
|
return $"Elicitation completed: action={result.Action}, content={result.Content}";
|
||||||
$"size={result.Content["size"].GetString()}";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
"Microsoft.AspNetCore": "Warning"
|
"Microsoft.AspNetCore": "Warning"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AllowedHosts": "*"
|
"AllowedHosts": "localhost;127.0.0.1;[::1]"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue