This chapter walks you through wiring Claude Code to your actual tools (Notion, GitHub, Supabase, Vercel...) via MCP. No more copy-pasting between your terminal, your docs and your DB. Required level: Claude Code installed and an account on any service from the list below.
What MCP is
MCP, Model Context Protocol, is the open standard Anthropic created to plug Claude into external services. One unified way to tell Claude "here are my docs, here's my DB, here's my GitHub, help yourself."
The analogy that works: MCP is the USB port of code. Before USB, every printer had its own cable, every camera its own adapter. Same thing for LLMs two years ago: every app that wanted to wire a model into a service wrote its own custom connector. MCP sets a shared format. Claude speaks MCP, the service speaks MCP, they talk.
An MCP server exposes two things:
- Tools: functions Claude can call.
create_issue,execute_sql,get_deployment. - Resources: data Claude can read. A Notion page, a file, a DB schema.
Claude Code consumes, the MCP server provides. The server can run locally (stdio) or remotely (HTTP, since remote MCP hit GA in October 2025).
Why it became essential
Before MCP, life looked like this: you ask Claude for a change in your DB, you copy the schema from Supabase, paste it in, he spits out SQL, you copy the SQL, paste it into the Supabase editor, run it, come back to Claude, tell him "it broke, here's the error." Fifteen round trips for a simple task.
With MCP, Claude does the round trips itself. He reads your schema, writes the migration, applies it, reads the logs, fixes. You watch.
The real shift isn't in reading. It's in the action. Claude can now:
- Create a GitHub issue with labels and assignees
- Query your Supabase DB and generate matching TypeScript types
- Read a Notion page and update it
- Deploy to Vercel and check build logs
- Pull a Sentry error and propose a fix
All of it in the same session, without ever leaving the terminal.
Official servers
Here are the official MCPs most useful to a solobuilder shipping SaaS:
| Server | Description | Docs |
|---|---|---|
| Notion | Read, create, edit pages and databases | notion.com/mcp |
| GitHub | Issues, PRs, commits, repos, code search | github.com/mcp |
| Linear | Issues, projects, cycles, comments | linear.app/mcp |
| Sentry | Errors, events, releases, debugging context | sentry.io/mcp |
| Supabase | SQL, migrations, types, logs, edge functions | supabase.com/mcp |
| Vercel | Deployments, projects, logs, domains | vercel.com/mcp |
| Figma | Designs, code from design, variables, libraries | figma.com/mcp |
| Canva | Designs, export, comments, brand kits | canva.com/mcp |
| Context7 | Up-to-date docs for every lib (React, Next, Prisma...) | context7.com |
The list moves fast. Current reference at code.claude.com/docs/en/mcp.
Step-by-step setup, 3 essential MCPs for a solobuilder
The easiest way to add an MCP to Claude Code is via the /plugin command or the MCP settings menu (Cmd+, on Mac). For the official MCPs listed above, everything goes through OAuth: click "Connect", browser opens, you approve, it's wired.
Notion
Your number one copy-paste battlefield. Specs, todos, client notes, roadmap. Wiring Notion kills 80% of manual round trips.
Connect: /plugin then search "notion", or go directly through MCP settings. The Notion OAuth screen asks which pages/databases to expose. Grant access to the workspaces you actively work in, avoid "all pages" by default.
Useful scopes:
- Pages (read + write)
- Databases (query + update)
- Comments (if you use Notion reviews)
Commands on Claude's side: notion-search, notion-fetch, notion-create-pages, notion-update-page, notion-create-database.
Sample prompt:
Pull my Notion page "Roadmap Q2" and create a GitHub issue
for every item with status "Todo", using the page context
as the issue description.
Claude reads Notion, understands the structure, creates the issues on GitHub's side. One instruction, two MCPs talking to each other.
Vercel
Useful the moment you deploy. You no longer have to copy build logs into Claude when a deploy fails, he fetches them himself.
Connect: /plugin or MCP settings, OAuth Vercel. Pick the team you want to expose.
Useful commands:
list_projects: list your projectslist_deployments: a project's deploy historyget_deployment: details of a specific deploy (URL, status, commit)get_deployment_build_logs: full build logsget_runtime_logs: runtime logs (prod errors)deploy_to_vercel: trigger a deploy
Sample prompt:
My last deploy on the "carbonara" project failed. Pull the
build logs, find the error, propose a fix.
Claude pulls the logs, spots the missing module or TypeScript error, edits the file, you review, you commit. Three minutes instead of fifteen.
Supabase
The most powerful of the three. Claude can read your schema, write SQL, apply migrations, generate TypeScript types, read logs.
Connect: OAuth Supabase through /plugin. Pick which organization to wire. Every action carries the project_ref so Claude knows which project to hit.
Useful commands:
list_projects+get_project: find the right project_reflist_tables: see the current schemaexecute_sql: direct query (read + write)apply_migration: apply a named migrationgenerate_typescript_types: generate thedatabase.types.tsfileget_logs: Postgres, API, auth, edge function logsget_advisors: security and performance warnings
Sample prompt:
Add an "invoices" table with the usual columns (id, user_id,
amount, status, created_at), set a RLS policy "user can read
own invoices", apply the migration to the carbonara-prod
project, then regenerate the types.
Claude writes the migration, applies it via apply_migration, calls generate_typescript_types, updates the local file. Zero copy-paste.
For Supabase, stay on dev/staging at first. Letting Claude write to prod
without review opens the door to a misplaced DROP TABLE. Use Supabase
branches to test migrations before merging.
Custom MCP, the Nano Banana example
Official servers cover 80% of needs. For the remaining 20%, you can host your own MCP. That's exactly what we do in chapter 15 with Nano Banana, a home-grown MCP server that wires the Gemini Image API into Claude Code so you can generate visuals straight from the terminal.
The principle is always the same:
- Write a small server (Node or Python) that exposes tools
- Declare it in your MCP config (
~/.claude/mcp_servers.jsonfor local stdio, or an HTTP URL for a remote MCP) - Claude Code detects it on startup and the tools become callable
Typical cases where building your own MCP is worth it:
- Your SaaS's internal API (so Claude can test endpoints in dev)
- Custom workflows on top of an API that already has an MCP but lacks the action you need
- Domain-specific tool (invoice generator, accounting export, scraper)
Since remote MCP hit GA (anthropic.com/news/claude-code-remote-mcp), you can host your server on Vercel/Fly/Cloudflare and share it across machines without rebuilding locally on every update.
Security
Review before approving a destructive action. MCP gives Claude real permissions on your services. A bad prompt plus a loosely scoped MCP equals lost data.
Three rules to keep:
- OAuth and minimal scopes. When you connect an MCP, OAuth asks which scopes to allow. Pick the minimum needed. For Notion, grant access to relevant workspaces, not "all pages". For GitHub, create a token scoped to specific repos when you can. For Supabase, keep
readandwriteseparate and never connect your prod project with auto-approve on. - Use
/permissionsto audit. The/permissionscommand in Claude Code shows what each MCP can do. Check it after every install. If an MCP asks for more than needed, revoke and reconfigure. - Manual approval on writes. By default, Claude Code asks for confirmation before any action that modifies or deletes. Don't flip auto-approve on MCPs that touch prod data (Supabase, GitHub writes, Linear delete). Keep the confirmation prompt.
If you work with sensitive data (customers, payments), split your MCPs: a "dev" profile with MCPs that hit staging, a "read-only" profile with only read MCPs for exploration sessions.
Wire Notion first. It's the most copy-paste-polluted ground for most solobuilders. Specs, todos, meeting notes, roadmap. The moment Claude can read and write in Notion, you realize how much time you burned playing postman between the two tools.