Skip to main content
Glama
Lolaplex

agents-docs

by Lolaplex

agents-docs

Сверхбыстрый, без лишнего веса локальный RAG для документации в формате Markdown для ИИ-агентов кодинга через MCP.
Мгновенный поиск BM25 по официальной документации фреймворков и живым реестрам моделей ИИ. Общий для Cursor, Claude Code, Antigravity и Zed.


Зачем .agents/docs?

Кодинг-агенты часто галлюцинируют устаревшие API (Svelte 4 против 5 Runes, Tailwind v3 против v4, React 19 Actions) или ссылаются на устаревшие модели LLM и цены на токены.

Традиционные решения RAG на основе векторных эмбеддингов раздуты: они требуют Docker-контейнеров, сотен мегабайт зависимостей Python (Chroma, LangChain) и медленных вызовов API для эмбеддингов, которые разрывают блоки кода пополам.

agents-docs применяет философию Lolaplex:

  • Ноль векторных БД: разбиение Markdown с учётом заголовков + чистый лексический ранжировщик BM25 на Python с бустом совпадения заголовков (+6.0) и бустом полной фразы (+10.0).

  • Поиск менее чем за 10 мс: мгновенное извлечение прямо из обычных markdown-файлов на диске (~/.agents/docs/).

  • Живой реестр моделей ИИ: отслеживаемые в реальном времени контекстные окна, бенчмарки и цены на токены ($/1M) для моделей Frontier и Open-Weights (Claude 5/4, GPT-5/o3/o4, Gemini 3.x, DeepSeek V4/R1, Qwen 2.5 Coder).

  • Курируемый каталог из 21+ фреймворка: синхронизация в один клик для официальных llms.txt (TypeScript Handbook, Svelte 5, FastAPI, Tailwind v3/v4, Tauri 2, Next.js, Supabase, Hono, WXT, Netlify, Coolify, Cloudflare, Resend, React, Vite, Zod, Pydantic, shadcn/ui).

  • Детерминированная очистка от шума: автоматически удаляет HTML-обёртки, шум ссылок и баннеры cookie, не изменяя блоки кода или таблицы.

  • Универсальный MCP-сервер: интерфейс FastMCP stdio с автосинхронизацией и проверкой манифеста зависимостей.


Related MCP server: Speakeasy Docs MCP

Архитектура и поток

 ┌─────────────────────────────────────────────────────────────┐
 │                  DOCS & MODEL REGISTRIES                    │
 │    Official llms.txt · TypeScript Handbook · OpenRouter     │
 └──────────────────────────────┬──────────────────────────────┘
                                │  agents-docs sync <name>
                                ▼
 ┌─────────────────────────────────────────────────────────────┐
 │                 DETERMINISTIC NOISE PRUNER                  │
 │    Strips HTML boilerplate while preserving 100% of code    │
 └──────────────────────────────┬──────────────────────────────┘
                                │  Header-aware chunking
                                ▼
 ┌─────────────────────────────────────────────────────────────┐
 │                   LOCAL DOCUMENTATION STORE                 │
 │   ~/.agents/docs/ai-models/       ~/.agents/docs/svelte-5/  │
 │   ~/.agents/docs/typescript/      ~/.agents/docs/fastapi/   │
 └──────────────┬───────────────────────────────┬──────────────┘
                │                               │
                ▼                               ▼
 ┌─────────────────────────────┐ ┌─────────────────────────────┐
 │        LEXICAL BM25         │ │     MCP SERVER & CLERK      │
 │  Header Match Boost (+6.0)  │ │  search_docs · list_docsets │
 │  Sub-10ms Exact Retrieval   │ │  sync_project_docs          │
 └─────────────────────────────┘ └─────────────────────────────┘

Быстрый старт

Установка в один шаг

pip install agents-docs && agents-docs init

Создаёт структуру ~/.agents/docs/, заполняет живой реестр ai-models, автоматически настраивает конфигурации MCP в ваших установленных IDE и регистрирует навыки ассистента.

[!TIP] 🤖 Установка через агента (без трения):
Просто скажите вашему кодинг-агенту: "Установи и настрой agents-docs для меня."
Агент установит пакет, запустит agents-docs init и автоматически получит свежую документацию, когда вы спросите о техническом стеке или ценах на модели.


