Tools
Tools are how the model takes actions on your machine: read a file, run a shell command, search the web, query a database. Kenaz ships built-ins and connects to any Model Context Protocol (MCP) server you point it at.
Built-in tools
Always available, no configuration needed:
| Tool | What it does | Permission category |
|---|---|---|
read_file | Read a file by path | Filesystem read |
write_file | Create or overwrite a file | Filesystem write |
list_dir | List a directory's entries | Filesystem read |
path_complete | Tab-completion for paths | Filesystem read (metadata only) |
bash | Run a shell command | Shell |
web_search | Web search via your configured provider | Network |
save_artifact | Persist a generated artifact for the session | (no permission needed) |
Each tool call is gated by permissions — see that page for how to pre-grant categories or paths so the model isn't pinging you constantly.
MCP — Model Context Protocol
MCP is the open spec for how AI clients (like Kenaz) connect to external tool/data servers. There are hundreds of MCP servers — official ones from major SaaS vendors, plus a long tail of community servers.
For step-by-step install instructions, examples (Filesystem, GitHub, Postgres, Slack, Docker-based, custom Python), JSON-config import, per-project configs, and how to write your own server, see Installing MCP servers.
The official catalog: github.com/modelcontextprotocol/servers.
Connecting an MCP server
Tools view → Add MCP server.
Three transports are supported:
- stdio — Kenaz spawns the server as a child process and talks over stdin/stdout. The most common pattern; fits anything you can run with
npxoruvx. - HTTP — point at a URL the server is listening on. Use for servers running as system services or in your team's infrastructure.
- SSE — server-sent events over HTTP. Used by some hosted MCP services.
For stdio servers, the command is what you'd run in a terminal:
# Filesystem (sandboxed to a path)
npx -y @modelcontextprotocol/server-filesystem /Users/you/code
# GitHub
npx -y @modelcontextprotocol/server-github
# Slack
npx -y @modelcontextprotocol/server-slack
You can usually copy these straight from the server's README.
Credentials for MCP servers
Some MCP servers need API keys (GitHub, Slack, Google Drive, …). Kenaz handles this two ways:
- Env vars on spawn. Type
GITHUB_TOKEN=ghp_…in the env section of the server config; Kenaz writes it to the keychain and re-injects on spawn. Plaintext only ever exists in memory while the child process is alive. - OAuth flow. Some servers (Notion, Slack, Google Drive) use the harness's credential resolver to mint per-spawn tokens via OAuth. Kenaz drives the OAuth flow once; subsequent spawns get fresh tokens automatically.
Tool discovery
When you connect an MCP server, Kenaz pulls its tool list and shows it in the Tools view. Each tool can be:
- Enabled by default — the model sees it on every session.
- Available — the model only sees it if you turn it on in the session.
- Disabled — never exposed.
The default for newly-discovered tools is Available (not Enabled) — so the model can't accidentally call a Slack-message-sending tool on its first turn. Promote to Enabled once you've vetted the tool.
Per-session tool selection
In the chat header → Tools dropdown — toggle individual tools on/off for that session. Useful when you want a focused agent (e.g. "filesystem only, no shell") without permanently disabling tools globally.
Recommended starter MCPs
For most users:
- Filesystem (
@modelcontextprotocol/server-filesystem) — scoped reads/writes within a path. Better than the built-in for project work because you can restrict the root and control paths declaratively. - GitHub (
@modelcontextprotocol/server-github) — issues, PRs, commits. - Web fetch (
@modelcontextprotocol/server-fetch) — HTTP fetch for arbitrary URLs.
For developers:
- SQLite / Postgres — query a local DB.
- Memory (
@modelcontextprotocol/server-memory) — persistent fact storage across sessions, useful for long-running agents.
For knowledge workers:
- Notion / Slack / Google Drive — read your documents, summarize threads.
Useful links
- Model Context Protocol spec
- Official server catalog
- Community server list
- Building your own MCP server — Python, TypeScript, Go, Rust SDKs are official