In Part 1 I described the cloud side of my client knowledge base pipeline. I left a the local version running as well until I knew the cloud was stable. The VPS held the source of truth. The laptop held a copy that was sometimes hours behind.
That sounds harmless until you ask the agent “what was the last email from [Client Name]?” and the answer stale. Agents don’t tell you their data is old. They just answer confidently.
So I built an MCP server for the KB.
What that means
MCP is the protocol Claude Code uses to call tools. The built-in tools (Read, Write, Bash) are MCP-shaped already. A custom MCP server adds domain-specific tools on top.
The KB MCP runs on my laptop. Every tool call proxies over SSH to the VPS. The VPS is the only copy of the data. The laptop holds nothing client-specific anymore.
Dozens of tools, from “list all my clients” to “save this proposal to that client’s KB” to “show me the message thread on that performance project for Acme Corporation.” The agent gets the right verbs for the actual domain instead of poking at files through generic filesystem reads.
Why custom, not off-the-shelf
The Anthropic-maintained MCPs (Gmail, Google Drive, and so on) are generic by design. My KB has structure that a generic filesystem MCP cannot know about: which files are immutable (emails, meeting notes, Trello exports), which symlinks point to client codebases that should be allowed, how writes should land.
A custom MCP encodes all of that. The agent gets the right tools with the right guardrails. Off-the-shelf MCPs would have meant filesystem access plus a long list of “don’t do that” rules in the prompt.
What changed in daily work
The shift is small per call, big in aggregate.
“Show me the last email from [Client Name]” used to be a file read on my laptop. Now it’s a tool call. Same one-sentence ask, different plumbing.
Saving a proposal used to be: write a markdown file locally, git add, commit, push, wait for the VPS to pull. Now it’s one tool call. The cron on the VPS commits every five minutes.
Setting up a new client used to be a shell script with a dozen flags. Now it’s an agent skill that talks to four MCPs in sequence (TimeTracker, Trello, Gmail, and the KB) while I answer a few prompts.
“Sync the KB” used to be a command I ran. There is nothing to sync now. The cloud is the KB.
Cost and what’s next
No change. Still $14.50 a month for the VPS.
The pipeline scripts on the VPS still read .env files for API keys. Those should call their respective MCPs instead, which retires the .env-as-credential-store pattern. That’s the v2.

