Liking cljdoc? Tell your friends :D

toolnexus.core


buildclj/s

(build {:keys [mcp skills skill-defs skill-provider builtins tools agents
               disable-tools wait-for]
        :as opts})

Build a toolkit from every configured source.

opts: :mcp — an mcp.json string or map (SPEC §2/§0.3) :skills — a skills root, a seq of roots, or a seq of skill defs (§3) :skill-defs — skills supplied as DATA, bypassing the filesystem (§3 S1) :skill-provider — a 0-arg fn producing skill defs, resolved here (§3 S1) :skills-filter — name->bool allowlist over the skill catalog (§3 S2) :skill-sample-limit — 0 ⇒ default 10 · n>0 ⇒ cap · -1 ⇒ no <skill_files> (§3 S5) :disable-skills — names to drop from the catalog; sugar over the filter :builtins — the §0.11 toggle: false | {:disabled ..} | {:enabled ..} | {:tools {..}} :agents — remote A2A agents; each advertised skill becomes a tool (§7A) :tools — extra Tools of your own (native, http, a2a, anything) :disable-tools — final exposed names to drop, across EVERY source (§4A) :wait-for — the ONE §10 host resolver. Passed to the MCP source so a connected server may elicit input mid-tools/call; absent ⇒ the elicitation capability is not advertised at all.

Returns a toolkit plus what it took to get there: {:tools .. :sources .. :skills .. :statuses .. :errors .. :connections .. :wait-for ..}

Every source is ISOLATED (§0.3): a source that fails contributes an error and a status, never an exception. A toolkit with one dead MCP server is still a working toolkit — that is the whole point of the status map.

Build a toolkit from every configured source.

opts:
  :mcp                 — an mcp.json string or map (SPEC §2/§0.3)
  :skills              — a skills root, a seq of roots, or a seq of skill defs (§3)
  :skill-defs          — skills supplied as DATA, bypassing the filesystem (§3 S1)
  :skill-provider      — a 0-arg fn producing skill defs, resolved here (§3 S1)
  :skills-filter       — name->bool allowlist over the skill catalog (§3 S2)
  :skill-sample-limit  — 0 ⇒ default 10 · n>0 ⇒ cap · -1 ⇒ no <skill_files> (§3 S5)
  :disable-skills      — names to drop from the catalog; sugar over the filter
  :builtins            — the §0.11 toggle: false | {:disabled ..} | {:enabled ..} | {:tools {..}}
  :agents              — remote A2A agents; each advertised skill becomes a tool (§7A)
  :tools               — extra Tools of your own (native, http, a2a, anything)
  :disable-tools       — final exposed names to drop, across EVERY source (§4A)
  :wait-for            — the ONE §10 host resolver. Passed to the MCP source so a
                         connected server may elicit input mid-`tools/call`; absent
                         ⇒ the `elicitation` capability is not advertised at all.

Returns a toolkit plus what it took to get there:
  {:tools .. :sources .. :skills .. :statuses .. :errors .. :connections .. :wait-for ..}

Every source is ISOLATED (§0.3): a source that fails contributes an error and
a status, never an exception. A toolkit with one dead MCP server is still a
working toolkit — that is the whole point of the status map.
sourceraw docstring

executeclj/s

(execute tk name args)
(execute tk name args ctx)

Run a tool by name. A throw becomes an error ToolResult (§0.8).

Run a tool by name. A throw becomes an error ToolResult (§0.8).
sourceraw docstring

shutdown!clj/s

(shutdown! tk)

Disconnect every MCP connection a toolkit opened. Idempotent.

Disconnect every MCP connection a toolkit opened. Idempotent.
sourceraw docstring

skills-promptclj/s

(skills-prompt tk)

SPEC §3/§0.6 — the skills preamble for the system prompt.

SPEC §3/§0.6 — the skills preamble for the system prompt.
sourceraw docstring

to-anthropicclj/s

(to-anthropic tk)
source

to-geminiclj/s

(to-gemini tk)
source

to-openaiclj/s

(to-openai tk)
source

tool-namesclj/s

(tool-names tk)
source

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close