Справочник CLI

Команда

Назначение

agents-docs init

Установка Plug & Play: автоматическая настройка MCP во всех IDE и заполнение документации моделей

agents-docs catalog

Список всех 21+ предварительно настроенных фреймворков и каталогов моделей

agents-docs sync <name>

Загрузка/обновление официальной документации фреймворка в один клик

agents-docs sync <name> --url <URL>

Принимает любой пользовательский llms.txt, llms-full.txt или markdown URL

agents-docs search "<query>"

Быстрый поиск BM25 по всем установленным наборам документации

agents-docs search "<query>" --docset <name>

Ограниченный поиск в конкретном наборе документации

agents-docs prune

Очистка от шума и шаблонного кода на месте во всех установленных документах

agents-docs list

Список всех установленных наборов документации на диске с количеством файлов и байтов

agents-docs serve

Запускает сервер FastMCP stdio (по умолчанию)


Справочник инструментов MCP

Инструмент

Параметры

Описание

list_docsets

Нет

Список всех установленных наборов документации в ~/.agents/docs/ с количеством файлов и размерами в байтах.

search_docs

query, docset (по умолчанию: "all"), top_k (по умолчанию: 4)

Возвращает лучшие совпадающие разделы markdown с заголовками и блоками кода за миллисекунды. Автоматически синхронизирует отсутствующие наборы каталога по запросу.

get_doc_page

docset, rel_path

Возвращает исходное содержимое markdown конкретного файла.

list_catalog

Нет

Список всех 21+ предварительно настроенных фреймворков и каталогов моделей, доступных для синхронизации в один клик.

sync_docset

name, url (необязательно)

Загружает/обновляет официальную документацию из каталога или пользовательского llms.txt / markdown URL.

sync_project_docs

project_path

Проверяет package.json, requirements.txt, pyproject.toml, Cargo.toml и автоматически синхронизирует обнаруженные наборы документации.

sync_memory_docs

Нет

Сканирует ~/.agents/memory/PROJECTS.md и синхронизирует все активные стеки.


Поддерживаемая экосистема

  • Claude Code: привязка через MCP-сервер и .agents/skills/docs-search.

  • Google Antigravity: интеграция через правила .gemini/config и MCP agents-docs.

  • Cursor: автоматически настраивает .cursor/mcp.json и правила агента.

  • Zed: настраивает context_servers и зеркалирует навыки ассистента.

  • VS Code / Windsurf: автоматически подключает конфигурацию MCP для Cline / Roo-Code.


Открытая спецификация ABI

Подробные архитектурные спецификации находятся в abi/:

  • abi/WHY.md — Архитектурное обоснование и сравнение BM25 с векторными эмбеддингами.

  • abi/LAYOUT.md — Таксономия хранения в ~/.agents/docs/.

  • abi/MCP.md — Определения и схемы поверхности инструментов.

  • abi/CATALOG.md — Схема курируемого каталога и поддерживаемые типы.

  • abi/LLMSTXT.md — Поддержка стандарта llms.txt.


Тестирование и проверка

Запустите набор тестов на всех движках:

python tests/run_all_tests.py

Лицензия

Лицензия MIT. Подробности см. в LICENSE.

Available Tools

8 tools
delete_docA

Delete a technical fact sheet that is wrong, duplicate, or yanked.

Do not delete because a fact is old. Old-but-still-true model/API notes stay.

Args: name: Document identifier to delete category: Category where the doc resides ('stacks', 'models', 'apis', 'platforms', 'custom')

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
categoryNocustom

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full behavioral burden. It usefully defines what qualifies for deletion, but for a destructive tool it never states whether the deletion is permanent or reversible, what permissions are needed, or what happens to linked references.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the key exclusion rule are front-loaded in two short sentences, followed by a compact args list. No filler, though the args list largely restates the schema's properties.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and both parameters are covered. For a destructive operation with no annotations, the omission of reversibility/permission context is the only real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: 'name' is documented as a document identifier, and 'category' is given as the location of the doc with the full enumerated set ('stacks', 'models', 'apis', 'platforms', 'custom') plus the 'custom' default. It only lacks guidance on name format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (delete) plus resource (technical fact sheet) with qualifying criteria (wrong, duplicate, or yanked). An agent can distinguish this from write_doc/get_doc without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit negative rule: 'Do not delete because a fact is old. Old-but-still-true model/API notes stay.' This is a real when-not constraint. It stops short of naming the alternative tool (e.g., write_doc to correct a stale-but-true note), so it is 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_docA

