What problem does it solve? Contributors to the sbuilder-mcp repository need consistent rules for where a tool lives, how it answers, how credentials are routed, and where a new tool must be registered, otherwise tools corrupt the MCP channel, leak tokens, or silently skip publishing. ## Core Features & Use Cases - Tool authoring rules: Enforces answering through text()/image() helpers, console.error-only logging, .js ESM imports, and MCP annotations like readOnlyHint and destructiveHint. - Safe write defaults: Requires every writing tool to take dry_run defaulting to true and return a redacted would_send payload, and to publish through PageSession.applyAndPublish so live editors see changes. - Credential routing: Documents the path-prefix rule in credentialFor(path) mapping /api/v1 to SB_TOKEN, /api/auth to none, and everything else to the rotating session JWT. - Use Case: When adding a new endpoint tool under src/tools/, follow this contract to register it in src/server.ts, both docs/tools.md files, both README tool tables, and add a test before claiming it works. ## Quick Start Ask the agent to add a new MCP tool to sbuilder-mcp following the authoring contract in this skill.