MindBase
MindBase — Karpathy의 LLM Wiki를 제품으로
Andrej Karpathy의 LLM Wiki 아이디어를 오픈소스로 구현한 것: AI가 여러분의 소스로부터 위키를 만들고 유지 관리합니다. 벡터 DB에 넣는 RAG가 아닙니다. 디스크에 있는 진짜 마크다운 위키로, LLM이 대화 사이사이에 가꿔줍니다.
npx mindbase-app한 줄 명령: 로컬 서버를 시작하고, 웹 앱을 열고, RAM에 맞는 무료 로컬 모델을 고르도록 안내합니다. API 키가 필요 없고, 어떤 것도 여러분의 기기를 떠나지 않습니다. (Node 20+)
MindBase는 Andrej Karpathy의 LLM-Wiki 패턴을 구현합니다: 소스(논문, 기사, 생각)를 넣으면 LLM이 읽고, 상호 참조하고, 모순을 표시하고, 구조화된 위키 페이지를 작성합니다. 나중에 질문을 하면 위키에는 이미 종합된 답이 있습니다 — 쿼리 시점에 벡터 검색으로 다시 유도하지 않습니다.
상태: 얼리 액세스, 활발히 개발 중입니다. 새로운 소식: CHANGELOG · Releases
왜 MindBase인가
여러분은 많은 것을 읽습니다. 논문, 기사, 트윗, 문서. 그것들을 기억하고, 연결하고, 의견을 형성하고 싶습니다. 오늘날 두 가지 나쁜 선택지가 있습니다:
Notion / Obsidian / Roam: 수동 컨테이너. 모든 정리를 여러분이 합니다. AI 기능은 붙여놓은 생성일 뿐, 유지 관리가 아닙니다.
NotebookLM / Perplexity Pages / ChatGPT search: RAG 기반. 축적되는 것이 없습니다. 모든 질문이 원본 소스에서 답을 다시 유도합니다.
MindBase는 세 번째 선택지입니다: LLM이 소스를 넣을 때마다 지속적이고 구조화된 위키를 적극적으로 유지 관리합니다. 지식이 복리로 쌓입니다. 기여할 때마다 context.md가 더 선명해집니다. AI는 세션을 넘어 여러분을 기억합니다. 여러분의 믿음이 마크다운 파일에 기록되어 있기 때문입니다 — 요약되어 사라지는 채팅 기록에 저장되는 것이 아닙니다.
AI 인턴이 여러분을 위해 작성해 주는 개인 위키라고 생각하세요. 최신 상태로 유지되고, 상호 참조되며, 모르는 것에 대해 정직합니다.
Related MCP server: obsidian-wiki-mcp
작동 방식 (30초)
디스크의 세 가지 물리적 계층 (Karpathy의 모델):
계층 | 소유자 | 무엇이 있는가 |
| 여러분 — 추가 전용, AI는 절대 다시 쓰지 않음 | 빠른 캡처, 전체 노트, PDF, URL |
| AI — 모든 변경은 사람이 승인 | 유지 관리되는 위키: 종합, 개념 페이지, |
| 파생 — 항상 재구축 가능 | 검색 인덱스, 스냅샷, 린트 결과, 작업 기록 |
세 가지 작업이 루프를 돌립니다: ingest (AI가 소스를 읽고, 핵심 요점을 논의하고, 위키 업데이트를 승인받음), build (빌드되지 않은 모든 것에서 context.md 재생성), lint (AI가 자신의 위키에서 모순, 낡은 주장, 고아 문서를 감사).
차별점
AI는 쓰기 전에 묻습니다. 모든 ingest는 핵심 요점 + 체크박스 계획을 보여주고, 승인한 것만 기록됩니다. 지식에 대한 블랙박스 편집이 없습니다.
위키가 노트를 흡수하는 것을 볼 수 있습니다. 모든 노트에는 상태 칩이 있습니다 — 소화될 때까지 ✨ Add to wiki, 이후 ✓ In wiki.
자신의 지식을 감사합니다. 한 줄 명령으로 전체 위키를 다시 읽고 정확히 충돌하는 문장을 인용하여 모순을 보고합니다. Notion과 NotebookLM은 구조적으로 이 작업을 할 수 없습니다.
기본적으로 무료이고 로컬입니다. 하드웨어 감지 마법사가 RAM에 가장 적합한 Ollama 모델을 설치합니다. 클라우드 키는 선택 사항입니다.
디스크의 일반 마크다운. grep하고, git하고, Obsidian에서 열고, 언제든 떠날 수 있습니다.
설치
브라우저 (가장 빠름): npx mindbase-app — 위에 표시된 대로. 모든 것이 localhost:4321에서 로컬로 실행됩니다.
Claude Code (플래그십): 하위 에이전트, 슬래시 명령, 에이전트별 도구 경계를 갖춘 전체 Karpathy 8단계 ingest:
/plugin marketplace add frankchu91/mindbase-llm-wiki
/plugin install mb@mindbase메시지가 표시되면 다시 시작하고 /를 입력하세요 — /mb:contribute, /mb:build, /mb:ask, /mb:lint 및 8개 이상이 보일 것입니다. 엄격한 도구 허용 목록을 가진 5개의 하위 에이전트가 제공됩니다 (빌더는 파일 쓰기 도구가 전혀 없습니다 — 원자적 쓰기 MCP 호출만). 또한 프로젝트 컨텍스트를 자동으로 주입하는 SessionStart 훅이 있습니다.
~/.cursor/mcp.json에 추가:
{ "mcpServers": { "mindbase": { "command": "npx", "args": ["-y", "mindbase-mcp"] } } }Cursor를 다시 시작하면 도구 선택기에 mindbase_contribute 및 48개가 더 표시됩니다. 권장: LLM이 "add to mindbase X" 요청을 도구로 안정적으로 라우팅하도록 ~/.cursor/rules.md에 규칙 블록을 추가하세요 — 가이드에서 복사하세요.
Cascade 설정 → MCP → 추가:
{ "mcpServers": { "mindbase": { "command": "npx", "args": ["-y", "mindbase-mcp"] } } }Cursor와 동일한 규칙 파일 접근 방식이 Cascade에서도 작동합니다.
Cline 설정 → MCP Servers:
{ "mcpServers": { "mindbase": { "command": "npx", "args": ["-y", "mindbase-mcp"] } } }Cline이 자동 감지합니다; 모든 도구 호출은 기본적으로 확인 대화상자를 거칩니다.
~/.continue/config.json, experimental.modelContextProtocolServers 아래:
{ "experimental": { "modelContextProtocolServers": [ { "transport": { "type": "stdio", "command": "npx", "args": ["-y", "mindbase-mcp"] } } ] } }MCP 도구는 채팅에서 @ 아래에 나타납니다.
stdio 서버로 npx -y mindbase-mcp를 가리키세요. 구성 위치는 클라이언트의 MCP 문서를 참조하세요.
다음: 첫 번째 프로젝트를 만들고 네 가지 일상 워크플로를 **가이드 →**에서 배우세요.
웹 UI
0.3부터 브라우저 앱은 독립적으로 동작합니다 — 전체 WYSIWYG 편집기에서 노트 작성 (Cmd+N), 어디서나 빠른 캡처 (Cmd+I), 승인 카드로 AI 작업 실행: /contribute, /build, /lint, /research. **웹사이트**에서 라이브 데모를 확인하세요.
무료 로컬 모델: 설정 마법사가 하드웨어를 감지하고 맞는 모델을 설치합니다 — llama3.2:3b (8GB), qwen3:14b (24GB+), 또는 Meta의 Muse Glimmer 30B (32GB+ Apple Silicon, Ollama ≥ 0.32.7). 측정된 지침: 대화형 작업에는 qwen3:14b (~30초), 백그라운드 lint/build에는 Glimmer — 느리지만, 그 발견 사항은 정확히 충돌하는 문장을 인용합니다. 채팅 작성기의 모델 전환기로 두 번 클릭하여 전환할 수 있습니다.
기능 | Claude Code | Cursor / Windsurf / Cline / Continue | 웹 UI |
슬래시 명령 ( | ✅ | ❌ (자연어 사용) | ✅ ( |
MCP 도구 직접 사용 | ✅ | ✅ | ❌ |
승인 포함 Karpathy 8단계 ingest | ✅ (하위 에이전트) | ⚠️ 프롬프트로 수동 | ✅ (승인 카드) |
PDF & URL 기여 / ingest | ✅ | ✅ | ✅ (업로드 + ✨ Process) |
인용 답변으로 위키에 질문 | ✅ | ✅ | ✅ |
빌드 / 상태 점검 | ✅ | ✅ | ✅ |
위키 트리 탐색 + 리치 편집기 | ❌ | ❌ | ✅ |
| ✅ | ⚠️ 자연어 | ✅ (전환기) |
데이터가 저장되는 위치
모든 것은 ~/mindbase-data/ 아래의 일반 마크다운입니다 (재정의: MINDBASE_DATA_DIR):
~/mindbase-data/projects/my-research/
├── README.md # Ops manual — you edit, LLM reads
├── context.md # Synthesized truth — LLM writes, you approve
├── index.yaml # Auto-generated catalog
├── sources/
│ ├── contributors/<you>/ # Your dated entries + notes (append-only)
│ ├── research/ # LLM-authored wiki pages
│ └── raw/ # PDFs, HTML captures
├── logs/ # Chronological operation log
├── artifacts/ # Briefs, exports, lint findings
└── state/builder/snapshots/ # context.md snapshots for rollback독점 데이터베이스가 없습니다 — 디스크에서 보이는 것이 MindBase가 아는 전부입니다. git init하고, 무엇으로든 백업하고, rm -rf로 프로젝트를 삭제하세요.
아키텍처 한눈에 보기
Claude Code / Cursor / any MCP editor Web UI (npx mindbase-app)
│ MCP · sub-agents with │ /commands ·
│ per-agent tool allowlists │ approval cards
└─────────────┬─────────────────────────┬──────┘
▼ ▼
┌──────────────────────────────────────────────┐
│ One ops engine: gather context → single │
│ constrained JSON completion → human │
│ approval → whitelisted executors → log │
└─────────────────────┬────────────────────────┘
▼
~/mindbase-data/ · plain markdown
(LLM: Ollama local models or any cloud key)모노레포: packages/core (TS strict 라이브러리) · apps/mcp (49-도구 MCP 서버) · apps/server + apps/web (Express + React UI) · apps/app (npx 런처) · apps/plugin (Claude Code 번들).
문서 및 도움말
가이드 — 첫 프로젝트, 네 가지 일상 워크플로, 다중 프로젝트 라우팅, 문제 해결
웹사이트 — 라이브 데모
아이디어: Karpathy의 LLM Wiki gist
로드맵
다음: 원클릭 페이지 캡처 브라우저 확장 · Whisper를 통한 오디오 입력 · Cursor/Windsurf 슬래시 유사 UX를 위한 통합 메타 도구. 나중에: 인간 검토가 포함된 팀 프로젝트 · 오디오 다이제스트 · 데스크톱 앱 · 모바일 캡처.
피드백
2026년 4분기까지 베타. MindBase를 시도하고 포기했다면 — 이유를 알려주세요: 이슈 또는 haobing0304@gmail.com. 여러분이 부딪힌 장애물은 금입니다.
라이선스
MIT — 원하는 대로 사용하세요, 보증 없음. 그 위에 흥미로운 것을 만들면 듣고 싶습니다.
AI의 가장 가치 있는 선물은 "요청 시 생성"이 아니라 "여러분이 소유한 지속적 산출물을 가꾸는 것"이라는 믿음으로 만들어졌습니다.
Available Tools
50 toolsadd_rss_feedA
Subscribe MindBase to a new RSS feed. New entries are auto-fetched every 60 minutes and compiled into wiki pages. Use this when the user says things like "subscribe me to ", "follow this blog", "add this to my feeds", or shares a feed URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The RSS/Atom feed URL | |
| tags | No | Tags applied to all entries from this feed | |
| project | No | Optional project name to group entries under |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to rely on, the description carries the behavioral burden and does well by disclosing the 60-minute auto-fetch cadence and the fact that entries become wiki pages. It covers the side effects of the operation beyond simple 'adds a feed', though it does not mention error cases or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence carries useful information—the verb+resource, the auto-fetch behavior, and concrete user utterances. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and only three simple parameters, the description provides the essential context: the operation, its recurring behavior, and triggering phrases. It does not describe return data or duplicate-feed handling, but for a straightforward subscription tool, the information is sufficient for an agent to act correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics are already fully documented in the schema. The description itself adds no extra detail about how tags or project affect the feed, but it doesn't need to given the complete schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Subscribe MindBase to a new RSS feed') and resource, immediately distinguishing this from sibling tools that read, search, or ingest content. The mention that entries are compiled into wiki pages further sets it apart as a dedicated feed-subscription tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit, actionable usage cues: 'Use this when the user says things like...' with several concrete example phrasings. It does not list exclusions or alternatives, which keeps it just short of a 5, but the context is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
answer_cardA
Submit an answer to a review card. Use ratings as: forgot (didn't know), hard (struggled), good (right answer with effort), easy (instant recall). After answering, the card is rescheduled according to SM-2.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The card ID to answer | |
| rating | Yes | Your self-assessment: forgot, hard, good, or easy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It explicitly discloses that the card is rescheduled according to SM-2 after answering, which is an important side-effect. It does not detail additional mutating behavior or prerequisites, but the disclosed rescheduling is a useful behavioral transparency beyond the raw action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states the action, the second immediately gives the rating semantics and the scheduling consequence. Every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool, the description covers the core action, rating definition, and behavioral after-effect. There is no output schema, so returning details are not explained, but the essential calling context and purpose are sufficiently specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented. The description adds semantic value by explaining each rating (forgot, hard, good, easy) in terms of level of recall, which helps the agent map user feedback to the right enum value more accurately than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Submit') and resource ('answer to a review card'), and it defines what submitting means via the rating scale. This distinguishes it from sibling tools like list_review_cards or create_card, which do not perform the answer-submission action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is used when the agent has completed a review card and needs to record a self-assessment rating. It does not explicitly exclude alternatives or name sibling tools, but the context of answering a card is strong enough to make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_to_pageA
Append content to a section of an existing wiki page. Creates the section if missing. Refuses to modify human-edited pages unless force: true.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| force | No | Bypass human_touched guard (default false) | |
| content | Yes | ||
| section | Yes | Heading text (without ##) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It surfaces two key behaviors: sections are created when missing, and human-edited pages are protected unless force: true. It doesn't cover output format or permission requirements, but for an unannotated tool this is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core action leads, the auto-create behavior follows, and the guard condition is the final, distinct clause. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description transmits the most important context: appending behavior, section creation, and the force guard. It does not mention what happens if the page is missing, whether output is returned, or error scenarios, but those are secondary for a mutation-oriented tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with force and section already documented there. The description adds some context by explaining that content is appended and that force bypasses the guard, but it does not clarify the slug or content parameter trade-offs beyond what one would infer from the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (append), resource (an existing wiki page), and target (a section), and adds the auto-creation behavior. It doesn't explicitly differentiate itself from siblings like update_note_section or create_note, but the wording is specific enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool versus alternatives such as update_note_section or create_note. The force: true clause is a behavioral guardrail, not a usage-selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_wikiA
Ask a natural-language question against the user's wiki. Performs graph-aware retrieval (search → top hits + their 1-hop wikilinks) and returns a cited answer using the configured LLM. Best tool for "what do I know about X?" questions. The answer text contains [N] citation markers — match each N to the corresponding entry in the citations array and render as a clickable link to mindbase_uri.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The natural-language question | |
| max_pages | No | Cap on total pages read (default 8, max 20) | |
| context_pages | No | Optional: explicit page slugs to include as context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly: it explains the retrieval pipeline (search → top hits + 1-hop wikilinks), the use of a configured LLM, and the citation-marker rendering convention. This is more than most tool definitions disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted lines. The first states the core action, the second explains the retrieval behavior, and the third gives the critical citation-rendering instruction. Details are front-loaded and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description must explain the return shape, and it does: the cited answer and the citations array, including how to link each [N] marker to mindbase_uri. The description is sufficiently complete for an agent to select and correctly use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are already well documented in the input schema (100% coverage), so the description doesn't need to add much. The description provides broader retrieval context but doesn't add parameter-specific semantics beyond the schema, which aligns with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Ask a natural-language question against the user's wiki') and a concrete resource, plus the distinguishing output (a cited answer). It differentiates from siblings by emphasizing graph-aware retrieval and 'what do I know about X?' questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly positions this as the 'Best tool for "what do I know about X?" questions', which gives clear direction on when to use it. It does not mention alternatives or exclusions, but the use-case framing effectively routes agents toward it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cardA
Create a new review card manually. Use this when you and the user have just discussed a fact worth remembering long-term, e.g. "add this to my reviews". The card will be scheduled for review immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional tags | |
| answer | Yes | A concise answer (1-2 sentences, min 2 chars) | |
| question | Yes | A specific, answerable question (min 5 chars) | |
| source_slug | No | Optional wiki page slug the card relates to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses an important behavioral consequence: 'The card will be scheduled for review immediately.' Since no annotations are provided, the description carries the full burden. However, it omits other behavioral context such as permissions, reversibility, or what happens to the card afterwards. It earns a 3 for adding meaningful side-effect information without full disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences: one clean action statement and one contextual/behavioral note. Every word earns its place, and the most critical 'when to use' trigger is front-loaded. No irrelevant information is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is fully documented, so parameter coverage is strong. The description provides a clear usage trigger and a notable behavioral side effect. A small gap remains because no output schema exists and the description does not explain the response or success indication, but this is a simple operation and the available context is mostly adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameters, including descriptions for question, answer, tags, and source_slug. The tool description does not add meaning beyond 'Create a new review card', so the schema is doing the heavy lifting. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Create a new review card manually.' The phrase 'when you and the user have just discussed a fact worth remembering long-term' adds useful context and gives an example trigger phrase. It does not explicitly compare against sibling tools like create_note or quick_capture, so it loses a point for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear condition for use: 'Use this when you and the user have just discussed a fact worth remembering long-term, e.g. "add this to my reviews".' This provides strong contextual guidance. It does not explicitly say when not to use it or name alternatives, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_daily_noteA
Open or create the daily note for today (or a specific date). Daily notes follow the slug pattern daily-YYYY-MM-DD and are auto-linked to yesterday/tomorrow. Returns the existing page if already created, marking created: false.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO date YYYY-MM-DD (default: today server-local) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it handles this well: it discloses the open-or-create semantics, the auto-linking to yesterday/tomorrow, and the exact behavior of returning an existing page with `created: false`. This is substantive behavioral context rather than just a restatement of the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences with no filler. Every sentence adds a distinct piece of useful information: purpose, naming/linking behavior, and return behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter tool with no output schema, the description covers the important operational details: how the note title is derived, the linking behavior, and the idempotent return. Some details can be inferred, so it's complete enough for a simple, focused tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter is already fully documented in the schema. The description reinforces the date concept and default but doesn't add new meaning beyond what the schema already provides, so it earns the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Open or create the daily note') and a clear resource ('daily note'), making the tool's core purpose obvious. The slug pattern and auto-linking constrain scope, but it doesn't explicitly distinguish itself from the sibling create_note, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's usage context is implied: it is the tool for daily notes, with today or a specific date, and the schema shows the date parameter is optional. However, it never explicitly says when to prefer this over other creation tools like create_note or when not to use it, leaving the agent to infer the boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_noteA
Create a new wiki note. Use for: capturing a thought, starting a research page, or building a meeting/person/project page from a template. At least one of title or content is recommended. If template is given, it is filled with standard vars (date, time, slug, yesterday_slug, tomorrow_slug, title) plus any custom variables. Existing slugs cause an error — use append_to_page or update_note_section to extend.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | default 'note'. Known: note, daily, meeting, person, project, concept, or custom | |
| slug | No | Override auto-derived slug (must match [a-z0-9][a-z0-9_-]*) | |
| tags | No | ||
| title | No | ||
| content | No | Raw markdown body. Mutually exclusive with template. | |
| project | No | ||
| template | No | Template name (without .md) from ~/mindbase-data/templates/ | |
| variables | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavior disclosure. It discloses the creation side effect, template expansion behavior, standard template variables, custom variable support, and error behavior for existing slugs. It does not mention return values or any access considerations, but the core behavioral traits are clearly conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action and purpose, then provides behavioral caveats. Every sentence earns its place: when to use, template/variable behavior, and error alternative. No padding or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter creation tool with no output schema, the description covers most of what an agent needs: purpose, template mechanics, at least one accepted input, and the failure mode. It doesn't document return output or some remaining fields, but the core success path and failure behavior are present, so it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, so the description must partially compensate. It adds value by explaining the relationship between title/content and template, and by enumerating the variables injected into a template. However, parameters like kind, tags, and project receive no additional semantic meaning beyond shallow schema names, leaving some parameter intent under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and resource: 'Create a new wiki note.' It then lists concrete use cases (capturing a thought, starting a research page, building a meeting/person/project page) and distinguishes itself from extend-style siblings by warning against existing slugs. This is enough for an agent to tell it apart from related tools like append_to_page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use guidance: capturing thoughts, research pages, and template-based pages. It also provides an explicit when-not-to-use path: 'Existing slugs cause an error — use append_to_page or update_note_section to extend.' This leaves little ambiguity about choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_subgraphB
Export a page + its connected neighbors (up to N hops) as a self-contained markdown bundle.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| depth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the behavioral burden. It does indicate the primary behavior: collecting a page and neighbors up to N hops into a markdown bundle. However, it doesn't clarify potential side effects (if any), return delivery mechanism (file vs inline), or operation limits, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler or repetition. It front-loads the action ('Export') and clearly packs the core semantics into a compact phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and annotations none, so its complete behavior must be described. The description leaves gaps: the default value/fmax for depth, how the bundle is delivered, and prerequisites (e.g., permissions or an existing graph). Given the tool includes two parameters and is part of a rich sibling set, this description is insufficient for fully correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explicitly map 'slug' or 'depth' to the mentioned page/hopping limits. 'page' hints at 'slug' and 'N hops' hints at 'depth', but the mapping is implicit rather than stated. Since the schema itself provides no additional guidance, this insufficient compensation for the 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a precise verb ('Export') and a clear resource ('a page + connected neighbors up to N hops'), naming the output format ('self-contained markdown bundle'). This distinguishes it from sibling tools like 'read_wiki_page' (which reads one page) and 'find_related' (which finds related items without exporting).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool, when not to use it, or which sibling tools might be preferable for simpler tasks like exporting a single page. The usage context is only implied by the word 'Export' and the 'subgraph' concept.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_contradictionsA
Find self-contradictions in the wiki on a given topic. Returns only contradictions, no full synthesis. Useful when the user wants to reconcile evolving views.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It explicitly discloses a key behavior: it returns only contradictions and not a full synthesis. This is useful beyond the tool name, although it does not describe edge cases like when no contradictions are found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core action first, then the output constraint, then the use case. Every sentence earns its place and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter diagnostic tool with no output schema, the description covers what the tool does, what it returns, and when to use it. It could be more specific about the output shape or empty-result behavior, but these are minor gaps given the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does tie the single parameter topic to the search target ('on a given topic'), which is a basic but sufficient mapping. However, it does not clarify topic format, specificity, or whether exact page names versus general queries are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Find self-contradictions in the wiki on a given topic.' It also clarifies the result scope — contradictions only, not a full synthesis — which helps distinguish it from tools like synthesize_topic or find_gaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear when-to-use signal: 'Useful when the user wants to reconcile evolving views.' It also implies a limitation ('no full synthesis') that steers agents away from using it for general overviews, though it does not explicitly name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_gapsB
Find gaps in the wiki's coverage of a topic. Returns LLM-suggested missing pieces (e.g., "you mention X but never document Y").
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says it 'returns LLM-suggested missing pieces' but does not say whether it reads wiki content on demand, whether it can call external knowledge, or what side effects or costs exist. The behavioral surface is largely undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and clear, with a well-chosen example that adds meaning without bloating the text. It could be slightly tighter, but the two sentences work well together and there is no wasted repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool with one parameter and no output schema, so the description is close to being sufficient for the core task. However, it lacks information such as how the topic is matched against wiki content, what happens when there are no gaps, and whether the operation depends on existing wiki resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'topic' has no schema description (0% coverage), and the tool description does not clarify what format 'topic' should take (e.g., page title, natural language phrase, or filename). The output example implies the topic is user-supplied, but provides no parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('find gaps') on a concrete resource ('the wiki's coverage of a topic') and clarifies the output with a useful example. It is distinguishable from sibling tools like find_orphans or find_contradictions, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case (identifying missing wiki coverage for a topic) is implied clearly, and the example output helps set expectations. However, the description does not state when not to use it or mention related alternatives such as synthesize_topic or find_contradictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_orphansA
List wiki pages with no incoming links (orphans).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. 'List' implies a read-only operation and no modifications, and the meaning of orphans is explained. However, it does not disclose possible scope limits, how the output is shaped, or whether the graph traversal includes only internal links.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact, front-loaded sentence communicates the resource and the filtering condition with no filler, while also defining the domain term 'orphans'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing tool, the description is nearly sufficient: it states what is returned and why. It could be slightly more useful if it mentioned the exact output fields, such as page IDs or titles, but the current wording remains adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema documents 100% of them. The description itself defines the core semantic concept, orphans, which compensates for the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with resource 'wiki pages' and clarifies the exact filter condition: 'no incoming links (orphans)'. This clearly differentiates it from sibling tools like read_wiki_page, list_recent, and find_related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when you want wiki pages that have no incoming links. It does not explicitly name alternatives or exclusions, but the orphan condition itself is the usage trigger and no sibling offers the same purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_daily_briefA
Generate a morning brief summarizing recent wiki activity with [N] citations. Default 24h lookback. Does not email — for that use the web UI Settings → Daily Brief → Send Now.
| Name | Required | Description | Default |
|---|---|---|---|
| since_hours | No | How many hours back to look for recent pages (default 24, max 168) | |
| include_on_this_day | No | Include an "On This Day" section for pages created exactly 1w/1m/1y ago |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It adds meaningful behavior beyond the name: no email is sent, the default lookback is 24 hours, and citations are included. It could go further on whether anything is persisted or whether credentials/permissions are needed, but it is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The core purpose is front-loaded, followed by the most important behavioral caveat and the alternative. Every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only generation tool with no output schema and no annotations, the description covers the main things an agent needs: what it produces, the default range, and the critical 'does not email' caveat. It is slightly light on what the response looks like, but this is an acceptable gap given the schema already covers inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents both parameters. The description reinforces the 24h default that matches since_hours but adds no new parameter-level meaning beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Generate') and a specific resource ('morning brief' summarizing recent wiki activity). It also cites the lookback default and content type, making the tool's role immediately clear while distinguishing it from generic search or list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states what the tool does not do ('Does not email') and provides a concrete alternative ('use the web UI Settings → Daily Brief → Send Now'), giving the agent actionable when-to-use versus when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_graph_insightsB
Compute graph insights for the wiki: top hubs, orphans, broken links, fragmented tag clusters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no exploreIntents, so the description carries the full burden, but it only lists what it computes. It does not state whether this is a safe read-only analysis, whether it can be expensive on large wikis, or what form the results take. The get_ prefix implies a read, but nothing in the description confirms it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource and immediately enumerates the outputs. It earns its place with zero filler, but the terse style also means useful behavioral and usage context is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is close to sufficient from an invocation standpoint. However, the lack of any note distinguishing it from find_orphans and run_wiki_health, plus no hint about the shape or volume of returned insights, leaves meaningful ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to explain. Schema coverage is 100% by construction, and the description correctly communicates that this is an analysis over the whole wiki, which is the only relevant semantic content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-plus-resource structure ('Compute graph insights for the wiki') and lists concrete outputs: top hubs, orphans, broken links, fragmented tag clusters. It makes the tool's goal clear, though it does not explicitly distinguish it from overlapping siblings like find_orphans or run_wiki_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The wiki contains find_orphans, run_wiki_health, and suggest_links that could overlap, but the description neither names them nor explains what makes get_graph_insights the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pulseA
Get today's (or a specific date's) wiki pulse: weekly writes, new connections, contradictions, stale notes, SRS due count. Use to give the user a daily situational awareness of their knowledge base.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO date YYYY-MM-DD (default: today) | |
| refresh | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. 'Get' implies a read operation and the returned metric categories are named, but the description does not say what 'refresh' does, whether it recomputes or clears anything, or what the response structure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the resource and scope in the first clause, enumerates the output categories, and adds one useful application sentence. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description conveys the tool's basic purpose and output categories, which is enough for basic selection, but because there is no output schema, refresh is undocumented, and no alternative tools are compared, the context is not fully fleshed out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only documents date, and coverage is 50%, so the description should compensate for the undocumented refresh. The description adds some meaning around date ('today or a specific date') but says nothing about what refresh controls, how it behaves, or when to set it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: getting a wiki pulse for today or a specific date, and lists the included metrics. It does not explicitly contrast this with nearby siblings such as generate_daily_brief or run_wiki_health, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using this tool to provide daily situational awareness of the user's knowledge base. However, it gives no when-not-to-use guidance or mention of alternatives, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingest_executeA
Conversational ingest, step 2 of 2. Commits the user-approved subset of a plan returned by ingest_plan. approvals is a map of action id → boolean; omitted ids default to approved (true). Returns the per-action results plus a summary of what got created / updated.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Plan id returned by ingest_plan. | |
| approvals | No | Map of action id → boolean. False rejects that action; omitted ids are approved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It explains the potentially surprising default that omitted action ids are approved, indicates that the tool creates/updates data, and describes the return value. It doesn't cover failure modes or reversibility, but the key side-effect behavior is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver all essential information: role, workflow position, approval semantics, and return value. There is no filler, and the description is front-loaded with the most important context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no output schema, the description covers input provenance, the approval semantics, side effects, and result summary. Minor gaps around failure behavior and atomicity prevent a 5, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already fully documents both planId and approvals, including the omission-default behavior. The description reinforces that behavior but adds no new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb ('commits') and resource ('a plan returned by ingest_plan'), and positions itself as step 2 of 2 in the conversational ingest flow. This directly distinguishes it from ingest_plan and other ingest-related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly signals sequencing: this is step 2, it acts on a plan produced by ingest_plan, and it commits only the user-approved subset. It does not explicitly list exclusions like 'use ingest_plan when creating a plan', but the workflow context is clear enough for an agent to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingest_planA
Conversational ingest, step 1 of 2. Reads the source, returns the LLM's narrative takeaways and a structured plan of proposed actions — without writing anything yet. The user reviews the takeaways + plan, decides which actions to approve, and then calls ingest_execute(planId, approvals) to commit the approved subset.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Raw source text to ingest (PDF text, URL extract, paste). | |
| title | No | Optional title; LLM will infer if omitted. | |
| raw_id | No | Re-plan against an already-ingested raw doc instead of saving new text. | |
| source_url | No | Optional source URL for attribution. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency load. It clearly states the tool reads the source and 'without writing anything yet', which signals a side-effect-free planning pass, and it exposes the user-review/approval gate. It stops short of explaining how/where the plan is stored between the two steps and what exact identifier is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences cover what the tool does, what it returns, the no-write caveat, and the exact next tool call. Every clause adds information and there is no redundant restatement of parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-step flow with no output schema, it covers the main contract: input, narrative takeaways, structured plan, no persistence, and the follow-up execute call. It doesn't describe the exact output shape or how planId is surfaced, which is the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters clearly. The description adds only workflow-level context around planId and approvals, not per-parameter semantics, which is acceptable but not extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete pipeline stage ('step 1 of 2'), says it reads the source and returns narrative takeaways plus a proposed action plan, and explicitly clarifies that nothing is written yet. This makes the tool distinct from its sibling ingest_execute and other content-creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use this tool first when the user wants a reviewable ingest plan, and only after approval call ingest_execute(planId, approvals). It does not explicitly compare itself with ingest_source, so alternative selection is slightly incomplete rather than fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingest_sourceA
Ingest a new source into the wiki: saves the raw text, runs LLM compile to create/update wiki pages, applies cross-linking. Returns a summary of changes.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| title | No | Optional title; LLM will infer if omitted | |
| source_url | No | Optional source URL for attribution |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explicitly stating side effects: saving raw text, running an LLM compile that creates/updates pages, applying cross-linking, and returning a change summary. It does not mention costs, delays, or reversibility, but the core mutation behavior is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One focused sentence with the main action first, followed by the key processing steps and return value. Every clause contributes meaning; there is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the key context: what the input represents, what processing happens, and what the agent should expect in response. It could be more explicit about alternatives, but the core information needed to invoke it correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: title and source_url already have descriptions. The description's phrase 'raw text' adds partial meaning to the undocumented text parameter, clarifying it is the source content to ingest. However, it does not fully compensate for the absence of a text schema description or explain any formatting/size constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing ('Ingest a new source into the wiki') and enumerates concrete effects: saves raw text, runs LLM compile, applies cross-linking, returns summary. It does not explicitly differentiate from sibling tools like ingest_plan or ingest_execute, but the action is clear enough that an agent can identify what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for adding new source material to the wiki and processing it into pages, but it does not explicitly state when to prefer this tool over alternatives such as quick_capture, save_chat_excerpt, or ingest_plan. There is no when/when-not guidance or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chatsC
List recent chat sessions saved in MindBase, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It does communicate that the operation lists saved chat sessions and sorts newest first, but it does not clarify whether sessions are read-only, what 'recent' means, how results are limited, or whether any implicit state changes occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler. It front-loads the core action and sorting behavior, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without annotations, an output schema, or parameter descriptions, the description is too thin to fully support correct invocation. An agent cannot infer default time windows, limit semantics, or the exact contents of the returned chat session list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the 'days' or 'limit' parameters. The parameter names hint at their meaning, but the description adds no value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and object: list chat sessions saved in MindBase, ordered newest first. It is specific enough to identify the tool's function, though it does not explicitly distinguish itself from sibling tools like recall_chat or list_recent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as recall_chat or list_recent. The description implies it is for browsing saved chat sessions, but it does not state exclusions, prerequisites, or preferred context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_feedsA
List all RSS feeds the user is subscribed to, with stats (last poll time, items ingested, errors). Use this when the user asks "what feeds am I subscribed to?" or wants to check their RSS subscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It communicates that this is a read-only listing operation and reveals the output contents, including last poll time, items ingested, and errors, which gives the agent a solid expectation of side-effect-free behavior and return information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences: the first defines the action and output, the second gives concrete invocation examples. Every part adds useful information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool, the description is complete. It clearly indicates the resource, the user scope, and the contents of the returned data. No output schema exists, but the description provides what is needed for an agent to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema already covers everything. The description adds no parameter-level information, but none is needed. This matches the baseline of 4 for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List all RSS feeds the user is subscribed to.' It also specifies the return scope by listing the included stats, making the tool’s purpose unmistakable and distinguishing it from sibling tools like add_rss_feed and ingest_source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when to use the tool with natural language triggers: "what feeds am I subscribed to?" or checking RSS subscriptions. It gives clear context but does not mention when not to use it or name alternatives, so it stops short of including exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recentA
List wiki pages added or updated within the past N days, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default 7) | |
| limit | No | Max pages to return (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It states the ordering but leaves the notion of 'newest' ambiguous—is it creation time or last-update time? It also does not disclose what each returned page entry contains (title, excerpt, just ID?) or how pages updated multiple times within the window are deduplicated. These behavioral gaps are meaningful for an ordering-based time range tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero filler. It front-loads the verb and resource, then adds temporal filtering and ordering. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with full schema coverage, this is mostly adequate; however, with no output schema and no annotations, the description should clarify the return shape and the ordering key. Without that, an agent invoking the tool cannot fully anticipate whether subsequent calls are needed (e.g., read_wiki_page for content).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully (days with default 7, limit with default 20 and max 100), so the baseline is 3. The description does not add parameter-level semantics beyond the schema, which is acceptable at 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List'), a concrete resource ('wiki pages'), and precise temporal scope ('added or updated within the past N days') with ordering ('newest first'). This clearly distinguishes it from sibling tools like search_wiki, read_wiki_page, and find_related without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear contextual usage: any time you want recently added/updated wiki pages rather than search or semantic retrieval. It does not explicitly name when-not-to-use alternatives, but the temporal filter and ordering make the intended scenario obvious among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_review_cardsA
List spaced-repetition review cards. By default returns cards due now (due_only=true). Use this to conduct an interactive review session: list due cards, present each Q to the user, wait for their answer, call answer_card, repeat.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max cards to return (default 20, max 100) | |
| due_only | No | If true, only cards due now (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and handles it well by stating that the tool 'returns cards due now' and explaining the default due_only=true behavior. It does not go into greater detail about return structure or side effects, but for a read-only list-style tool it gives solid behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and effective: it nails the purpose, default behavior, and the usage workflow in just two sentences. Every sentence carries functional value and the workflow instruction is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter list tool, the description is mostly complete: it specifies the default behavior and the intended interaction pattern. It would be stronger if it explicitly described the shape of the returned cards, especially since there is no output schema, but the description still gives enough context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with 100% coverage, so the baseline is 3. The description does not add meaningful new parameter semantics beyond restating the due_only default, which is already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('List spaced-repetition review cards') and resource, making the tool's purpose immediately identifiable. It also clarifies the default behavior (due-only cards), which distinguishes it from generic list/recent tools among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear situational context: 'Use this to conduct an interactive review session' and outlines the exact workflow from listing to answering cards. It identifies the follow-up tool (answer_card) but does not explicitly mention when not to use it, such as for non-due or non-review card listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_append_logA
Append a structured entry to logs/.md. Format: ## [YYYY-MM-DD HH:MM] {operation} | {topic} | {details}
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| details | No | Optional details (e.g., "created 4, updated 3") | |
| operation | Yes | ingest | build | lint | research | migrate | export | ... | |
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a side effect: appending a structured entry to a daily log file, and the exact format used. However, with no annotations and no output schema, it does not say whether the file is created if missing, what the return behavior is, or how projectId affects which log file is used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: one clear sentence states the action and target, followed immediately by the required entry format. No content is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple append operation, the path and format give enough to make a basic call successfully. Still, the lack of return information, explicit side-effect description, and usage distinction from nearby write/log tools leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents operation, details, and projectId meaning. The description adds value by showing how parameters map into the final log line, but it does not fully explain topic semantics or the interaction of projectId with the file path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('append') and the target resource ('logs/<today>.md'), and it gives a concrete entry format. This makes the tool's purpose easy to grasp and distinguishes it from write tools like append_to_page or create_daily_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not say when this tool should be used, nor when to prefer another tool such as save_chat_excerpt, create_daily_note, or mindbase_contribute. The format implies operational logging, but no explicit context, prerequisites, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_apply_templateA
Overlay a schema template onto an existing project. Appends template prose to README.md and seeds template-specific sections in context.md. Idempotent — re-running with same template is a no-op marker.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project id; defaults to the current project (config.json) | |
| templateId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden, and it does well by disclosing that the tool appends to README.md, seeds context.md sections, and is idempotent. This gives an agent critical side-effect and repeat-safety information, although the exact no-op marker mechanism is not specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and each sentence carries substantive value: purpose, file-side effects, and idempotence. It is front-loaded with the core action and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool with no output schema and no annotations, the description covers the essential details: what it acts on, the files it changes, and repeated-run behavior. It could be stronger with explicit return-value or failure-mode information, but those are not critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents projectId but leaves templateId completely undocumented. The description adds meaning by referring to 'template prose' and the 'same template', which implicitly explains templateId's role, but it does not fully compensate for the missing parameter-level schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Overlay a schema template onto an existing project.' It further clarifies the mechanics by naming the files affected (README.md and context.md), making the tool easy to distinguish from the other mindbase_* operations, though it does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a schema template needs to be applied to an existing project. The idempotence note also gives re-run guidance. It does not, however, state when to prefer this over alternatives like mindbase_atomic_write_context or explicitly list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_atomic_write_contextA
Write new content into context.md atomically. Steps: (1) snapshot current context.md → state/builder/snapshots/.md, (2) tmpwrite + rename, (3) append log entry. Enforces 400-line cap by truncating overflow to sources/research/.md.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | New context.md body (full file replacement) | |
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does so thoroughly by disclosing the snapshot path, the tmpwrite+rename mechanism, the appended log entry, and the 400-line cap with overflow routing to an auto-generated file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: three sentences cover the core action, the atomic write steps, and the truncation behavior. Every sentence contributes useful information and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a mutation tool with no annotations and no output schema. It covers the destructive replacement, the backup snapshot, the transactional mechanism, the log side effect, and the line-limit boundary condition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully, with 100% schema description coverage. The description adds no extra semantics about the parameters; it focuses on the write process, which is appropriate given the schema already explains content and projectId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Write'), a specific target ('context.md'), and a defining trait ('atomically'). This is clearly distinguishable from sibling tools that append, update sections, or contribute content, and the resource path makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool should be used whenever an agent needs to replace or write the full context.md body with atomic safety. It doesn't mention explicit alternatives or exclusions, but none are strictly necessary given the targeted nature of the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_contributeA
Append a contributor entry to the current project. Writes to sources/contributors//.md (append-only) plus log entry. Route mode forces routing: auto (LLM decides), daily (only contributor file), concept (also flag for /mb:build to extract concept), daily+concept (both).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | auto | daily | concept | daily+concept | |
| text | Yes | Body text to contribute | |
| user | No | Contributor username; if omitted, resolves to os.userInfo().username | |
| projectId | No | Project id; if omitted, resolves via config.json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states side effects: writing append-only to sources/contributors/<user>/<YYYY-MM-DD>.md and adding a log entry, plus optional routing behavior for concepts. This is valuable given no annotations were provided. It does not cover return values, errors, or permissions, but the core behavior is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the key action and target, and then covers route-mode semantics. There is no filler, credential repetition of schema information, or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no annotations and no output schema, the description is fairly complete: it names the destination, the append-only behavior, the log side effect, and route-mode meanings. It does not describe return values or error conditions, and the phrase 'current project' could be more precise when projectId is optional, but the essential call context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving baseline 3. The description adds real value for the mode parameter by explaining the meaning of each mode, which the schema only lists as a bare string. The other parameters are already described well enough in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear active verb 'Append' and a specific resource: a contributor entry in the current project, with a concrete file path. It is unambiguous about what the tool does, but it does not explicitly differentiate from sibling tools such as mindbase_append_log or quick_capture, so the 'vs siblings' aspect is not fully addressed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the internal route modes (auto, daily, concept, daily+concept) but gives no guidance about when to choose this tool over alternatives or when not to use it. With many sibling save/append tools present, an agent has no explicit selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_exportA
Export a project to a portable artifact. markdown-bundle: copies project tree to artifacts/exports/-/. zip-archive: same plus zips (uses zip if available).
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | markdown-bundle | zip-archive | |
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the burden of disclosure. It clearly states that the tool copies the project tree to artifacts/exports/<projectId>-<timestamp>/ and that zip-archive behavior additionally requires the external `zip` command if available. This gives the agent a good sense of side effects and external dependency, though failure behavior when zip is unavailable is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by a terse breakdown of the two modes. Every sentence contributes meaningful information without filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input semantics and destination paths well, but there is no output schema and no mention of what the tool returns on success or failure. It also does not explain the behavior when `zip` is unavailable, which is a notable edge case for an otherwise simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents both parameters at 100% coverage, so the baseline is 3. The description adds meaning by explaining what each target value actually does and revealing that projectId is used in the output path. This goes beyond simply restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly opens with the action and object: 'Export a project to a portable artifact.' It then differentiates the two target types by describing exact output locations. It does not explicitly distinguish itself from sibling tools like export_subgraph, but the core purpose is clear and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what each target mode does but never says when a user should choose this tool over alternatives such as export_subgraph or other export-related tools. There is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_gather_sourcesA
List contributor + research files modified since the last build (or since a given ISO date). Returns paths + sizes + mtimes. Used by /mb:build to know what to synthesize.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | ISO date (YYYY-MM-DD); defaults to last context.md mtime | |
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It discloses that the tool returns paths, sizes, and mtimes, which is useful, and 'List' implies a read-only operation. However, it does not explicitly state that no modifications occur, whether there are limits, or how 'last build' is tracked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the most important scoping rule ('modified since the last build') appears up front. It compactly states the resource, filter, return fields, and intended caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description satisfies mostly all the agent needs for a simple list tool even without an output schema and annotations: it names inputs, expected outputs, and a clear use case. It does not mention edge cases like empty results, ordering, or pagination, but the simple return shape makes those less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented and the description does not need to add much. The phrase 'modified since the last build (or since a given ISO date)' loosely echoes the since parameter, but it adds no concrete syntax or edge-case semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List') and the resource ('contributor + research files') plus the modification-time filter. However, it does not explicitly differentiate itself from siblings like list_recent or list_review_cards, so the distinction is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Used by /mb:build to know what to synthesize' provides a clear intended use context. It does not mention exclusions or when alternatives like list_recent should be preferred, but the /mb:build tie-in gives an agent enough situational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_ingest_fileA
Ingest a file (PDF, .md, or .txt) into a project: archives the original into sources/raw//, extracts text locally (pdfjs for PDFs — no API call), writes an .extracted.md sidecar for PDFs, and returns the text. Accepts a local absolute path OR an http(s) URL that points directly at a file (e.g. an arXiv PDF link) — URLs are downloaded first. After calling this, discuss the key takeaways with the user and file a summary via mindbase_contribute.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path on disk, or a direct http(s) URL to a PDF/.md/.txt file | |
| title | No | Optional human title; defaults to the filename | |
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden of behavior disclosure. It does this well by stating that it archives the original into sources/raw/<date>/, uses pdfjs locally with no API call, writes an .extracted.md sidecar for PDFs, returns the text, and downloads URLs first.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences of dense, high-value content. No filler, the main behavior appears first, and follow-up instructions are appended at the end in a natural order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description tells the caller that the text is returned. It documents postconditions, input types, sidecar creation, and the recommended follow-up. For a file ingestion tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions, so the baseline is high. The description adds important semantics for the required path parameter: it can be an absolute local path or direct http(s) URL, and describes the download-first behavior. Title and projectId semantics are already adequately documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Ingest' with clear resource types ('file into a project'), enumerates supported types and formats (PDF, .md, .txt), and describes the concrete workflow: archive, extract, sidecar, return text. It is easily distinguishable from sibling tool names like ingest_source or ingest_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is provided for when to use this tool: you can pass a local absolute path or a direct http(s) URL pointing to a PDF/.md/.txt file. It also prescribes the follow-up workflow (discuss takeaways and use mindbase_contribute), but it does not explicitly state when to prefer this over sibling tools such as ingest_source. No exclusions are stated but they are not needed for basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_init_projectA
Scaffold a new MindBase project with the v2 layout: README.md, context.md, index.yaml, sources/contributors/, sources/research/, sources/raw/, state/, logs/, artifacts/. Idempotent — refuses to overwrite existing project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name (will be slugified to project id) | |
| mission | No | Optional one-line project mission | |
| template | No | Template: empty | investigation | literature-review | market-research | reading-companion | topic-tracker |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations providing safety/behavior details, the description carries the full burden and does a good job. It discloses idempotency ('Idempotent'), a refusal behavior ('refuses to overwrite existing project'), and the exact artifacts that will be created. This goes beyond the minimal 'create project' statement by describing the concrete output structure and a key behavioral guardrail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, high-value sentences. The first states the core purpose and the exact layout; the second communicates an important behavioral constraint. No filler or redundant phrasing, and the critical non-overwrite behavior is placed right at the end for emphasis.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple scaffolding tool with 100% parameter-documented schema and no output schema, this description is complete. It tells the agent what happens, what is created, and the failure condition if the project already exists. Missing details like return values or template effects are not necessary here because the schema covers parameters and the tool's surface area is small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself does not add any parameter-specific meaning beyond the schema, but no extra explanation is needed because the schema already documents name, mission, and template well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Scaffold'), a precise resource ('a new MindBase project'), and enumerates the exact v2 layout it creates. The word 'new' and the listed file/directory structure clearly distinguish this initializer from sibling tools that operate on existing projects (e.g., mindbase_load_project, mindbase_contribute). This is a strong purpose statement with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when creating a brand-new project. It includes a strong when-not signal by stating it 'refuses to overwrite existing project,' so an agent can infer this is inappropriate for re-initializing or updating an existing project. It does not explicitly name alternative tools, but the context and wording give enough guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_load_projectA
Load the README + context + index.yaml for a project (defaults to currentProjectId in config.json). Returns the three file bodies for context injection. Read-only by default; pass persist=true to also update config.json currentProjectId (i.e. switch the active project).
| Name | Required | Description | Default |
|---|---|---|---|
| persist | No | If true, write projectId to config.json as currentProjectId. Default false (read-only). Use true only when the caller intends to switch the active project. | |
| projectId | No | Project id; if omitted, resolves to config.json currentProjectId |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations are absent, the description discloses the key behavioral trait: read-only by default, with a mutation path via persist=true that updates config.json currentProjectId. It also identifies what is returned—three file bodies—making side effects and return behavior reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences capture the core behavior, default behavior, return value, and the optional side-effect switch. Every clause earns its place and the primary intent is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers what the tool returns and when it mutates state. It could add failure/edge-case behavior, but for a read-oriented project loader with 100% schema coverage it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already well explained in the input schema. The tool description mostly restates that behavior rather than adding new parameter-level meaning, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Load the README + context + index.yaml for a project'. It also clarifies the default project resolution and the returned artifact, making the tool's purpose distinct from wiki-reading and search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the default read-only usage and when to use persist=true, saying it should be used only when the caller intends to switch the active project. It does not explicitly contrast with sibling alternatives, but the context-injection intent is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_migrateA
Migrate one or all projects from legacy wiki/ layout to v2 layout. Snapshots to archive/-/ first; idempotent on re-run.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | ||
| user | No | Contributor username for routing legacy notes; defaults to os.userInfo() | |
| dryRun | No | If true, report what would happen without writing | |
| projectId | No | Specific project to migrate; omit + set all=true to migrate every project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It usefully discloses that a snapshot is written to archive/<projectId>-<unixTs>/ before migration and that the operation is idempotent. This gives an agent a meaningful safety mental model for a mutation tool, even though it does not fully detail the transformation or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences state the core action, scope, a key safety behavior (snapshotting), and idempotence. There is no filler, repeated schema content, or ambiguity introduced by unnecessary prose. Every sentence carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a simple invocation, but there are gaps: no explanation of what happens when 'all' and 'projectId' are both supplied, no description of the outcome/status of migration, and no post-conditions beyond idempotence. Because this is a migration tool without annotations or output schema, slightly more direction would improve context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so three of the four parameters are already explained by the schema. The description adds only the phrase 'one or all projects,' which partially helps explain the 'all' boolean. It does not add semantics for user, dryRun, or projectId beyond what the schema already provides, but it does not need to heavily compensate at 75% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Migrate'), a specific target ('projects'), and a clear transformation ('from legacy wiki/ layout to v2 layout'). It also communicates the scope parameter by saying 'one or all projects,' which distinguishes this migration operation from the surrounding read/write/wiki sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied well: use this to convert legacy-layout projects to v2 layout. However, there is no explicit when-to-use or when-not-to-use guidance, no mention of alternatives, and no prerequisite conditions like 'must be in legacy layout' or 'run only after verification.' It is adequate but not clearly explanatory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_rebuild_indexA
Regenerate index.yaml by scanning the project tree. Always overwrites; never partial-merges. Output schema: { project, files, contributors, sources, last_build }.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It clearly discloses the most important side effect: 'Always overwrites; never partial-merges.' It also previews the output shape, which helps an agent anticipate the result. It does not mention permissions or failure modes, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary action and the critical overwrite caveat are front-loaded, followed by a compact and useful output-shape hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-required-parameter tool, the description provides the operation, the crucial overwrite behavior, and the return shape. The input schema covers the remaining parameter detail, so essentially nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single optional projectId parameter is already fully documented by the input schema. The description adds no parameter-level details beyond that, so it meets the baseline for full schema coverage without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Regenerate index.yaml by scanning the project tree.' It identifies the concrete resource and output, which is specific enough to stand alone. It does not explicitly differentiate from sibling tools, but the resource and verb are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives. 'Regenerate' implies a stale or missing index, but the description never states a trigger condition, prerequisite, or which sibling tools should be considered instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_research_saveA
Save research findings to sources/research/.md. Appends if file exists; otherwise creates. Always appends a log entry.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Markdown body | |
| topic | Yes | Human-readable topic name; slugified for filename | |
| sources | No | URLs or citations | |
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full load and does so well: it discloses creation vs append semantics and the automatic log entry. It stops short of describing return behavior or side effects on existing content besides appending, but the critical mutation behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very compact and front-loaded: it states the action and destination first, then the append/create behavior, then the logging side effect. Every sentence adds useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with no annotations and no output schema, the description is largely sufficient: it specifies destination, overwrite semantics, and log behavior. It does not describe expected return/confirmation behavior, but the schema covers parameters well and no nested or complex output is involved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all four parameters at 100% coverage, including topic slugification and the projectId default. The description adds the file destination but does not materially extend the parameter meanings beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (Save), a specific resource (research findings), and a precise destination path (sources/research/<slug>.md). It also clarifies the append-vs-create behavior, which distinguishes it from general write tools among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied: use when saving research findings as markdown to the research directory. However, it does not explicitly compare itself to sibling tools like append_to_page, save_chat_excerpt, or mindbase_append_log, so an agent may need to infer when this tool is the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_statusB
Project dashboard: last build time, line counts, contributor stats, recent operations, file counts. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'Read-only', which is helpful because no annotations are provided. However, it does not disclose return structure, whether the tool may read configuration files, caching behavior, or possible failure modes. It carries some of the burden but not the full behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the resource type and immediately lists the key data points. There is no redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low-complexity tool with one optional parameter and no output schema, the description presents enough detail for an agent to understand what data the tool returns and that it is read-only. It could mention whether a projectId is required or how errors behave, but the core usage context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single projectId parameter, including a default to the current project. The description adds no additional parameter semantics, which is acceptable given the schema's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'Project dashboard' and lists the specific data it reports (build time, line counts, contributor stats, operations, file counts), clearly distinguishing it from query/search tools among its siblings. It lacks an explicit action verb like 'retrieve' or 'get', but the resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternatives such as get_pulse, list_recent, or list_review_cards. The 'read-only' note hints at safe usage but does not clarify which scenarios call for a project dashboard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mindbase_validate_structureA
Validate that a project conforms to the v2 layout. Returns list of missing required files/dirs. Used as a precondition guard by /mb:build and /mb:migrate.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project id; defaults to the current project (config.json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly communicates that the tool validates layout and returns a list of missing files/dirs, which implies a non-mutating check. It could more explicitly state that it makes no changes to the project, but the term 'Validate' and 'precondition guard' provide strong behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The core behavior is front-loaded, the return value is specified, and an important usage context is included. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple validation tool with one optional parameter, the description is complete enough. It states the purpose, the exact output, and key usage context. The lack of an output schema is mitigated by describing what is returned. It could go slightly deeper into what happens when the project doesn't conform, but it is not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter, projectId, with a description and default behavior. The tool description adds no additional meaning about the parameter, but the schema coverage is 100%, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Validate'), a resource ('a project'), and a precise criterion ('conforms to the v2 layout'). It additionally specifies the return value ('list of missing required files/dirs'), which clearly distinguishes it from sibling tools like mindbase_migrate or run_wiki_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that the tool is used as a precondition guard by /mb:build and /mb:migrate, giving clear context for when it is appropriate. It does not explicitly mention when not to use it or name an alternative, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_captureA
Save content to the inbox for later batch processing (NOT a direct wiki note). Use this for "save this for later, I will categorize it myself in the MindBase UI". To create a wiki note directly, use create_note instead.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that content is placed in an inbox, is not immediately turned into a wiki note, and will be processed later in the MindBase UI. While it does not mention return values or side effects, the core behavioral intent is clearly and honestly described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, starts with the core action, uses natural phrasing, and contains no filler. It even embeds the alternative tool name without unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description fully covers the essential context: what the tool does, how it should be used, and when to choose another tool. An agent would be able to invoke it correctly without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the 'tags' parameter at all. However, 'content' is made meaningful through the phrase 'Save content to the inbox,' and 'tags' is a self-evident optional array. The description only partially compensates for the missing schema detail, so the baseline is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Save'), resource ('inbox'), and purpose ('later batch processing'), and explicitly distinguishes this from creating a direct wiki note. It is unambiguous and easily differentiates from the sibling tool create_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance ('save this for later, I will categorize it myself in the MindBase UI') and names the exact alternative (create_note) for when a direct wiki note is needed. This gives the agent a clear decision rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_wiki_pageA
Read the full content (markdown body + frontmatter + incoming/outgoing wikilinks) of a wiki page by its slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Page slug (e.g. "rag-architecture") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It does disclose exactly what content is included in the response (body, frontmatter, incoming/outgoing wikilinks), which is useful. It does not mention behavior for missing/invalid slugs or note that this is a read-only operation, though 'Read' strongly implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise, front-loaded sentence. The main action and resource appear immediately, with the content breakdown in parentheses adding value without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-identifier tool with one required parameter, the description covers the input, the operation, and the returned content. The absence of an output schema is partially compensated by the explicit content list, though error behavior and page-not-found handling are not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the single slug parameter with an example, so the description adds no additional parameter-level meaning. Per the baseline for high schema coverage, a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and resource ('wiki page by slug') and explicitly enumerates what content is returned: markdown body, frontmatter, and wikilinks. This clearly distinguishes it from sibling tools like search_wiki or find_related, which do not retrieve full page content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the correct use case: when you already know a page's slug and want its full content. However, it does not explicitly tell the agent when to prefer this over search_wiki or find_related, leaving the decision partially to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_chatB
Search past saved chat conversations by content. Returns matching chats with previews.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It conveys that the operation is a read-only style search and that previews will be returned, which is useful, but it does not disclose ordering, truncation, pagination, or how matches are determined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: two short sentences that define the operation and the return behavior. It wastes no words, though it could have used the available space to clarify the 'limit' parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool the description is minimally viable, but with no output schema and no annotations, the description should more fully clarify result behavior and the optional 'limit' parameter. It is also missing guidance that distinguishes recall_chat from semantically similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the bare 'query' and 'limit' fields. The description clarifies that 'query' is a content-search term, but it says nothing about 'limit', which remains an unexplained number. This is only partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: searching saved chat conversations by content and returning matching chats with previews. It is specific about the resource ('saved chat conversations') and distinguishes itself from general wiki/project search tools in the sibling list, though it does not name a specific sibling to contrast with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as list_chats, semantic_search, or search_in_project. The description implies a content-search use case, but an agent is left to infer the boundary between searching past chats and searching other resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_wiki_healthA
Run the full Wiki Health pipeline: build graph → generate insights → auto cross-link → L2 lint. Writes _insights.md and applies improvements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It explicitly discloses that the tool writes a file and applies improvements, which is good, but it leaves the actual scope of 'applies improvements' and potential side effects of auto cross-linking unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, well-structured sentence front-loads the action and then compactly lists the pipeline steps. There is no empty phrasing or repetition of obvious information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter mutating tool, the description covers the full pipeline and the primary artifact (_insights.md). It does not describe a return value, and no output schema exists to fill that gap, but the main outcome is clearly the file and the applied improvements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is no parameter detail to add. This matches the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Run the full Wiki Health pipeline') and enumerates the distinct stages it executes. Producing _insights.md and applying improvements clearly sets it apart from smaller sibling tools like get_graph_insights or suggest_links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the go-to tool when a complete wiki health run is requested, but it never explicitly says when to use it instead of one of the more focused sibling tools. No regard to exclusions or alternative selection is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_chat_excerptA
Save a fragment of the current AI conversation as a wiki page. LLM auto-titles it if no suggested_title. Marks created_via: mcp for audit.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| source_chat_id | No | ||
| suggested_title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does so reasonably well by revealing that the LLM auto-titles the page when no suggested_title is provided and that a created_via: mcp marker is added for audit. It does not dwell on failure modes or permission effects, but the most relevant behavior is exposed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the central write action, and adds two substantive behaviors in a second short sentence. Nothing feels wasted, though additional structured routing or an explicit alternative could make it slightly more useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter create-style tool with no output schema, this description covers the main purpose, the auto-title edge case, and the audit stamp. It does not explain return/confirmation behavior or the exact semantics of source_chat_id, but the agent can still invoke the tool correctly in the common content-only case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the tool description must compensate. It gives meaning to content via 'fragment of the current AI conversation' and explains the fallback when suggested_title is absent. However, source_chat_id is never explicitly described, leaving one of three parameters only inferable from its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action and resource: saving a fragment of the current AI conversation as a wiki page. It also adds distinguishing behaviors such as auto-titling and the created_via audit marker. It does not explicitly contrast itself with sibling creation tools like create_note or quick_capture, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: you use this when you want to preserve a fragment of the current AI conversation in the wiki. It does not state when to prefer this over alternatives, nor does it give exclusions or conditions for choosing a sibling tool among the many creation/capture tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_all_projectsA
Search the user's wiki across EVERY project (not just the current one). Returns ranked matches with their owning project id, suitable for citing as [[<project>/<slug>]] cross-project wikilinks. Use this when answering open-ended "have I seen this before" questions or proposing cross-project bridges during ingest.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default 10, max 50) | |
| query | Yes | Search query (1+ chars). Matches against slug, title, and one-liner. | |
| crossProjectOnly | No | If true, exclude results from the current project. Useful when looking only for cross-project bridges. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It satisfactorily conveys that the tool performs a global search, returns ranked matches with owning IDs, and is suited for generating wikilink citations. It does not explicitly describe side effects or state that it is read-only, but for a search operation the behavior is sufficiently clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with every sentence carrying meaningful information: the first sets the scope, the second defines the output, and the third gives concrete usage cases. There is no filler or redundant repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description provides a useful picture of the return format (project id and slug for wikilinks). It doesn't enumerate the full JSON result structure or clarify behavior for extreme cases, but it is enough for an agent to decide to use the tool and know what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters already have accurate descriptions in the schema. The tool description adds contextual value for the project scope (esp. crossProjectOnly) but does not provide additional detail beyond what the schema already documents, so it stays at the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), names the precise resource ('the user's wiki'), and emphasizes the scope ('across EVERY project, not just the current one'), which strongly differentiates it from project-scoped siblings like search_in_project or search_wiki. It also explains the main output (ranked matches with project id) and the intended wikilink format, leaving no doubt about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent when to use this tool: for 'have I seen this' queries and for proposing cross-project bridges during ingest. The contrast with the current project is implicit through 'not just the current one', but it does not name an explicit alternative or provide 'when not to use' guidance, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_in_projectA
Search the wiki, restricted to pages tagged with a specific project (uses the project frontmatter field).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the behavioral burden; it does disclose a key behavior by explaining the dependency on the 'project' frontmatter field. It does not state whether the operation is read-only, what return structure to expect, or how the search matching behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence, no filler, and the key scoping behavior is front-loaded. Every word contributes to the tool's meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool, the core mechanics are captured. But with multiple search-related siblings and no output schema, an agent would benefit from explicit alternative-selection guidance and a clearer statement of return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It meaningfully clarifies the 'project' parameter by tying it to the frontmatter field, but 'query' and 'limit' are left to name-based inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Search'), a resource ('the wiki'), and a clear scope ('restricted to pages tagged with a specific project'). This distinguishes it from a general wiki search, though it does not explicitly name sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied: use it when you need a search restricted to a specific project tag. However, there is no explicit comparison to search_wiki, search_all_projects, semantic_search, or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_wikiA
Full-text search across the user's MindBase wiki — matches page titles, one-liners, and slugs. Returns ranked list with snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default 10, max 50) | |
| query | Yes | Search query (1+ chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses what content is matched (titles, one-liners, slugs), the full-text nature, and the return format (ranked list, snippets). It does not discuss rate limits or auth, but for a read-only search tool the main behavioral attributes are clearly articulated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct, information-dense sentences. The scope and output are presented immediately with no filler, making it easy for an agent to scan and understand the core behavior quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool with complete schema documentation, the description is largely adequate. However, the lack of any filtering guidance or mention of what it searches (project, whole wiki, etc.) and the absence of sibling differentiation mean that in the large tool collection, an agent may not be able to confidently pick this tool over other search tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already fully documents both 'query' and 'limit' with types, constraints, and defaults. The description adds minimal parameter-specific meaning; it focuses on behavior rather than adding semantic value to the parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb ('search'), a resource ('user's MindBase wiki'), and the matching target fields ('page titles, one-liners, and slugs'). It communicates that this is a full-text search tool, which helps separate it from semantic_search and other smarter search siblings, though it does not explicitly name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool instead of the many nearby search-related alternatives like 'search_in_project', 'search_all_projects', 'semantic_search', or 'ask_question'. The agent must infer usage from the name and broad resource scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_searchB
Embedding-based semantic search across the wiki. Falls back to keyword search if embeddings are unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral disclosure burden. It usefully reveals the fallback from embeddings to keyword search, which is genuine behavioral context, but it does not describe the result shape, ranking behavior, or what happens when the search returns no matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the core function and an important fallback behavior with no filler. The primary purpose is front-loaded and the secondary behavior follows naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple search tool but leaves gaps: no annotations exist, no output schema is provided, and the description does not describe return values, the role of limit, or the relationship to sibling search tools. The fallback mention adds useful context but does not fully round out the calling picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It provides minimal context for 'query' by describing semantic search, but 'limit' is completely unexplained, including its effect or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as semantic search over the wiki, which is a specific verb and resource. It does not explicitly differentiate itself from sibling search tools like search_wiki or search_in_project, so it falls just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when embedding-based semantic matching is needed, and mentions fallback behavior when embeddings are unavailable. However, it does not explicitly state when to prefer this over search_wiki or when keyword search would be a better choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_visibilityB
Set the visibility level of a wiki page. "internal" and "pii" pages are excluded from semantic search and Q&A by default.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| level | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It does disclose an important behavioral trait: 'internal' and 'pii' pages are excluded from semantic search and Q&A by default. However, it does not cover permissions, reversibility, response behavior, or whether existing search indexes are updated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The action is front-loaded, and the second sentence adds materially useful behavior. It avoids repeating schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, this description is acceptable but not complete. It explains the main effect of visibility on search behavior but does not explain what happens to already-indexed pages, whether public pages are indexed by default, or what the caller should expect after performing the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate for the parameters. It adds meaningful semantics to the 'level' enum by explaining the behavior of 'internal' and 'pii'. The 'slug' parameter is not explicitly described, though 'wiki page' makes its purpose reasonably inferable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('set') and a clear resource ('visibility level of a wiki page'). It also specifies the three levels without naming a sibling, so the function's purpose is clear. It does not explicitly contrast it with sibling tools, but the visibility-specific scope is distinctive enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use or when-not-to-use guidance. The statement that 'internal' and 'pii' pages are excluded from semantic search and Q&A implies a relevant consequence, but it does not tell an agent when to choose this tool over related tools like 'tag_note', 'update_note_section', or 'append_to_page'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_linksA
Suggest wikilinks that should be added to a specific page (review mode — does NOT modify the page).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure and explicitly discloses the most critical behavioral trait: the tool does NOT modify the page. It does not describe what kind of suggestions are returned or whether errors occur for missing pages, but the primary side-effect boundary is clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with the essential behavior first and the important non-mutating clarification in a parenthetical. Every word contributes meaning; no filler or repeated references to already-structured data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter review-type tool without annotations or an output schema, the description covers the core behavior, the target page, and the non-modification guarantee. The only minor omission is an explicit statement about the form of returned suggestions, but 'suggest' sufficiently implies the result is a list of wikilinks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not directly explain 'slug', but the phrase 'a specific page' clarifies that slug identifies the target page. Naming conventions or required format for slug are not supplied, though the single-parameter simplicity reduces risk.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('suggest'), a clear resource domain ('wikilinks'), and a target ('a specific page'), while the parenthetical 'review mode — does NOT modify the page' distinguishes it from write-oriented sibling tools like append_to_page or update_note_section. This removes ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates this is a review-mode operation and should not to be used when a mutation is desired, but it never names alternatives such as find_related or read_wiki_page or states explicit conditions for choosing this tool over them. The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synthesize_topicA
Synthesize what the user's wiki collectively knows about a topic. Returns structured threads with row-level citations, contradictions, and gaps. Cached; pass force_refresh: true to regenerate.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Topic to synthesize (slug or free text) | |
| force_refresh | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It adequately discloses caching behavior, how to regenerate via force_refresh, and the output structure. It stops short of explicitly stating whether the operation is read-only, how stale cached results may be, or any side effects, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact, purposeful sentences. The primary action comes first, the output content is stated in the second sentence, and the caching/refresh behavior is cleanly tucked into the third. No filler or duplicated schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sensibly names the core return elements: threads, row-level citations, contradictions, and gaps. It also covers caching and refresh behavior. It could say a little more about the thread structure itself, but the essentials for selecting and calling the tool are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only documents topic ('slug or free text') and leaves force_refresh without a description. The tool description compensates by explaining force_refresh: 'pass force_refresh: true to regenerate.' This adds useful semantic meaning beyond the raw schema, and topic's semantics are already reasonably covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('synthesize'), a clear resource (the user's wiki collectively), and a distinguishable deliverable: structured threads with row-level citations, contradictions, and gaps. This naturally contrasts with sibling tools like search_wiki or read_wiki_page, making the purpose obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when collective synthesis, not simple retrieval or search, is desired. It also gives a concrete usage tip for force_refresh. However, it does not explicitly name alternatives or state when not to use this tool, so the routing guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag_noteA
Add or replace tags on a wiki page. mode: "add" merges with existing tags (default); "replace" overwrites.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| slug | Yes | ||
| tags | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It does so by disclosing the side-effect differences between the modes, especially that replace overwrites existing tags. However, it does not address whether the page must already exist or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences. The main operation is front-loaded and the mode semantics are packed into a compact, unambiguous note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with no output schema, the description covers the essential behavior and mode semantics. It does not include details like error handling or expected preconditions, but those are less critical given the straightforward scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no parameter descriptions, so the description must compensate. It usefully explains the mode parameter and its default, but it does not explicitly define slug as the wiki page identifier or what format tags and slug should take beyond vague hints in the operation statement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific operation: add or replace tags on a wiki page. This distinguishes it from sibling tools like search_wiki, read_wiki_page, create_note, and update_note_section, none of which directly manage tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two usage modes and their semantics: add merges with existing tags and is the default, while replace overwrites. This gives an agent enough context to pick the right mode, though it does not explicitly discuss exclusions or how to decide between this and other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_note_sectionA
Replace the content under a section heading on an existing page. Refuses to modify human-edited pages unless force: true.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| force | No | ||
| section | Yes | ||
| new_content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description must carry the full behavioral burden. It does so substantially by disclosing the refusal behavior for human-edited pages unless force:true is set – a non-obvious and important guard. It does not describe destruction/overwrite details or error responses, but the core guard is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no filler. The action is front-loaded, and the critical guard condition is stated immediately in the second sentence, making it easy for an agent to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no annotations and no output schema, the description is somewhat thin: it does not state what happens when the tool declines (e.g., error vs. no-op), does not explain how to identify a human-edited page, and doesn't clarify interpretation of the failure. It is adequate for basic invocation but not complete for all reasonable queries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the text must compensate for the schema's bare parameter definitions. The description meaningfully clarifies section, new_content, and force (indirectly), but slug is left unexplained, no value formats are given, and no example shows the full call signature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Replace') and states precisely what is replaced (content under a section heading on an existing page). The phrase 'on an existing page' clearly differentiates it from create/append operations, including such sibling tools as append_to_page and create_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage guidance is implied rather than explicit: it tells how the operation behaves, but does not explicitly state when to choose this over append_to_page, create_note, or other editing tools, and does not give exclusion cases. The safety guard is a behavioral clue, not full when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
There are five different search/retrieval entry points (search_wiki, search_all_projects, semantic_search, search_in_project, ask_wiki) whose selection criteria overlap heavily, and multiple ingest-like tools (ingest_source, ingest_plan/execute, quick_capture, save_chat_excerpt, mindbase_ingest_file) that an agent could easily conflate. Despite good individual descriptions, the boundaries between them are too subtle for reliable automatic tool selection.
The tool names mix a clean simple verb_noun convention (search_wiki, create_note, list_feeds) with a large prefixed mindbase_* family (mindbase_init_project, mindbase_atomic_write_context, mindbase_rebuild_index). Across the set there is also inconsistent terminology for seemingly similar resources: review cards vs cards, notes vs wiki pages, search vs query, and ingest vs capture.
50 tools is a very large surface for a single MCP server, crossing several domains: wiki operations, projects, RSS, spaced repetition, chat recall, and internal v2 project management. The count exceeds what an agent can reliably reason about, and many tools appear to be internal project-workflow helpers rather than user-facing knowledge-base operations.
Core create/read/update/search functionality exists for notes, but there is no delete/archive for wiki pages, no feed removal, no review-card update/delete, and no way to list all pages beyond recent activity. The tool surface has several dead ends that will force agents into awkward workarounds, although rich project-level operations are covered.
Maintenance
Related MCP Connectors
Personal wiki and memory layer for AI assistants. Persistent, structured memory across sessions.
One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Self-hostable shared brain for you and your AI agents — docs, flows, meetings, decisions, rationale
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables creation of persistent, compounding knowledge bases using Karpathy's LLM Wiki pattern with LLM-maintained markdown wikis. Supports automated ingestion, cross-referencing, synthesis, and linting of sources as an alternative to traditional RAG systems.62MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that implements Karpathy's LLM Wiki pattern for Obsidian vaults, enabling persistent knowledge storage and BM25 search across AI sessions.141MIT
- AlicenseAqualityDmaintenanceMarkdown + SQLite knowledge store with bidirectional wikilinks, exposed as an MCP server for AI agents to maintain an interconnected knowledge base.11MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for persistent, compounding markdown wikis maintained by LLMs. Enables incremental knowledge base building with interlinked pages, search, and raw source management.331MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/frankchu91/mindbase-llm-wiki'
If you have feedback or need assistance with the MCP directory API, please join our Discord server