One error message. One afternoon. A fully wired AI dev environment.
Here’s the unfiltered version of how that went.
The wall: SSH authentication
I tried to add a plugin to Claude Code and immediately got this:
git@github.com: Permission denied (publickey).
No SSH keys existed on my machine. Zero. So I built them from scratch.
ssh-keygen -t ed25519 -C "your@email.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Copied that last output, pasted it into GitHub → Settings → SSH and GPG keys. Then verified:
ssh -T git@github.com
Got the success message. Moved on.
The plugin marketplace
With SSH sorted, I added the official Anthropic plugin marketplace:
/plugin marketplace add anthropics/claude-code
/reload-plugins
After reload: 23 plugins, 15 skills, 22 agents, 5 hooks. That number hitting all at once felt like unlocking a cheat code.
One thing that tripped me up: running /skills showed “No skills found.” Looked broken. It’s not — plugin skills load automatically based on context. They don’t show up in a list. Took me longer than I’d like to admit to figure that out.
GitHub MCP: the config trap
I wanted GitHub wired directly into Claude so I could manage repos without leaving the terminal. Ran the setup, got this:
Invalid MCP server config for 'github': Missing environment variables: GITHUB_PERSONAL_ACCESS_TOKEN
I had the token. The problem was where I put it. I’d added it to ~/.claude/settings.json — which does nothing for MCP servers. Turns out MCP servers have to live in ~/.claude.json or be added through the CLI.
The fix was one command:
claude mcp add github --scope user -- npx -y @modelcontextprotocol/server-github
github: ✔ Connected
That’s the kind of thing that isn’t in any tutorial because everyone assumes you already know it.
Canva MCP: skip the manual config
I tried connecting Canva by passing a URL directly. Got invalid token errors, missing auth errors, the works.
The actual solution was embarrassingly simple: go to claude.ai → Settings → Integrations → connect Canva there. That’s it. 30 Canva tools showed up immediately. Don’t try to wire it manually.
The Astro site (Node version hell)
I wanted a blog. Ran the standard scaffold:
npm create astro@latest site -- --template blog --typescript strict --install --no-git --yes
It worked — but the dev server wouldn’t start. My Node version (v20.10.0) is too old for Astro 5, which requires Node ≥22.12.0. No version manager on this machine either.
Fix was to pin to Astro 4, which supports Node 20:
npm install astro@^4 @astrojs/mdx@^3 @astrojs/sitemap@^3
Then the template itself used Astro 5 APIs throughout — render(post) instead of post.render(), post.id instead of post.slug, content config in the wrong place. Went through and corrected each one. The site is running at localhost:4321 now and you’re reading this on it.
What I ended up with
By the end of the session:
- SSH keys configured and verified
- Claude Code plugin marketplace loaded (23 plugins)
- GitHub MCP connected — repo management from the terminal
- Canva MCP connected — 30 design tools available
- Atlassian MCP connected — Jira and Confluence accessible
- Astro 4 blog running locally with a custom dark theme
None of this was hard in hindsight. It was just a series of walls that required knowing the right thing to try next. That’s what I’m documenting here.
What’s next
Next post will be a Salesforce Flow walkthrough — something I actually build at work, broken down so it makes sense even if you’re newer to the platform.
After that: a real about page, and probably a post on how I’m using Claude Code to draft and publish all of this.
More soon.