MCP in Practice: An Agent Ecosystem from auggie to gmail
MCP Isn't Just a Protocol — It's an Ecosystem
Model Context Protocol (MCP) lets an LLM call external tools, but the real value isn't in the protocol itself — it's in the tooling ecosystem you build around it. I currently have 3 MCP Servers integrated into Claude Code, and they cover the three core scenarios of my daily work.
The Three MCP Servers
1. auggie — Codebase Semantic Search
auggie builds a semantic index for Git repositories so Claude can search code in natural language.
Typical usage:
- "Find the middleware code that handles cookies"
- "Which files deal with track-switching logic"
- "Where's the core formula for water resources carrying capacity computation"
auggie's constraint is that it can only index Git repositories (a security policy choice) — it won't search files like ~/.personal_env. That's actually a feature: sensitive material is naturally isolated.
2. cclog — Session History Search
cclog is an MCP Server I wrote that builds a SQLite index over Claude Code's 512+ historical sessions.
Core API:
search_sessions(query)— keyword search across sessionsget_session_detail(id)— pull the full conversation logget_daily_digest(date)— what got done on a given day
Why it matters: Claude Code drops the context the moment a session ends. cclog lets me retrieve across sessions — for example, "the session where I fixed deploy.sh last week, what exactly changed?"
3. gmail — Email Read/Write
A node-based Gmail MCP that supports searching, reading, sending, and labeling. Paired with the daily Briefing system, it powers automated information delivery.
Registration and Management
MCP Servers are registered in the mcpServers field of ~/.claude.json:
claude mcp add auggie -- auggie --mcp --mcp-auto-workspace
claude mcp add cclog -- python3 ~/Dev/cclog/src/cclog/mcp_server.py
claude mcp list # verify
You must restart the CC session after editing this, otherwise the new server won't load.
A Cross-MCP Workflow Example
A typical multi-MCP workflow — "investigate last week's deployment issue":
- cclog:
search_sessions("deploy failure")→ find related sessions - cclog:
get_session_detail(id)→ pull the full transcript, discover it was a CSS hash mismatch - auggie:
codebase-retrieval("deploy.sh rsync")→ locate the deploy script - After fixing → gmail: send a notification email
Claude drives the whole flow autonomously — I never have to switch tools manually.
Lessons Learned
- MCP Servers should be small and focused: each server does one thing; combinations stay flexible
- Register globally, not per-project: use
~/.claude.jsoninstead of.mcp.jsonso every project sees them - Keep the security boundary explicit: auggie won't index non-Git directories; gmail uses OAuth, never stores passwords
- Fail gracefully: a downed MCP Server should never block the entire session
Next on my list: build MCP servers for the Cloudflare API and VPS state monitoring, so Claude can manage infrastructure directly.