From 1e22d31cbe8d110f6be0c8004a8121fef6e431bb Mon Sep 17 00:00:00 2001 From: huangzhimou Date: Wed, 22 Apr 2026 11:15:08 +0800 Subject: [PATCH] fix(resources): add resourceType description to resourceTypeCompleter Closes #3985 --- .../add-resource-ref-resourceType-description.md | 11 +++++++++++ src/everything/resources/templates.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 .changeset/add-resource-ref-resourceType-description.md diff --git a/.changeset/add-resource-ref-resourceType-description.md b/.changeset/add-resource-ref-resourceType-description.md new file mode 100644 index 0000000000..66ab4a74ac --- /dev/null +++ b/.changeset/add-resource-ref-resourceType-description.md @@ -0,0 +1,11 @@ +--- +"servers/everything" patch +--- + +Fix `get-resource-reference` / `resource-prompt` prompt argument missing description for `resourceType` + +The `resourceType` prompt argument on `resource-prompt` (and `get-resource-reference` tool) now includes the allowed values in its description: `"Type of resource — must be 'Text' or 'Blob'."`. This allows automated callers to determine valid values without guessing or relying on error messages. + +Previously the description only said `"Type of resource to fetch"` with no enumeration of allowed values, causing schema-completeness warnings and hard failures during automated invocation (e.g., mcp-probe). + +See [issue #3985](https://github.com/modelcontextprotocol/servers/issues/3985) for context. diff --git a/src/everything/resources/templates.ts b/src/everything/resources/templates.ts index 6d4903f74c..2d138652b6 100644 --- a/src/everything/resources/templates.ts +++ b/src/everything/resources/templates.ts @@ -25,7 +25,7 @@ export const RESOURCE_TYPES: string[] = [ * The completion logic matches the input against available resource types. */ export const resourceTypeCompleter = completable( - z.string().describe("Type of resource to fetch"), + z.string().describe("Type of resource — must be 'Text' or 'Blob'."), (value: string) => { return RESOURCE_TYPES.filter((t) => t.startsWith(value)); }