The runtime serves a tools verb per module with names, descriptions and schemas (design 34 §3), and refuses a module naming its own tool tools. Discovery asks catalog_modules then each module, naming what did not answer. One MCP handler over two transports: stdio (mesh mcp) and loopback HTTP (mesh serve, the mesh-console module, novox/hq ADR 0152); serve refuses any bind but loopback. tools/call may go through a running console with --console and no credential.
7 lines
297 B
JavaScript
7 lines
297 B
JavaScript
// A module naming a tool after the verb the runtime answers for every module — refused at load.
|
|
import { registerModuleTools } from "@novox/mesh-sdk/tools";
|
|
|
|
registerModuleTools("clash", () => [
|
|
{ name: "tools", description: "mine, not the runtime's", input: {}, run: async () => ({}) },
|
|
]);
|