Yichus / Reference / API MCP tools
api_explore
Inspect a program's typed structure. Start with overview for effects, dataflow, structural signals and boundaries. Agenda enumerates located facts with coverage counts (page with nextCursor until absent); it also runs pure bindings on seeded inputs and labels those results as bounded observations, not proofs. Use explore to navigate paths, search to find structural matches, connections for immediate edges, trace for dependencies, trace_flow for provenance edges, and path for a route between bindings. Each verb delegates to the same SystemProfileApi engine as yichus explore. Returns response with the explorer's type and payload. Paths accept Pkg/Path/binding or default/Pkg/Path/binding; root is empty. Only the parameters documented for the selected verb are accepted. Daemon process management and user-authored query programs are not included.
Kind: Explore. Origin: Yichus/Mcp::catalog.
CLI: yichus explore — one implementation: eight verbs delegate to SystemProfileApi over the bundle target state; daemon flags remain CLI-only because their purpose is process IPC.
Parameters
sources(required, array) — JSON array of {fileName, source} Bosatsu files.verb(required, string) — Required: explore, connections, search, trace, trace_flow, overview, agenda or path.path(optional, string) — explore/overview: optional path, defaults to root. connections: required nonempty path.depth(optional, integer) — explore only: child depth, integer >= 0 (default 1).direction(optional, string) — connections only: both (default), incoming or outgoing.kind(optional, string) — connections only: optional exact edge-kind filter from a previous response.query(optional, string) — search only, required: structural query, e.g. kind:binding. Same query syntax as yichus explore --search.scope(optional, string) — search only: optional path restricting the search.binding(optional, string) — trace/trace_flow only, required: binding path to start from.max_depth(optional, integer) — trace/trace_flow: integer >= 0 (default 10). path: integer >= 1 (default 12).follow_edges(optional, string) — trace/trace_flow only: all (default) or return-data-only.monad(optional, string) — trace/trace_flow only: effect type, default Yichus/IO::IO.overlay(optional, string) — overview only: all (default), effects, dataflow, signals or boundaries.limit(optional, integer) — overview: maximum per section (default 6). agenda: page size (default 1). Integer >= 1.card_type(optional, string) — agenda only: optional card type such as dead-field, discarded-argument or literal-result; unknown types fail with the full list.cursor(optional, integer) — agenda only: integer >= 0 (default 0), then use response.result.nextCursor.package(optional, string) — agenda only: optional exact package filter; coverage counts remain program-wide.from(optional, string) — path only, required: starting binding path.to(optional, string) — path only, required: destination binding path.
Read the result according to this tool’s scope: static checks, bounded execution checks, and descriptive diagrams answer different questions. A successful call is not a general approval of the program. The safety and permissions guide compares the checks and provides editable ownership, guard, and role examples.