Repository navigation
Trim whitespace around tool names on create, update and bulk create - #1655
Merged
Merged
Conversation
helpcodeai
enabled auto-merge (squash)
November 13, 2026 08:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
On 13 Nov a customer saved a tool named
\tdigitalocean_destroy_droplet(leading tab, pasted) from the web UI. The tool DTOs only checked@IsString()and@MaxLength(64), so the name was stored as typed. The MCP SDK then logs "Tool name validation warning" on every tools/list, and clients that check the name format may refuse the tool. Four Cloud connectors carry a name with whitespace around it today.Tool names are now trimmed in
CreateToolDto,UpdateToolDtoand therefore every item ofBulkCreateToolsDto, before the length check. No stricter format check: hand-made tools may already use other characters, and refusing them would break working setups. Same behaviour in Cloud and self-hosted. Names already stored are not touched.Changes
parsers/tool-name.util.ts:trimToolName()(strings trimmed, anything else passed through to the validators).tools.controller.ts:@Transform(trimToolName)on thenameof the create and update DTOs; the three DTO classes are exported for the spec.tools.controller.dto.spec.ts: runs the DTOs through the same globalValidationPipeasmain.ts.Type
Testing
packages/backendafternpx prisma generate:npx jest src/connectors/tools.controller src/connectors/parsers/tool-name --maxWorkers=4: 3 suites, 43 tests passed.npx eslinton the three files: clean.npx tsc --noEmit -p tsconfig.json: no errors.Checklist
npm test) (connector suites locally, full suite in CI)Related Issues
Found in the 13 Nov Cloud log check (MCP SDK tool name validation warnings).