Fetch the complete raw markdown of a technical fact sheet, spec, or playbook.

Args: name: Name or relative path of the doc (e.g. 'tailwind-v3', 'stacks/fastapi.md', 'coolify-db', 'ai-models/pricing_and_specs.md') category: Optional category filter ('stacks', 'models', 'apis', 'platforms', 'custom', or 'all').

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
categoryNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses that output is raw markdown and complete rather than summarized or truncated, but it says nothing about read-only nature, permissions, or behavior when the doc is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is a single front-loaded sentence, and the Args block is compact. The docstring-style formatting is slightly mechanical but wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and both inputs are documented with examples. What is missing is routing guidance relative to the six sibling tools and any failure behavior for unknown names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 and largely does: it documents both parameters with concrete path examples and enumerates the accepted category values ('stacks', 'models', 'apis', 'platforms', 'custom', 'all') that the schema does not constrain via enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (doc) plus the return form ('complete raw markdown'), which implicitly separates it from search_docs' snippet-style results. It never names a sibling or explicitly contrasts scope, so it falls short of the top tier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: fetching 'complete raw' content suggests a lookup-by-known-name flow, but nothing says when to prefer this over search_docs or list_docs, nor that search should come first when the name is unknown. The category filter hints at narrowing, but no when/when-not rule is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_model_playbookA

Get self-awareness operational playbooks, strengths, traps, and best practices for AI models. Enables models to understand their own capabilities and optimize tool execution patterns.

Args: model: Model name or family (e.g. 'gemini-3.7-flash', 'claude-3.7-sonnet', 'gpt-4o', 'deepseek-r1', 'qwen', or 'auto').

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoauto

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'Get' implies a read-only retrieval, and it discloses that the payload covers strengths/traps/best practices, but it says nothing about permissions, caching, freshness, or whether the playbook is static. Adequate but thin for an annotation-free tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences plus a short args block; no filler. The 'Args:' formatting is slightly heavier than needed for a single optional parameter, but nothing is wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the single optional parameter is covered with examples. The remaining gap is the undisclosed behavior of 'auto' and the lack of any freshness/scope caveat, which are minor for a read-style lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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, and it does: it explains that `model` accepts a model name or family and provides five concrete examples plus the 'auto' sentinel. It still doesn't explain what 'auto' resolves to, but this is substantially better than the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('self-awareness operational playbooks, strengths, traps, and best practices for AI models'), which is clearly distinct from the doc-oriented siblings. The purpose is understandable, though the phrase 'self-awareness operational playbooks' is somewhat abstract and never concretely described.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence ('Enables models to understand their own capabilities and optimize tool execution patterns') implies a usage context but gives no explicit when-to-use trigger, no prerequisites, and no comparison to alternatives. The 'auto' option hints at a default path but doesn't say when to pick a specific model instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_catalogA

List curated pre-configured framework docsets available for 1-click sync. Includes Svelte 5, FastAPI, Next.js, Supabase, Tailwind v3/v4, Tauri 2, Hono, MCP, WXT.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The verb 'List' and the example frameworks give a reasonable sense of expected content, and the tool has no parameters, making it likely read-only. With no annotations, the description carries the transparency burden, but it does not explicitly state that this is a non-mutating operation or how results are ordered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, and concrete examples. Every word earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with an output schema, the description fully covers what is being listed, why it matters for one-click sync, and what the catalog contains. There are no critical gaps for this level of complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description adds meaningful context about curated pre-configured docsets and the sync availability that the empty schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists curated pre-configured framework docsets and gives concrete examples, so the verb and resource are specific. It does not explicitly differentiate itself from the similarly named sibling list_docsets, preventing a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 list_docsets, search_docs, or sync_docset. The wording implies it is for discovering pre-configured docsets, but no alternatives or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_docsB

