Blog post
Local Knowledge Beats Always-On Tools in AI-Assisted Development
Why the biggest gain in AI-assisted development comes from durable local knowledge and disciplined workflow structure, not from keeping every external tool always active.
For a while, I was asking the wrong question.
I was looking at MCP servers, documentation retrieval, agent workflows, and project playbooks and thinking about them mostly in terms of capability.
More tools should make the agent more powerful. More power should make the work better.
That sounds reasonable.
It is also incomplete in a way that becomes expensive very quickly.
Because once you start building seriously with AI, the real problem is not:
How many tools can the agent access?
It is:
Where does the knowledge live, and when should capability actually be pulled in?
That shift changed the way I think about AI-assisted development.
The friction that made it obvious was embarrassingly simple.
Every time I started a new session with an agent, I found myself typing the same explanations:
- here is how request context works in this system
- here is the naming convention for these files
- here is the pattern we use for error handling
- here is why we chose this structure instead of that one
Fifty sessions. Fifty re-explanations. The agent learned nothing durable. I was the memory.
And if I was the memory, then the whole thing was not really an AI-assisted workflow. It was a manual workflow with an AI doing the typing.
That is when the question changed.
The hidden cost of always-on tooling
MCP tools are genuinely useful.
There is no point pretending otherwise.
Runtime introspection, framework-aware debugging, component discovery, structured access to capabilities: these are real advantages.
But they are not free.
The cost is not always visible as a line item. It shows up in the behavior of the system:
- more context surface
- more structured payloads
- more reasoning overhead
- more latency
- more tokens spent on tasks that were not that hard to begin with
This is why "more tooling" is not the same as "better setup."
A tool can be individually good and still be systemically expensive when it is always present.
That is the first distinction that matters.
Capability and knowledge are not the same thing
The mistake I was making was treating all helpful external layers as if they solved the same problem.
They do not.
Some layers give the agent power. Others give it context. Others help structure the work itself.
Once I started separating those roles, the setup became much clearer.
At a high level, I now think about the stack like this:
- MCP for action and runtime introspection
- Context7 for targeted external documentation
- local skills, patterns, and conventions for internal project knowledge
- OpenSpec for structuring non-trivial change work
That separation matters because each of these layers has a different cost profile and a different failure mode.
If you blur them together, the setup becomes harder to reason about.
MCP is best when it adds capability
The cleanest use case for MCP is when the agent needs to do something it otherwise could not do well.
Examples:
- inspect a running Next.js app
- look at real runtime errors
- work with a component system through dedicated tooling
- access a capability that is operational, not just informational
That is where MCP earns its overhead.
What I would not do is treat MCP as the default answer for every knowledge need.
If the problem is mainly "understand this library" or "check the current API shape," capability is probably not the bottleneck.
In those cases, always-on operational tooling can be overkill.
Context7 is efficient because it stays narrow
One of the most useful realizations for me was that retrieval works best when it stays targeted.
That is why Context7 makes sense in a different category.
It is good for:
- looking up specific library behavior
- checking docs without dragging in unnecessary operational surface
- resolving uncertainty without turning the session into a larger tool invocation than needed
It helps because it answers the real question without expanding the whole environment around the question.
That is a very different kind of value from MCP.
The real force multiplier is local knowledge
The bigger shift, though, had nothing to do with external tools.
It had to do with where project knowledge lives.
If the model has to relearn the same project every session, the system is wasting effort.
If conventions, patterns, and decisions only live in chat history, the agent starts every new task with partial amnesia.
And if every meaningful step depends on asking outward again, then the workflow becomes:
- more variable
- more expensive
- less repeatable
This is why local knowledge matters so much.
Once patterns, conventions, and project rules start living inside the repository, the setup changes completely.
The agent no longer has to rediscover the same logic every time.
It can work from:
- project-specific skills
- conventions
- patterns
- operational rules
- reusable structure
That is what makes the system feel less like prompt orchestration and more like real infrastructure.
OpenSpec solves a different problem
At one point I was also asking the wrong question about OpenSpec.
I was thinking about it as if it belonged in the same category as doc retrieval or tool invocation.
It does not.
OpenSpec is not there to tell the model more about the outside world. It is there to stop the work from becoming chaotic.
That matters because even with good tools and good knowledge, AI-assisted development still breaks down when work starts without structure.
OpenSpec helps with a different layer:
- proposal before action
- design before implementation
- coherence before speed
That is why the best shorthand I have right now is this:
Context7 optimizes token use. OpenSpec optimizes chaos.
Those are not competing jobs. They are different constraints.
The operating model I trust more now
The model I trust much more today is simple:
- local project knowledge should be the default foundation
- external documentation retrieval should be pulled in when needed
- operational tooling should be activated when it adds real capability
- structured planning should appear as soon as the task stops being trivial
In shorthand:
local knowledge > Context7 > MCP
That hierarchy does not mean MCP is less powerful. It means power is not the only thing that matters.
The best system is the one that keeps the agent effective without making every task heavier than it needs to be.
Why this matters beyond tools
What I like about this model is that it scales beyond the specific products involved.
The real lesson is not "use this tool, not that one."
The real lesson is that AI workflows get better when:
- knowledge becomes durable
- capability becomes deliberate
- structure appears early enough
That is a broader operating principle.
And it is the difference between a setup that feels impressive in a demo and one that actually holds up across weeks of real work.
Final thought
The most useful upgrade in AI-assisted development is rarely another always-on layer.
It is usually a better decision about where knowledge should live, when capability should be invoked, and how much structure the work needs before the agent starts moving.
That is less glamorous than "more tools."
It is also much closer to what makes the workflow sustainable.
Continue exploring
Follow the same line of thought through themes, tags, or a broader local search across the archive.
Keep following the thread.
OpenSpec Optimizes Chaos, Not Tokens
Why OpenSpec belongs in a different category than knowledge tools—and why planning before execution is the actual constraint it addresses.
The Problem Is Not Prompting. It Is Context Decay.
Why AI-assisted development breaks down when useful reasoning disappears between sessions, and why durable project context matters more than clever prompts.
Planning Is Where AI Work Becomes Reviewable
Why planning is less about agent autonomy and more about making AI-assisted work inspectable before it becomes expensive.