Tool exposure
Set options.toolExposure in your capabilities file to control what MCP clients see after capa install. The mode changes both tools/list and whether capa writes project-local MCP config files.
options: toolExposure: expose-all # expose-all | on-demand | none| Mode | What tools/list returns | MCP config files | How the agent calls tools |
|---|---|---|---|
expose-all (default) | Every tool required by any active skill (full schemas) | Written (main capa entry + sub-agent entries as needed) | Direct MCP tools/call |
on-demand | Only meta-tools setup_tools and call_tool | Written (same as expose-all) | Call setup_tools(['<skill>']), then call_tool(name, data) |
none | Empty list | Not written — capa skips .mcp.json / .cursor/mcp.json / Codex MCP entries and removes previously written ones | Invoke via capa sh <group> <tool> |
Guidance
Section titled “Guidance”Use expose-all when you want the simplest setup: the client discovers every required tool up front. Best for smaller toolsets and interactive IDE agents.
Use on-demand when context windows get crowded. The agent activates skills when needed; setup_tools returns compact signatures, and invalid call_tool errors can include the full schema so the agent can retry without re-running setup.
Use none when policy forbids per-project MCP config edits, or you prefer shell-driven invocation. The capa HTTP server still runs; tools/list stays empty so MCP clients do not harvest the full tool list, while capa sh continues to execute tools.