List all indexed technical documents, fact sheets, API specs, and playbooks with category and size.

Args: category: Filter by category ('stacks', 'models', 'apis', 'platforms', 'custom', or 'all')

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. Beyond the implied read-only nature of 'List', it says nothing about pagination, result limits, ordering, or auth requirements, which matters for a catalog-listing tool. 'with category and size' is the only return-behavior hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One summary sentence plus a compact argument block; nothing is wasted. The front-loaded sentence carries the purpose, though the 'Args:' formatting adds minor structural noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the single optional parameter is documented. Only pagination/scope limits are unaddressed; otherwise complete for a simple listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% – the schema only declares a string with default 'all' and no enum. The description compensates by enumerating the valid values ('stacks', 'models', 'apis', 'platforms', 'custom', 'all'), adding meaning the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('indexed technical documents, fact sheets, API specs, and playbooks'), so the agent knows exactly what it returns. It does not, however, distinguish itself from the sibling search_docs or list_catalog, leaving the enumeration-vs-search boundary to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'List all indexed...' implies enumerating the full catalog, which hints at when to prefer it over search_docs. There is no explicit when-to-use/when-not statement or named alternative, so the routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsA

Search hard technical facts, API specs, stack rules, model capabilities, and playbooks using header-aware BM25 ranking.

Args: query: Keywords, function signatures, syntax, or technical questions (e.g. 'runes $state', 'HTTPException', 'coolify postgres port', 'cdp tab focus') category: Target category ('stacks', 'models', 'apis', 'platforms', 'custom', or specific docset name, or 'all' to search everything). top_k: Number of relevant sections to return (default 4).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo
categoryNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the ranking algorithm and that results are ranked sections, which is useful, but says nothing about permissions, result ordering guarantees, or failure behavior; the existence of an output schema removes the need to describe return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded opening sentence followed by a compact Args block. The parenthetical query examples add real value rather than filler, and nothing is redundant, though the examples are slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All three parameters are documented in the description, which is essential given 0% schema coverage, and the output schema covers return values. Guidance on selecting this tool over siblings is the only notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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, and it does: it enumerates the accepted category values ('stacks', 'models', 'apis', 'platforms', 'custom', docset name, 'all'), explains top_k as 'number of relevant sections to return (default 4)', and gives concrete query examples. Format details like query syntax are left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and the resource/content type (hard technical facts, API specs, stack rules, model capabilities, playbooks), and adds the ranking mechanism (header-aware BM25). It clearly reads as a retrieval tool distinct from write/list/delete siblings, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the content scope ('hard technical facts, API specs...') and by the query examples, but there is no explicit guidance on when to prefer this over get_doc or get_model_playbook, nor any when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_external_docB

Fetch/synchronize an external documentation set from curated catalog or custom llms.txt URL.

Args: name: Name of the catalog item (e.g. 'svelte-5', 'fastapi', 'tailwind-v3') or custom identifier. url: Optional custom URL (pointing to llms.txt, llms-full.txt, or raw markdown).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Synchronize' implies a write/persist operation that could overwrite or duplicate previously synced docs, but the description says nothing about idempotency, overwrite semantics, network/auth requirements, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the argument notes are compact with no filler. The Args block is slightly redundant with the schema but earns its place by supplying formats and examples the schema lacks.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and both params are covered. The gap is behavioral: for a synchronizing tool with no annotations, an agent still cannot tell what gets written, whether an existing doc set is replaced, or how this differs operationally from list_catalog plus get_doc.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description documents both parameters meaningfully: 'name' as a catalog item or custom identifier with examples ('svelte-5', 'fastapi', 'tailwind-v3'), and 'url' as an optional custom source accepting llms.txt, llms-full.txt, or raw markdown. This adds real meaning beyond the bare string schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (fetch/synchronize) and a specific resource (external documentation set), with concrete source types (curated catalog or custom llms.txt URL). It is distinguishable from the read-only siblings like get_doc and search_docs, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the trigger (you want docs from a catalog item or an external llms.txt source) and explains that 'name' may be either a catalog item or a custom identifier. However it gives no explicit when-not guidance and does not contrast itself with list_catalog, which is the closest sibling for discovering catalog items.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_docA

