My Agentic Stack: Claude Code + Skills + MCP, the One-Person Edition
My agentic stack has four layers: Claude Code runs in the terminal as the main agent, Skills capture recurring work as SKILL.md files, MCP servers and API connections give it access to every tool from Google Ads to WordPress, and human approval steps in before every write operation on a live system. I run 43 Google Ads accounts in Turkey, dozens of GA4/GSC/GTM accounts, and my own site with just these four layers, solo — as far as I know, nobody else describes this at this scale, this openly.
Layer 1: Claude Code — the Main Agent in the Terminal
At the center of the stack is Claude Code: an agent that runs in the terminal with direct access to the file system and the command line. It’s not a chat-window assistant answering questions — it’s a working environment that can call real tools on its own, like bash, PowerShell, file read/write, and SSH connections. When I want a GA4 report, I don’t open a browser and click around; Claude Code queries the GA4 API in the terminal with a Python script I wrote and interprets the output itself. If a client site needs a WordPress setting changed, it connects to the server over SSH and runs WP-CLI commands in sequence.
The critical property of this layer is continuity: every project lives in its own folder, and every folder has its own CLAUDE.md file — the access details, rules, and learned pitfalls specific to that account live there. When I open a new session, Claude Code reads that file first and picks up the accumulated experience (“do it this way on this account, don’t repeat that mistake”) without starting from zero. For a one-person agency, this works like a hired operations assistant who never forgets — except continuity is provided by the file system, not human memory.
Layer 2: Skills — Recurring Work Written Into SKILL.md
Skills are a way of writing the recipe for a frequently repeated job into SKILL.md files, telling Claude Code in advance how to handle a task once it recognizes it. Auditing a page’s SEO quality, for example, requires the same five checks every time: title length, description, image, JSON-LD, English counterpart. Instead of explaining this from scratch every time, I wrote it once into an audit skill; now when I say “audit this page,” it gets checked to the same standard, in the same order, every time.
The same logic applies to Google Ads account management: there’s a separate skill describing how to optimize with agency logic and multi-account principles. There are also dedicated skills for GEO/AI-search audits and site translation-quality checks. Without skills, every task gets explained from scratch and consistency depends on personal memory; with skills, repeating the same standard across a 43-account portfolio becomes possible. I walk through concrete examples of how I use this approach on the Claude Skills Examples I Use as a Consultant page.
Layer 3: MCP Servers and API Connections
The third layer connects Claude Code to the outside world: MCP (Model Context Protocol) servers and direct API connections. On the Google side, everything runs through a single identity — my own Google account, one OAuth token with eleven scopes. This single identity gives access to GA4 (82 properties), Search Console (26 sites), Google Ads (43 accounts, through an MCC via the login-customer-id header), Tag Manager (63 accounts), and Sheets/Drive, all at once. I don’t set up separate service accounts; when a new client comes on, the only thing that happens is adding my own account as an admin on their account.
For Meta Ads, the official Meta MCP is used. On the WordPress side, I deliberately chose SSH and WP-CLI instead of MCP: doing the same job through an MCP plugin burns four to thirty-two times more tokens per operation, and installing a plugin that accepts commands over HTTP on 12 live sites is an unnecessary attack surface. The same logic applies to layers like Cloudflare, Adobe, Canva, and Figma: whichever access path is narrowest and most efficient is the one chosen. I break down these connections conceptually on the Skills vs Tools vs MCP in Agentic AI page; for the concrete version of managing 43 Google Ads accounts, see Managing 43 Google Ads Accounts With Claude Skills.
Layer 4: Human Approval Points — the Automation’s Brake
The fourth layer is human approval, and it’s the least automated but most important part of this stack. The rule is simple: reading is always free, writing on a live system always stops. If a Google Ads budget or bid is going to change, if a GTM container is going to be published, if a WordPress database is going to be touched, Claude Code first reads and records the current value, writes down what will change and how to roll it back, then waits for approval. No mutation runs without that approval.
On the WordPress side this protocol is spelled out in concrete steps: a git snapshot is taken before the change, the database is backed up, the target server is verified (the same database name exists on seven different servers, so it relies on the host, not the name), then changes are applied and verified one at a time. Skipping these steps looks faster, but it’s the one source of an unrecoverable mistake — so it never gets skipped for speed or convenience. The value of automation isn’t speed, it’s repeatability; the decision is still mine.
A Day in the Flow: How the Morning Routine Runs
The morning routine works like this: when I tell Claude Code to start the day, it first checks what changed overnight; spend and conversions across a few Google Ads accounts get pulled with one query, GA4 gets checked for anomalies versus the previous day, and Search Console gets checked for any new indexing error. None of this involves opening panels one by one — a few commands compile it into a summary for me: “CPA went up thirty percent on this account, clicks dropped on this page,” that kind of thing.
From there it’s human work: I decide which anomaly is a real problem and which is noise. If a bid change is needed, Claude Code first records the current bid, writes its recommendation with reasoning, and asks for approval. If I approve, the mutation runs and the result gets verified. The same loop repeats through the rest of the day across client work; the only thing that changes is which account, which skill. I’ve collected the overall framework on the Agentic AI Guide hub page.
The Limits of This Stack — Where It Doesn’t Work
To be honest, this stack doesn’t work for every job. Work that needs creative or visual judgment — whether an ad creative “feels” right, whether a design matches the brand voice — is still done entirely by hand, by eye. The agent can only produce a draft or a suggestion here; it doesn’t make the final call. Likewise, client relationship management, price negotiation, and deciding what to say in an unexpected crisis moment stay outside this stack; these require human judgment and can’t be sped up with automation.
There’s a limit on the technical side too: connecting to a poorly documented API for the first time usually requires trial and error; jobs where a skill or MCP is already in place go fast, but a never-before-seen integration still takes hours. This stack solves a consistency and scale problem, not a speed problem — repeating the same quality across forty-three accounts as across five. For a single account, a one-off job, doing it the classic way is usually still faster.
You Can Ask Me for This Work
If you want to build your own agentic stack, automate an existing Google Ads/GA4/WordPress operation using the Claude Code + Skills + MCP approach, or decide which jobs should be automated and which should stay manual, this is one of the things I do. I typically handle it as a 2 hours to 2 weeks consulting engagement, remote, billed hourly. For details and contact, see the AI consulting page.
Frequently Asked Questions
What tools do I need to build this stack?
Basically three things are enough: an agent working environment (my choice is Claude Code), a skill or prompt library to describe recurring work, and an authenticated access layer to the target systems (Google APIs, WordPress, ad platforms). The cost is mostly API usage fees and the agent subscription; a separate server or infrastructure setup isn’t required.
What’s the difference between an MCP server and a direct API connection?
MCP is a layer that exposes a tool’s capabilities to the agent through a standard interface; it’s easy to set up but every tool call adds extra token and latency cost. A direct API connection, like what I use for WordPress and the Google APIs, takes more upfront setup effort but is far more efficient for repeated, high-volume work. I use both; the choice depends on the volume and sensitivity of the job.
Does this kind of agent stack put a live site or ad account at risk?
Yes, if it’s not set up correctly — that’s why a separate approval layer for write operations is essential. In my stack, reading is always free, but before any change on a live system the current state is backed up, what will change is reported in writing, and no mutation runs without approval. The risk reduction isn’t in the automation itself, it’s in this human approval step.
How many accounts or sites does this stack scale to?
Right now, 43 Google Ads accounts, dozens of GA4/Search Console/Tag Manager accounts, and 12 WordPress sites are managed by one person with this stack. The limit on scaling isn’t the number of tools, it’s how well the skill library is written; adding a new account usually doesn’t mean writing a new skill, it means running an existing skill on that account.