To use your n8n workflows as tools inside Claude Code, add an MCP Server Trigger node, connect a tool node to it over the ai_tool connection, and activate the workflow. Then point Claude Code at the SSE endpoint: on n8n 2.29 with a v1 MCP Server Trigger the URL is http://host:5678/mcp/{path}/sse, not /mcp/{path} (that 404s). Register it with claude mcp add --transport sse. Separate concern: n8n-as-a-server (this post) is the opposite of czlonkowski/n8n-mcp, which lets Claude build workflows for you.
To keep Claude Code out of your .env, permissions.deny (Read(./.env)) stops the honest mistakes — the Read tool and a literal cat .env — but it is a string match, so node -e readFileSync('.env') or a filename assembled from fragments reads right through. A PreToolUse hook catches the script but still falls to the assembled name. Only the sandbox (sandbox.enabled with sandbox.filesystem.denyRead, Claude Code v2.1.187+) blocks every bypass at the OS level with EPERM. Ranking: sandbox > hook > deny. deny is a mistake-guard, not a security boundary.
A Claude Code slash command isn't a shortcut — it's a decision you stopped re-explaining, and the valuable part of it is the safety rules baked inside, not the instruction.
A screenshot gives Claude something to look at; measurements give it something to prove. When a bug isn't visual — like a horizontal scroll — measure the layout in the console and hand the numbers over as a structured prompt ('don't infer, use these measurements, tell me the rule then fix'). That prompt pattern, not the script, is the reusable part.
Claude Code ported my whole Astro site to a static-export Next.js app (about 18,500 lines) — not hands-off, but most of what I had to tell it once became project rules, so the setup compounds and the next migration needs me less.
If you've connected MCP servers (a notetaker, Gmail, Drive) to Claude Code, check three layers: run claude mcp list to see what's connected (reach), set settings.json permissions so risky tools are read-only or denied (scope — deny wins over allow), and keep the approval prompt on (gate). And remember the vector nobody mentions: text your notetaker pulls in — a meeting transcript — can itself carry instructions the agent will try to follow. Claude Code's own docs warn to trust a server before connecting it.
I'm a freelance frontend dev. I can't design, but I'd been curious about AI design tools for a while, and I was paying for Claude Code Max. When a client asked if I could redesign their site, I said: let me try it with AI. This is the honest story of how that went — the answer to 'how far has AI design come' is 'further than I expected, with more hand-holding than I expected.' The how and why are the rest of this series.
I built an AI agent to automate a design loop, then measured my logs: the human judgment I was trying to remove was the bottleneck. So I stopped optimizing the agent and optimized the collaboration around it.
Design feedback came drawn onto a Figma canvas, not as pinned comments, so the MCP couldn't read it. I stopped guessing at the pixels and matched notes to screens by raw node coordinates over the REST API — a note belongs to the screen whose box its position falls beside.