Productivity
knowledge-base - Claude MCP Skill
Create and maintain a Markdown knowledge base that any AI agent can read, search, and update. Use when the user wants to start a knowledge base, add or update notes, organize docs/notes for an agent or LLM to consume, build an index of notes, or run a cleanup/maintenance pass on an existing MD knowledge base. Triggers include "knowledge base", "KB", "notes for the agent", "index of notes", "second brain", "docs for AI context", "add a note", "update the KB".
SEO Guide: Enhance your AI agent with the knowledge-base tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to create and maintain a markdown knowledge base that any ai agent can read, search, and update. use wh... Download and configure this skill to unlock new capabilities for your AI workflow.
Documentation
SKILL.md# Knowledge Base (Markdown, agent-readable)
A knowledge base (KB) here is a folder of Markdown files designed so **any** AI
agent can navigate it without a vector database: the agent reads one index file,
picks the relevant notes by their descriptions, and opens only those. Keep the
whole KB readable and the index lean — the index is what gets loaded into
context, so it must be high-signal.
Apply the rules below when creating a new KB, adding/editing notes, or doing a
maintenance pass. When the user's request is ambiguous (new KB vs. add note vs.
cleanup), ask which one before acting.
## Core principles (the "why")
1. **Index-first navigation.** The index is a map, not a container. An agent
reads `INDEX.md`, selects notes by their one-line descriptions, then opens
only those files. No note is "in" the KB unless it's registered in the index.
2. **Atomicity.** One topic per note. If a title needs an "and", it's probably
two notes. Atomic notes are easier to find, link, and reuse.
3. **Stable IDs.** Every note has a permanent ID that never changes and is never
reused, so links survive renames and moves.
4. **Linked with reason.** When two notes connect, state *why* (prerequisite,
supports, contrasts, see-also). Connections carry as much value as the notes.
5. **Lean instructions.** Keep `INDEX.md` instructions short and high-signal —
it competes for the agent's context budget. Bodies load on demand.
6. **Structured for retrieval.** Clear H1 title and H2/H3 sections so an agent
can grab the relevant slice of a note, not the whole thing.
## Folder structure (nested by topic)
```
knowledge-base/
INDEX.md # entry point: instructions + full note registry
topics/
<topic>/
_topic.md # topic map: what this topic covers + its notes
<slug>.md # one atomic note
assets/ # images / attachments referenced by notes
```
- Topic folders are short, lowercase nouns (`auth`, `billing`, `deploys`).
- `_topic.md` is the topic-level map of content (MOC): a short intro plus links
to every note in that topic. It is a convenience view; `INDEX.md` remains the
source of truth.
## Naming rules
- Lowercase **kebab-case**, predictable and greppable: `topics/auth/session-tokens.md`.
- No spaces, no uppercase, no dates in filenames (dates live in frontmatter).
- The filename slug should match the note's `id` slug portion.
## Required frontmatter (every note)
```yaml
---
id: 20260618-session-tokens # ID scheme: YYYYMMDD-slug. Stable. Never reuse or change.
title: Session tokens # human title, also the note's H1
tags: [auth, security] # only tags from the controlled list in INDEX.md
created: 2026-06-18
updated: 2026-06-18
related: [20260618-auth-flow] # IDs of linked notes
summary: One scannable sentence describing what this note covers.
---
```
- `id`: `YYYYMMDD-slug`. Sortable, readable, stable. Different-titled same-day
notes differ by slug; if two same-day notes would collide on the same slug,
append `-2`, `-3`, … (check the `INDEX.md` registry before assigning). Once
assigned, the id is permanent.
- `summary`: this exact sentence is what goes in the index registry — write it to
help an agent decide whether to open the note.
- `updated`: bump it whenever the body changes.
## Note body shape
```markdown
# Session tokens
> Summary: One sentence (mirrors frontmatter summary).
## Context
Why this note exists / when it applies.
## Details
The actual content, in short H2/H3 sections.
## Related
- [Auth flow](auth-flow.md) — prerequisite: tokens are issued during the auth flow.
- [Rate limiting](../api/rate-limiting.md) — see-also: tokens carry the rate-limit key.
```
- Use **relative links** between notes and annotate the relationship in a phrase.
- Every link target should also appear in the note's `related` frontmatter.
## INDEX.md (the single source of truth)
`INDEX.md` has two parts: operating instructions for agents, and the registry.
```markdown
# Knowledge Base — Index
## How to use this KB (for agents)
1. Read this index first. Pick notes by their descriptions; open only those.
2. To answer a question, prefer opening 1–3 specific notes over scanning everything.
3. Cite the note `id` when you use information from it.
## How to update this KB (for agents)
- New idea → create a new note (atomic). Same idea changed → edit the note in place and bump `updated`.
- Any create / rename / delete MUST update this registry and the topic's `_topic.md` in the same change.
- Use only tags from the controlled vocabulary below; add a new tag here before using it.
## Controlled tags
`auth`, `security`, `billing`, `api`, `ops` <!-- extend deliberately -->
## Registry
### auth
- `20260618-auth-flow` — **Authentication flow** — `topics/auth/auth-flow.md` — How a user session is established end to end.
- `20260618-session-tokens` — **Session tokens** — `topics/auth/session-tokens.md` — Token format, lifetime, and rotation.
### billing
- `20260618-invoicing` — **Invoicing** — `topics/billing/invoicing.md` — How invoices are generated and sent.
```
Registry line format: `` `id` — **Title** — `path` — one-line description.``
## _topic.md (topic map)
```markdown
# Auth
Notes covering authentication, sessions, and access control.
- [Authentication flow](auth-flow.md) — how a session is established.
- [Session tokens](session-tokens.md) — token format, lifetime, rotation.
```
## Workflows
### Create a new KB
1. `create_directory` for the folder structure above.
2. `write_file` `INDEX.md` with the instructions block, an empty controlled-tag
list, and an empty registry.
3. Add the first topic folder + `_topic.md`, then the first note (each via `write_file`).
4. Register the note in `INDEX.md` and link it from `_topic.md` — `edit_block`
both so you touch only the changed lines.
### Add a note
1. Pick or create the topic folder (`list_directory` to see what's there).
2. `write_file` the note (kebab-case slug) with full frontmatter and the body shape.
3. Add cross-links (and mirror them in `related`).
4. Register it in `INDEX.md` and link it in `_topic.md` with `edit_block` — same change.
### Update a note
- Same idea, new information → `edit_block` the note in place, bump `updated`, and
`edit_block` the registry line if the scope changed.
- Genuinely new idea → `write_file` a new atomic note instead of expanding this one.
### Maintenance pass (run on demand)
Use `start_search` (ripgrep) for text scans and `get_file_info` / `list_directory`
for existence checks — together they make this tractable at scale:
- **Orphans** (no *inbound* links — outbound doesn't matter): `start_search` the
KB for the note's `id` and filename slug, then discount the self-matches that
always exist — the note's own file, `INDEX.md`, and its `_topic.md`. Anything
left is a genuine inbound reference; nothing left = orphan, so link it from a
relevant note/MOC or archive it.
- **Broken links / drift**: don't infer resolution from a text hit — a string
existing doesn't mean the file does. Confirm each registry path and `related:`
target exists with `get_file_info` (or `list_directory` per topic), and that
every file on disk is registered. Use a text compare only for the
titles/summaries-out-of-sync half.
- **Non-atomic notes**: notes that grew to cover multiple topics → split them.
- **Duplicates**: near-identical notes → merge, keep one `id`, redirect links.
- **Tag sprawl**: read the controlled list from `INDEX.md`, then `start_search`
the frontmatter `tags:` lines and flag any tag not on the list → reconcile.
Pull candidates in bulk with `read_multiple_files`, apply fixes with `edit_block`,
and report what changed.
## Checklist before finishing any KB edit
- [ ] Every new/changed note has complete, valid frontmatter.
- [ ] `id` is unique and unchanged; filename slug matches the id slug.
- [ ] All links resolve and are mirrored in `related`.
- [ ] `INDEX.md` registry and the topic `_topic.md` reflect the change.
- [ ] Tags are from the controlled vocabulary.
- [ ] `updated` bumped on every changed note.Signals
Information
- Repository
- wonderwhy-er/DesktopCommanderMCP
- Author
- wonderwhy-er
- Last Sync
- 11/3/2026
- Repo Updated
- 11/2/2026
- Created
- 1/17/2026
Reviews (0)
No reviews yet. Be the first to review this skill!
Related Skills
CLAUDE
Claude-Mem: AI Development Instructions
cursorrules
CrewAI Development Rules
firecrawl-build-onboarding
Get Firecrawl credentials and SDK setup into a project. Use when an application needs `FIRECRAWL_API_KEY`, when an agent should add Firecrawl to `.env`, when the user wants to authenticate Firecrawl for app code, or when choosing the first SDK and docs for a new Firecrawl integration. This skill includes its own browser auth flow, so it does not depend on the website onboarding skill.
firecrawl-build
Integrate Firecrawl into application code whenever a product, agent, or workflow needs web data inside the app — web search, live search results, page scraping, structured extraction, or browser interaction. Use when building any feature that needs data from the web in code, even if the user does not mention Firecrawl explicitly and only describes wanting web data, website content, search, scraping, or interaction in an application. Trigger for Firecrawl requests, "fire girl" shorthand, and generic app-level web-data needs that should map to `/scrape`, `/search`, or `/interact`. Do not use this skill for one-off terminal-only web tasks during the current session; use `firecrawl/cli` for those.
Related Guides
Bear Notes Claude Skill: Your AI-Powered Note-Taking Assistant
Learn how to use the bear-notes Claude skill. Complete guide with installation instructions and examples.
Mastering tmux with Claude: A Complete Guide to the tmux Claude Skill
Learn how to use the tmux Claude skill. Complete guide with installation instructions and examples.
OpenAI Whisper API Claude Skill: Complete Guide to AI-Powered Audio Transcription
Learn how to use the openai-whisper-api Claude skill. Complete guide with installation instructions and examples.