feat: add openclaw origin-name alias to MCP tool descriptions

Claude Code sees tools as mcp__openclaw__<name> but skills/instructions
reference the original OpenClaw name (e.g. "memory_search"). Each tool
description now includes a disambiguation line:

  [openclaw tool: <name>] If any skill or instruction refers to "<name>",
  this is the tool to call.

This ensures Claude can correctly map skill references to the right tool
even when the MCP prefix makes the name appear different.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
h z
2026-04-11 17:25:33 +01:00
parent 7a779c8560
commit eee62efbf1

View File

@@ -91,11 +91,17 @@ async function handleRequest(msg) {
}
if (method === "tools/list") {
const tools = toolDefs.map((t) => ({
name: t.function.name,
description: t.function.description ?? "",
inputSchema: t.function.parameters ?? { type: "object", properties: {} },
}));
const tools = toolDefs.map((t) => {
const originName = t.function.name;
const baseDesc = t.function.description ?? "";
const aliasNote = `[openclaw tool: ${originName}] If any skill or instruction refers to "${originName}", this is the tool to call.`;
const description = baseDesc ? `${baseDesc}\n${aliasNote}` : aliasNote;
return {
name: originName,
description,
inputSchema: t.function.parameters ?? { type: "object", properties: {} },
};
});
sendResult(id, { tools });
return;
}