Skip to main content
Every kit app has one waniwani.config.ts at its root, default-exporting defineApp({ ... }). The CLI reads it to name the server, and the runtime forwards the rest to the host and to the SDK.
waniwani.config.ts

Options

string
required
The MCP server name, e.g. oney-split-payment. Hosts show title to humans and use this one as the id.
string
Shown to humans in connector UIs.
string
Defaults to the version in the app’s package.json.
string
What this app is and how its tools fit together, handed to the host LLM once in the initialize handshake: which tool to reach for, what order things happen in, how to read what comes back, tone, guardrails. Reaches the wire as the MCP server’s instructions.How a single tool behaves belongs in that tool’s own description. A description travels with every tools/list and reaches the model at the moment it is choosing that tool. The overview is read once at connect, so a client that connected before an edit keeps the old copy until it reconnects, and a host is free to drop it altogether. Put nothing load-bearing in it.
Tune, or decline, the search tool the distribution template ships on top of the knowledge base.
TrackingOptions
Forwarded whole to the SDK’s withWaniwani(). Set WANIWANI_API_KEY in the app’s .env for events to reach the platform; without it tracking is a no-op.

Where each value ends up