From 60e959fb6b415e49ddcb763704af821bbe74e4e7 Mon Sep 17 00:00:00 2001 From: kevin-ramdass Date: Wed, 24 Dec 2025 11:01:42 -0800 Subject: [PATCH 1/3] feat: allow any valid slug for tool names, removing server and tool prefix requirement --- packages/core/src/tools/tool-names.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/core/src/tools/tool-names.ts b/packages/core/src/tools/tool-names.ts index db2967405e2..83ee9538dde 100644 --- a/packages/core/src/tools/tool-names.ts +++ b/packages/core/src/tools/tool-names.ts @@ -88,5 +88,7 @@ export function isValidToolName( return slugRegex.test(server) && slugRegex.test(tool); } - return false; + // Allow any valid slug to support unprefixed MCP tools or other dynamic tools + const slugRegex = /^[a-z0-9-_]+$/i; + return slugRegex.test(name); } From 102b37122a0b0f9de3147ffd2194428fd717e133 Mon Sep 17 00:00:00 2001 From: kevin-ramdass Date: Wed, 24 Dec 2025 11:08:20 -0800 Subject: [PATCH 2/3] feat: validate generic slug names as valid tool names --- packages/core/src/tools/tool-names.test.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/core/src/tools/tool-names.test.ts b/packages/core/src/tools/tool-names.test.ts index 805727c283e..c3335f9021d 100644 --- a/packages/core/src/tools/tool-names.test.ts +++ b/packages/core/src/tools/tool-names.test.ts @@ -30,9 +30,14 @@ describe('tool-names', () => { expect(isValidToolName('my-server__my-tool')).toBe(true); }); + it('should validate generic slug names (unprefixed tools)', () => { + expect(isValidToolName('search_for_files_codesearch')).toBe(true); + expect(isValidToolName('simple-tool-name')).toBe(true); + expect(isValidToolName('tool_with_underscores')).toBe(true); + }); + it('should reject invalid tool names', () => { expect(isValidToolName('')).toBe(false); - expect(isValidToolName('invalid-name')).toBe(false); expect(isValidToolName('server__')).toBe(false); expect(isValidToolName('__tool')).toBe(false); expect(isValidToolName('server__tool__extra')).toBe(false); From ca81bdba4f52b1f22c2f48d66f7828252acb652c Mon Sep 17 00:00:00 2001 From: kevin-ramdass Date: Wed, 24 Dec 2025 15:16:44 -0800 Subject: [PATCH 3/3] test: update agent TOML tools test case --- packages/core/src/agents/toml-loader.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/agents/toml-loader.test.ts b/packages/core/src/agents/toml-loader.test.ts index 68f130a611c..17c9b962fc5 100644 --- a/packages/core/src/agents/toml-loader.test.ts +++ b/packages/core/src/agents/toml-loader.test.ts @@ -107,7 +107,7 @@ describe('toml-loader', () => { const filePath = await writeAgentToml(` name = "test-agent" description = "A test agent" - tools = ["not-a-tool"] + tools = ["tool!"] [prompts] system_prompt = "You are a test agent." `);