From knowz
Search, save, query, and manage knowledge in Knowz vaults. Use when the user wants to find knowledge, save an insight, ask a question, browse vaults, configure vault connections, register for an account, or interact with the Knowz knowledge base in any way.
How this skill is triggered — by the user, by Claude, or both
Slash command
/knowz:knowzThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the **Knowz skill**. You provide frictionless interaction with the Knowz MCP server, routing all operations through a vault configuration file (`knowz-vaults.md`) when available.
You are the Knowz skill. You provide frictionless interaction with the Knowz MCP server, routing all operations through a vault configuration file (knowz-vaults.md) when available.
Before using any endpoints or brand names below, check for an enterprise.json file in the plugin root directory (the directory containing .claude-plugin/plugin.json). Read it once at the start of any action.
If the file exists, use its values:
brand → replaces "Knowz" in all user-facing messages (e.g., "Welcome to {brand}", "{brand} MCP server")mcp_endpoint → replaces https://mcp.knowz.io/mcp in all MCP commands and referencesapi_endpoint → replaces https://api.knowz.io/api/v1 in all API calls (e.g., registration: {api_endpoint}/users/register)If the file is absent or a field is missing, use the defaults:
Knowzhttps://mcp.knowz.io/mcphttps://api.knowz.io/api/v1When enterprise.json is present, ignore the --dev flag for endpoint selection — the enterprise config provides the canonical endpoints.
/knowz ask "question" # AI-powered Q&A against vaults
/knowz save "insight" # Capture knowledge to a vault
/knowz search "query" # Semantic search across vaults
/knowz browse [vault-name] # Browse vault contents and topics
/knowz setup [api-key] [--oauth] # Configure MCP + create/update knowz-vaults.md
/knowz status # Check MCP connection and vault health
/knowz register [--dev] # Create account + configure MCP + set up vault
/knowz flush # Process pending captures queue
/knowz "bare question or insight" # Auto-detect intent
$ARGUMENTSParse the first word of $ARGUMENTS to determine the action:
| Prefix / Signal | Action | Primary MCP Tool |
|---|---|---|
ask "question" | AI-powered Q&A | mcp__knowz__ask_question |
save "insight" / learn "insight" | Capture knowledge | mcp__knowz__create_knowledge |
search "query" / find "query" | Semantic search | mcp__knowz__search_knowledge |
browse / list | Browse vault contents | mcp__knowz__list_vault_contents, mcp__knowz__list_topics |
setup / configure / config | Configure MCP + vault file | mcp__knowz__list_vaults |
status / health / check | Check connection and vault health | mcp__knowz__list_vaults |
register / signup | Create account + configure | HTTP API |
flush / sync | Process pending captures | mcp__knowz__create_knowledge |
(bare question — contains ?) | Auto-detect → ask | mcp__knowz__ask_question |
(bare statement — no ?, no prefix) | Auto-detect → save | mcp__knowz__create_knowledge |
Before every action, regardless of intent:
knowz-vaults.md in the project root (the working directory)## Defaults sectionvaultId parameter)"Tip: Run /knowz setup to create a knowz-vaults.md file for vault-aware routing."Before any MCP operation, verify the Knowz MCP tools are available:
Check that mcp__knowz__list_vaults exists in your available tools
If NOT available → run CLAUDECODE= claude mcp get knowz to distinguish:
a) Configured but not active (command succeeds — MCP entry exists): The server was configured in this session but Claude Code hasn't loaded it yet.
┌─────────────────────────────────────────────────────┐
│ RESTART REQUIRED │
│ │
│ Knowz MCP server is configured but not yet active. │
│ │
│ Claude Code only loads MCP servers at startup — │
│ this is a platform limitation, not a bug. │
│ │
│ → Close and reopen Claude Code │
│ → Then run: /knowz status │
└─────────────────────────────────────────────────────┘
STOP here — do not attempt any MCP operations.
b) Not configured (command fails — no MCP entry found):
Knowz MCP server is not connected.
To set it up:
/knowz register — create an account and configure automatically
/knowz setup — configure with an existing API key or OAuth
Or configure manually:
claude mcp add --transport http --scope local knowz https://mcp.knowz.io/mcp \
--header "Authorization: Bearer <your-api-key>"
Then restart Claude Code and run /knowz status to verify.
STOP here — do not attempt any MCP operations.
If available: Call mcp__knowz__list_vaults() as a connectivity smoke test
┌─────────────────────────────────────────────────────┐
│ AUTHENTICATION FAILED │
│ │
│ The Knowz MCP server returned an auth error. │
│ │
│ If using OAuth: │
│ → Restart Claude Code — browser will open for │
│ login on the next MCP call │
│ → If this keeps happening, switch to API Key: │
│ /knowz setup <your-api-key> │
│ (no browser login or token refresh needed) │
│ │
│ If using API Key: │
│ → Your key may be invalid or expired │
│ → Get a new key at: https://knowz.io/api-keys │
│ → Reconfigure: /knowz setup <new-key> │
└─────────────────────────────────────────────────────┘
Knowz MCP server is configured but returned an error:
{error message}
This usually means:
- The Knowz server is temporarily unreachable
- There's a network connectivity issue
Try:
- Verify network connectivity to the Knowz server
- Run "claude mcp list" to inspect server status
- If using OAuth and errors persist, consider switching to API Key
for more resilient connections: /knowz setup <api-key>
registerCreate a new Knowz account and automatically configure MCP + vault.
Reference: Read references/registration.md for API endpoints, error codes, and response format.
--scope <local|project|user> — Configuration scope (default: local)--dev — Use development environment instead of productionBefore starting registration, check if user already has an API key:
KNOWZ_API_KEY environment variable.gemini/settings.json, .vscode/mcp.json, .mcp.json
If existing API key found:
You already have a Knowz API key configured (ending ...{last4}) from {source}.
Options:
1. Use existing key — run /knowz setup to configure this platform
2. Register a new account anyway
3. Cancel
If user chooses option 1: advise running /knowz setup with discovered key.
If user chooses option 2: proceed with registration normally.
If user chooses option 3: stop.
CLAUDECODE= claude mcp get knowzKnowz MCP server is already configured.
Options:
1. Keep existing configuration (abort registration)
2. Remove existing and register new account
Use AskUserQuestion. If they keep existing, STOP.
If they continue, run CLAUDECODE= claude mcp remove knowz first.CRITICAL: Interactive Flow — ask ONE question, then WAIT for response.
Display welcome:
KNOWZ REGISTRATION
Welcome! Let's set up your Knowz account.
This will:
1. Create your Knowz account
2. Generate an API key
3. Configure the MCP server automatically
All data transmitted securely over HTTPS.
Privacy policy: https://knowz.io/privacy
Then use AskUserQuestion to collect (one at a time, validating each):
@ and domainCONFIRM REGISTRATION
Name: {name}
Email: {email}
Password: ********
Is this correct?
Use AskUserQuestion with options: Yes / No / Edit.
Determine endpoint based on --dev flag (see references/registration.md).
curl -s -X POST https://api.knowz.io/api/v1/users/register \
-H "Content-Type: application/json" \
-d '{
"username": "{email}",
"email": "{email}",
"password": "{password}",
"firstName": "{firstName}",
"lastName": "{lastName}",
"registrationSource": "knowzcode",
"returnPersonalApiKey": true
}'
Handle response codes per references/registration.md.
Extract from response: API key from data.personalApiKey (prefix: ukz_). Vault info is NOT in the response — a default vault is auto-provisioned server-side and will be discoverable via MCP after restart.
Parse scope from arguments (default: local). If project scope, warn about .mcp.json git visibility.
Ask auth method:
How would you like to authenticate with the MCP server?
OAuth (recommended) — authenticate via browser, tokens auto-managed
API Key — use the key from registration, no browser step needed
Configure per references/mcp-setup.md.
Verify: CLAUDECODE= claude mcp get knowz
Vault info is not available during registration — MCP requires a restart before it can be used. Skip knowz-vaults.md generation here. The vault will be discovered and configured after restart via /knowz status or /knowz setup.
REGISTRATION COMPLETE
Account:
Email: {email}
Auth: {OAuth OR API Key: ukz_...masked}
MCP Configuration:
Scope: {scope}
Endpoint: {endpoint}
Status: Configured
Then display the restart box:
┌─────────────────────────────────────────────────────┐
│ RESTART REQUIRED │
│ │
│ Claude Code must be restarted to load the new │
│ MCP server — this is a platform limitation. │
│ │
│ → Close and reopen Claude Code │
│ → Then run: /knowz status │
│ │
│ {If OAuth: "Your browser will open for login on │
│ the first MCP call after restart."} │
└─────────────────────────────────────────────────────┘
After restart:
1. Verify connection: /knowz status
2. Set up vault config: /knowz setup
3. Try: /knowz ask "your first question"
4. Save knowledge: /knowz save "your first insight"
setupConfigure MCP server connection (if needed) and generate/update the knowz-vaults.md vault configuration file.
Reference: Read references/mcp-setup.md for MCP configuration details.
$ARGUMENTS after setup)<api-key> — optional API key (positional)--oauth — use OAuth dynamic discovery--endpoint <url> — custom MCP endpoint--scope <local|project|user> — configuration scope (default: local)--dev — use development environmentCheck if mcp__knowz__list_vaults exists in available tools.
If MCP IS available → skip to Step S4 (vault file creation).
If MCP is NOT available → proceed with MCP configuration (Steps S2-S3).
Before prompting for credentials, check known sources per references/mcp-setup.md:
KNOWZ_API_KEY environment variable.gemini/settings.json, .vscode/mcp.json, .mcp.json)--oauth from $ARGUMENTSIf no auth found from any source:
No API key found. How would you like to authenticate?
OAuth (recommended) — authenticate via browser, tokens auto-managed
API Key — enter a Knowz API key, no browser step needed
Register — create a new account (/knowz register)
If user chooses "Register" → advise running /knowz register and STOP.
CLAUDECODE= claude mcp get knowz
local); warn on project scopehttps://mcp.knowz.io/mcp or --dev / --endpoint)claude mcp add per references/mcp-setup.mdCLAUDECODE= claude mcp get knowz.gemini/ directory exists): configure Gemini tooMCP server configured!
Scope: {scope}
Endpoint: {endpoint}
┌─────────────────────────────────────────────────────┐
│ RESTART REQUIRED │
│ │
│ Claude Code must be restarted to load the new │
│ MCP server — this is a platform limitation. │
│ MCP servers only connect at session startup. │
│ │
│ → Close and reopen Claude Code │
│ → Then run: /knowz setup │
│ (to create your vault configuration file) │
└─────────────────────────────────────────────────────┘
STOP here — restart required before vault discovery.Call mcp__knowz__list_vaults(includeStats: true) to discover vaults
If knowz-vaults.md already exists:
Current vault configuration:
Configured:
- Engineering Knowledge (abc-123) — 42 items
- Company Wiki (def-456) — 18 items
Available on server but not configured:
- Personal Notes (ghi-789) — 7 items
Would you like to:
1. Add missing vaults to your configuration
2. Reconfigure from scratch
3. Keep current configuration
If knowz-vaults.md does not exist:
If server has vaults: Present discovered vaults to the user:
Found {N} vault(s) on the Knowz server:
1. {Vault Name} — {item count} items
"{vault description}"
2. {Vault Name} — {item count} items
"{vault description}"
Which vaults would you like to connect to this project?
(Enter numbers, "all", or "none")
Use AskUserQuestion to get their selection
For each selected vault, ask (or infer from the vault description):
Generate knowz-vaults.md using the format from knowz-vaults.example.md
Write the file to the project root
If server has NO vaults: Offer to create one:
No vaults found on the Knowz server.
Would you like to create a vault for this project?
I can set up a general-purpose knowledge vault to get you started.
Suggested vault:
Name: "{project-name} Knowledge"
Description: "Architecture decisions, code patterns, conventions, and technical learnings for {project-name}"
Use AskUserQuestion for confirmation and to let user customize the name/description
If confirmed → call mcp__knowz__create_vault(name, description) to create it
Then generate knowz-vaults.md with the newly created vault
Pre-populate sensible "when to query" and "when to save" rules based on the vault description
Smart defaults for routing rules: When generating rules for a vault, infer from the vault's name and description:
Report success:
Vault configuration saved to knowz-vaults.md
Connected vaults:
- {Vault Name} (query + save)
- {Vault Name} (query only)
You can now use:
/knowz ask "question" — query your vaults
/knowz save "insight" — save to your vaults
/knowz search "term" — search across vaults
statusCheck MCP connection health and vault configuration.
Check MCP tool availability:
mcp__knowz__list_vaults is NOT in available tools → report "MCP not connected" with setup instructions:
Knowz MCP not connected. Run /knowz setup or /knowz register to configure.
Test MCP connectivity:
mcp__knowz__list_vaults(includeStats: true)Check vault file:
knowz-vaults.md in project rootReport status:
Knowz Status
MCP Connection: Connected
Server vaults: {N} vault(s) available
- {Vault Name} — {item count} items
- {Vault Name} — {item count} items
Vault Configuration: {Configured / Not configured}
{If configured:}
File: knowz-vaults.md
Connected vaults: {N}
- {Vault Name} ({vault ID prefix}) — matched on server
- {Vault Name} ({vault ID prefix}) — NOT FOUND on server (stale config?)
Default vault: {name}
{If not configured:}
No knowz-vaults.md found. Run /knowz setup to create one.
Pending captures: {N items in knowz-pending.md, or "None"}
Auto-trigger: {Active (vault file found) / Inactive (no vault file)}
Surface actionable issues:
/knowz setup to refresh."/knowz setup."/knowz setup for vault-aware routing and auto-trigger behavior."/knowz flush to sync pending captures to vaults."flushProcess the pending captures queue — drain knowz-pending.md to vaults.
Read pending captures file:
knowz-pending.md from the project root----delimited capture blocks:
0 pending captures — nothing to flush.
STOP.Verify MCP connectivity:
mcp__knowz__create_knowledge is availableCannot flush — MCP not connected. Run /knowz setup first.
STOP.knowz-vaults.md to resolve vault IDsParse capture blocks:
--- delimiters###), Category, Target Vault, Source, ContentFlush each capture to MCP:
For each parsed block:
a. Resolve target vault ID from knowz-vaults.md matching the Target Vault name. If only one vault configured, use it for all.
b. Build mcp__knowz__create_knowledge payload:
title: from the ### header (after timestamp and --)content: the Content field valueknowledgeType: "Note"vaultId: resolved vault IDtags: extract from [TAGS] section in content if present, otherwise derive from Categorysource: the Source field value
c. Call mcp__knowz__create_knowledge with the payload
d. On success: mark the block for removal
e. On failure: leave the block in place, log the errorUpdate the pending captures file:
# Knowz Pending Captures and description line)Report results:
Flushed {success}/{total} pending captures to vault.
Captured:
- {title1} → {vault name}
- {title2} → {vault name}
{If any failed:}
Failed:
- {title3} — {error reason}
Run /knowz flush again when MCP is available.
{If all succeeded:}
All captures synced. Pending file cleared.
askAI-powered Q&A against configured vaults.
$ARGUMENTS (everything after ask)## Defaultsmcp__knowz__ask_question with:
question: the user's questionvaultId: the matched vault ID (if vault file exists)researchMode: true for complex questions (multi-part, "how", "why", "compare"), false for simple lookupsFrom {Vault Name}:
{answer content}
saveCapture an insight or piece of knowledge to a vault.
Parse the content from $ARGUMENTS (everything after save or learn)
If content is empty, ask the user what they want to save using AskUserQuestion
Category detection — scan the content for signal words:
| Signal Words | Category |
|---|---|
| pattern, reusable, utility, helper | Pattern |
| chose, decided, opted, because, trade-off | Decision |
| workaround, limitation, instead, temporary | Workaround |
| faster, optimized, reduced, cache, performance | Performance |
| security, vulnerability, sanitize, auth, encrypt | Security |
| always, never, standard, rule, convention | Convention |
| (no clear match) | Note |
Vault routing: Match content against each vault's "when to save" rules
Content formatting: Apply the target vault's content template. Expand terse user input into detailed, self-contained content:
[CONTEXT] {Where/why this arose — component, technology, problem}
[INSIGHT] {The knowledge — detailed, self-contained, actionable}
[RATIONALE] {Why this approach, alternatives considered}
[TAGS] {category, technology, domain keywords}
Generate title: {Category}: {Descriptive summary with key technology names}
Dedup check: Call mcp__knowz__search_knowledge with:
query: the generated titlevaultId: the target vault IDlimit: 3Similar knowledge already exists:
"{existing title}"
{brief snippet}
Options:
1. Create anyway (new entry)
2. Skip (don't save)
3. Update existing item
mcp__knowz__update_knowledge instead of createCreate: Call mcp__knowz__create_knowledge with:
content: the formatted contenttitle: the generated titleknowledgeType: "Note"vaultId: target vault IDtags: [category, extracted-keywords]source: "knowz-skill"Report success:
Knowledge captured!
Title: {title}
Vault: {vault name}
Tags: {tag list}
searchSemantic search across configured vaults.
$ARGUMENTS (everything after search or find)mcp__knowz__search_knowledge with:
query: the search queryvaultId: the vault IDlimit: 10Results from {Vault Name}:
1. {title} — {snippet}
2. {title} — {snippet}
3. {title} — {snippet}
Results from {Other Vault}:
1. {title} — {snippet}
No results found for "{query}" across configured vaults.
Try:
- Broader search terms
- /knowz browse to see what's in your vaults
- /knowz ask "{query}" for AI-powered Q&A
browseBrowse vault contents and topics.
$ARGUMENTS (everything after browse or list)mcp__knowz__list_topics(vaultId) to get topic overviewmcp__knowz__list_vault_contents(vaultId, limit: 20) for recent items{Vault Name} ({item count} items)
Topics:
- {topic 1} ({count} items)
- {topic 2} ({count} items)
Recent items:
- {title 1}
- {title 2}
- {title 3}
/knowz search "topic name"| Condition | Response |
|---|---|
| MCP tools not available | "Knowz MCP not connected. Run /knowz setup or /knowz register." |
| Vault file not found | Zero-config mode — proceed without vault scoping, suggest /knowz setup |
| MCP call fails | Report error clearly: "Knowz MCP returned an error: {error}. Check your connection." |
| Dedup match found | Present existing item, ask: create anyway / skip / update existing |
| Multiple vaults match | Ask user which one using AskUserQuestion |
| No vaults match routing rules | Use default vault from ## Defaults section, or first vault listed |
| Empty arguments | Show usage help with examples |
For complex, multi-step research tasks, dispatch the knowledge-worker agent instead of handling inline:
Dispatch when:
How to dispatch:
Use the Agent tool with subagent_type "knowledge-worker" — pass the user's query
and let the agent handle multi-step vault operations.
For simple single-query/single-save operations, handle directly in this skill — don't dispatch an agent for simple tasks.
# Account setup
/knowz register # create account + auto-configure
/knowz setup # configure MCP + create vault file
/knowz setup ukz_abc123 # configure with specific API key
/knowz setup --oauth # configure with OAuth
# Ask a question
/knowz ask "What's our convention for error handling in APIs?"
# Save an insight
/knowz save "We chose Redis over Memcached because we need pub/sub for real-time notifications"
# Search for knowledge
/knowz search "authentication patterns"
# Browse vaults
/knowz browse
/knowz browse "Engineering Knowledge"
# Check connection and health
/knowz status
# Process pending captures
/knowz flush
# Auto-detected intent (bare input)
/knowz "Why did we use PostgreSQL?" # → detected as ask
/knowz "Always use UTC for timestamps" # → detected as save
Execute the detected action now.
npx claudepluginhub knowz-io/knowz-skills --plugin knowzLoads Obsidian vault notes as conversational context when users request personal notes via phrases like 'check my notes about'. Scans MOCs, retrieves linked notes, limits to 15k chars.