MCP and Skill: How an Agent Grows Hands and Learns Routines
Connecting agents to real services and giving them reliable multi-step procedures is what separates a chatbot from a tool that ships work. MCP avoids vendor lock-in and private glue code, while progressive skill loading keeps context windows lean even as an agent's repertoire grows into dozens of capabilities.
An agent with built-in tools hits two walls fast: the tools are never enough, and knowing how to call a tool is not the same as knowing how to do a job. MCP (Model Context Protocol) solves the first by acting as a USB-style standard socket — any external service that speaks MCP gets normalized, namespaced, and injected into the tool registry so the LLM sees it as identical to a built-in. The second wall falls to Skill, a system of Markdown playbooks that spell out when to use which tools, in what order, and how to decide at each fork. Skills load progressively: a one-line summary per skill sits in the system prompt for about 300 tokens total, while the full instruction text is fetched on-demand only when the agent decides a skill is needed. Workspace-level skills in `.catbuddy/skills/` override built-ins, letting each project carry its own agent behavior without touching harness code. Security boundaries — PathGuard, SSRF filtering, dangerous-command blocking — apply equally to external tools, so the capability surface grows but the permission surface does not.
Choosing MCP over a custom tool interface is explicitly framed as rejecting the temptation to reinvent the wheel — the ecosystem access is worth far more than the half-day of coding saved.
Schema normalization is the unglamorous work that makes MCP actually interoperate across providers; nullable types and `anyOf` constructs that one LLM API rejects must be flattened into a common shape.
The `mcp_reload` tool is registered so the agent itself can trigger a hot reconnect, turning infrastructure management into just another tool the model can call.
Progressive disclosure is not just a token-saving trick — it mirrors how humans use manuals: you know a manual exists from its title, but you only open it when the task demands it.
Bundling scripts, references, and assets inside a Skill folder turns a prompt fragment into a distributable executable package, blurring the line between documentation and code.