Append a durable technical fact (API spec, stack rule, model capability, platform note).

Default appends a dated section. Does not clobber. Use overwrite=True only to replace a wrong sheet. Hard tech facts belong here. User prefs and project fluid facts belong in agents-memory, not docs. delete_doc is for wrong/duplicate/yanked sheets — not for an old model that is still true.

Args: name: Short document identifier (e.g. 'powershell-gotchas', 'stripe-api', 'coolify-db-ports') content: Markdown fact to append (or full replacement when overwrite=True) category: One of 'stacks' (frameworks/libs), 'models' (LLM specs), 'apis' (protocol/APIs), 'platforms' (OS/Infra/DB), 'custom' overwrite: False (default) appends. True replaces the entire file.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
contentYes
categoryNocustom
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it discloses non-clobbering default behavior, that appends are dated sections, and that overwrite=True replaces the entire file. It stops short of stating permissions, failure modes, or write durability guarantees, but the mutation semantics are unusually clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then routing rules, then args. Every sentence carries information, though 'Hard tech facts belong here' slightly restates the opening line and the args block repeats details that could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a 4-parameter write tool with no annotations and zero schema description coverage, the description supplies the action, the routing rules, the mutation semantics, and all four parameter meanings — nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

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 fully and does: name is explained with three concrete slug examples, content notes markdown and full-replacement behavior under overwrite, category enumerates all five allowed values, and overwrite states its default and effect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Append a durable technical fact') and immediately scopes it with concrete examples (API spec, stack rule, model capability, platform note). It is clearly distinguishable from siblings like search_docs, get_doc, and delete_doc, which are either named or implied by the read/delete framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes content: hard tech facts here, user prefs and project fluid facts to agents-memory, and wrong/duplicate/yanked sheets to delete_doc. It even handles the subtle case of an old-but-still-true model, which is exactly the kind of when-not guidance that prevents misrouting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.44.1
    • Addeddelete_doc
    • Addedget_doc
    • Removedget_doc_page
    • Addedget_model_playbook
    • Addedlist_docs
    • Removedlist_docsets
    • Changedsearch_docs2 fields changed
      • addedInput schema / properties / category
        Added value: +{
        +  "default": "all",
        +  "title": "Category",
        +  "type": "string"
        +}
      • removedInput schema / properties / docset
        Removed value: -{
        -  "default": "all",
        -  "title": "Docset",
        -  "type": "string"
        -}
    • Removedsync_docset
    • Addedsync_external_doc
    • Removedsync_memory_docs
    • Removedsync_project_docs
    • Addedwrite_doc
  2. 7 tool updatesv0.42.0
    • First observedget_doc_page
    • First observedlist_catalog
    • First observedlist_docsets
    • First observedsearch_docs
    • First observedsync_docset
    • First observedsync_memory_docs
    • First observedsync_project_docs

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a clearly distinct operation: search vs. full fetch, write vs. delete vs. list, external sync vs. catalog listing, and a specialized model playbook. The descriptions explicitly delineate boundaries (e.g., write_doc for facts vs. agents-memory for prefs). No two tools can be easily confused.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (search_docs, get_doc, write_doc, delete_doc, list_docs, sync_external_doc, get_model_playbook, list_catalog). There are no deviations in casing or verb style.

Tool Count5/5

Eight tools is well-scoped for a documentation management server. Each tool serves a unique purpose—retrieval, mutation, listing, external sync, and playbooks—with no redundancy or bloat.

Completeness5/5

The surface covers full CRUD (write with overwrite for update, get/search/list, delete) plus external synchronization, catalog browsing, and specialized model playbooks. No obvious gaps in the documentation lifecycle are apparent.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server that gives AI coding agents on-demand access to private project docs via BM25 ranked search. One setup for Claude Code, Cursor, Codex, Gemini CLI, and more. Docs stay private, never in public repos.
    15
    16
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A lightweight, domain-agnostic hybrid search engine for markdown corpora, exposed via the Model Context Protocol (MCP), optimized for serving SDK documentation to AI coding agents.
    8
    AGPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    Local-first context retrieval engine that serves precise documentation chunks to coding agents via MCP, ensuring high-confidence context for code generation.
    3
    MIT