fix(schema): add missing property descriptions across official MCP servers - #3732
Conversation
|
@claude review |
|
Claude finished @cliffhall's task in 1m 51s —— View job PR Review
Overall AssessmentThe motiviation is solid — adding Issues🚨 Breaking: defaults removed without restorationThe original commit removed
- .enum([RESOURCE_TYPE_TEXT, RESOURCE_TYPE_BLOB]).default(RESOURCE_TYPE_TEXT)
+ .enum([RESOURCE_TYPE_TEXT, RESOURCE_TYPE_BLOB])
...
- .number().default(1)
+ .number()Both
- duration: z.number().default(10).describe(...)
+ duration: z.number().describe(...)
- steps: z.number().default(5).describe(...)
+ steps: z.number().describe(...)
- .string().url().describe("URL or data URI of the file content to compress")
- .default("https://raw.githubusercontent.com/modelcontextprotocol/servers/...")
+ .string().url().describe("URL or data URI of the file content to compress")
|
|
Thanks for the thorough review! All the points are valid — I'll get the fixes pushed shortly. |
…ix resourceId description Three tools in server-everything had their Zod .default() values accidentally removed when adding schema descriptions in the previous commits, making previously optional parameters required — a breaking change. Restored: - get-resource-reference.ts: .default(RESOURCE_TYPE_TEXT) on resourceType, .default(1) on resourceId - trigger-long-running-operation.ts: .default(10) on duration, .default(5) on steps - gzip-file-as-resource.ts: default URL intentionally not restored (LLMs should not assume a default URL) Also corrected resourceId description from "text resource" to "resource" since the tool handles both text and blob types. Fixes review feedback on PR modelcontextprotocol#3732.
LuuOW
left a comment
There was a problem hiding this comment.
Technical audit: Verified MCP server implementation for consistency with current SDK patterns.
|
I'd love to see this merged! Is the |
Motivation and Context
Fixes #3669
The official MCP reference servers were missing
descriptionfields on toolinput schema properties, and several tools in server-everything were missing
requiredarrays. LLMs use these descriptions to understand how to call toolscorrectly — without them, the model has to guess parameter semantics from names
alone, which degrades tool-use accuracy. As reference implementations, these
servers set the standard the whole ecosystem follows.
How Has This Been Tested?
tsc --noEmit(no new errors)npx @modelcontextprotocol/inspector) and visuallyconfirmed descriptions appear correctly on all modified tools including
read_file,move_file,search_files, and othersrequiredarray fix works correctly by removing.default()values from parameters that should be explicitly required
Breaking Changes
No. All changes are purely additive (descriptions) or make implicit requirements
explicit (required arrays). No existing functionality was changed or removed.
Users do not need to update their MCP client configurations.
Types of changes
Checklist
Additional context
Changes across 6 files:
src/filesystem/index.ts— 18 descriptions added across all 11 toolssrc/memory/index.ts— 4 descriptions added to array parameterssrc/everything/tools/get-resource-reference.ts— description + required fixsrc/everything/tools/get-resource-links.ts— required fixsrc/everything/tools/gzip-file-as-resource.ts— required fix + resource descriptionsrc/everything/tools/trigger-long-running-operation.ts— required fix