One MCP tool — a REPL connection. Everything else is a library of ordinary Clojure functions called through it.
(Amended 2026-08-01: one tool plus await — §9. The test for tool-hood is whether correctness depends on a mapping only
the control layer holds; await over several entries passes it. Amended 2026-08-04: plus cancel, which passes a
different test — the act belongs to the control layer's own lifecycle, not the mapping; §9.)
Why this shape rather than N MCP tools:
(->> (nav/usages 'x) (map :ns) distinct sort)
is one round trip; the equivalent as discrete tools is 1 + N calls, each paying tokens for intermediates that get
discarded.(doc nav/usages)
plus the source beats a JSON schema, and cannot go stale relative to the code.The library must not require the host project's runtime — pure static analysis and file reading, so it still works when the system under inspection is broken, which is when it is most needed.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |