Skip to main content
Glama

doc-bot

npm version License: MIT

An intelligent MCP (Model Context Protocol) server that gives AI assistants like Claude and Cursor deep understanding of your project through smart documentation management.

What is doc-bot?

doc-bot is a documentation server that enhances AI coding assistants by providing:

  • 🧠 Smart search through your project documentation

  • šŸ“– Contextual docs that surface guidance based on what you're working on

  • šŸ”„ Live updates as your documentation changes

  • šŸ“š API references from official documentation (via Docsets)

  • šŸ¤– MCP tools for AI agents to query and understand your project

  • āœļø Agent-driven updates so new knowledge is captured in docs

Related MCP server: CastPlan MCP

Why doc-bot?

Traditional AI assistants have limited context windows and no understanding of your specific project. doc-bot solves this by:

  1. Providing project-specific knowledge - Your conventions, patterns, and decisions

  2. Searching intelligently - AI finds exactly what it needs without cluttering context

  3. Scaling infinitely - Thousands of docs without token limits

  4. Staying current - Live reload ensures AI always has latest information

How It Works

doc-bot acts as a bridge between your documentation and AI assistants:

Your Project Documentation → doc-bot → MCP Protocol → AI Assistant (Claude, Cursor, etc.)

When you ask your AI assistant to write code, it can:

  1. Search for relevant documentation

  2. Read project docs for patterns and examples

  3. Find API references and examples

  4. Update documentation when new patterns are discovered

Quick Start

1. Install doc-bot

Add doc-bot to your AI assistant's configuration:

For Claude Desktop or Claude Code:

{
  "mcpServers": {
    "doc-bot": {
      "command": "npx",
      "args": ["@afterxleep/doc-bot@latest"]
    }
  }
}

Location of config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

For Cursor:

  • Add an mcp.json file with the contents above to your .cursor folder

2. Create Your Documentation

Create a doc-bot folder in your project root and add markdown files:

your-project/
ā”œā”€ā”€ doc-bot/
│   ā”œā”€ā”€ coding-standards.md
│   ā”œā”€ā”€ api-patterns.md
│   ā”œā”€ā”€ testing-guide.md
│   └── architecture.md
ā”œā”€ā”€ src/
└── package.json

3. Test it!

Ask your AI assistant: "What are the coding standards for this project?"

Versioning and Compatibility

doc-bot 2.0 is a breaking change. Rule enforcement is removed in favor of documentation-first guidance. As a legacy fallback, docs marked alwaysApply: true (or always_apply: true) are surfaced in the system prompt and get_file_docs results.

  • If you need the legacy rule enforcement flow, pin to @afterxleep/doc-bot@1 or build from the 1.x branch.

  • New installs should use the latest 2.x line (@afterxleep/doc-bot@latest).

Project Documentation

doc-bot treats your project documentation as a searchable knowledge base for AI assistants.

Agent-Driven Updates

doc-bot is designed for agents to keep documentation current as they work. When an assistant discovers a new pattern or a change, it can add or update docs directly:

{
  "fileName": "auth-flow.md",
  "title": "Auth Flow",
  "description": "OAuth flow and token handling",
  "keywords": ["auth", "oauth", "tokens"],
  "filePatterns": ["src/auth/**"],
  "content": "# Auth Flow\n\nDocument the new flow here."
}

Agent Documentation Loop

Use this fast loop to extend project knowledge and keep docs current:

  1. Orient quickly: call doc_bot(task) or get_document_index() when the project is unfamiliar.

  2. Find specifics: use search_documentation with concrete terms (API names, class names, errors).

  3. Read the full context: open matches with read_specific_document or get_file_docs.

  4. Capture new knowledge: when behavior changes or new patterns emerge, write it with create_or_update_rule.

  5. Refresh when needed: if docs are edited manually, run refresh_documentation().

Keep docs short, scoped, and searchable with clear titles, keywords, and filePatterns.

Documentation Format

Create markdown files with frontmatter metadata:

---
title: "React Component Guidelines"
description: "Standards for building React components"
keywords: ["react", "components", "frontend", "jsx"]
---

# React Component Guidelines

- Use functional components with hooks
- Follow PascalCase naming
- Keep components under 200 lines
- Write tests for all components

Frontmatter Options

Field

Type

Description

Example

title

string

Document title (required)

"API Guidelines"

description

string

Brief description

"REST API design patterns"

keywords

array

Search keywords

["api", "rest", "http"]

topics

array

Optional topical tags

["architecture", "backend"]

filePatterns

array

Apply to specific files

[".test.js", "**/.spec.ts"]

alwaysApply

boolean

Always include this doc in system prompt + file docs (alias: always_apply)

true

How Search Works

  1. Intelligent Parsing - Queries are parsed, stop words removed

  2. Multi-field Matching - Searches title, description, keywords, and content

  3. Relevance Scoring - Results ranked by relevance (exact matches score highest)

  4. Compact Results - Returns titles, paths, descriptions, scores, and matched terms only

doc-bot surfaces documentation for agents; it does not enforce rules. Docs marked alwaysApply: true are always surfaced for agents. Agents should update docs when new patterns or changes appear.

Types of Documentation

General Documentation

---
title: "Coding Standards"
---
Project-wide guidance and conventions

Contextual Documentation

---
title: "Testing Guide"
filePatterns: ["*.test.js", "*.spec.ts"]
---
Documentation that only applies to test files

Searchable References

---
title: "Database Schema"
keywords: ["database", "postgres", "schema", "migrations"]
---
Documentation found through search queries

Docsets (API Documentation)

doc-bot can also search official API documentation from Docsets, giving your AI assistant access to comprehensive framework and library references.

What are Docsets?

Docsets are pre-built documentation databases containing official docs for:

  • Programming languages (Python, JavaScript, Go, etc.)

  • Frameworks (React, Vue, Django, Rails, etc.)

  • Libraries (NumPy, Express, jQuery, etc.)

  • Platforms (iOS, Android, AWS, etc.)

Setting Up Docsets

  1. Option A: Ask your AI assistant to install directly:

    From a URL:

    Use the add_docset tool to install Swift documentation from https://kapeli.com/feeds/Swift.tgz

    From a local file:

    Use the add_docset tool to install the docset at /Users/me/Downloads/React.docset
  2. Manage your docsets:

    List all installed docsets
    Remove docset with ID abc123

    Docsets are automatically stored in ~/Developer/DocSets by default.

Docset Sources

Popular docsets available:

  • Programming Languages: Python, JavaScript, Go, Rust, Swift

  • Web Frameworks: React, Vue, Angular, Django, Rails

  • Mobile: iOS, Android, React Native, Flutter

  • Databases: PostgreSQL, MySQL, MongoDB, Redis

  • Cloud: AWS, Google Cloud, Azure

  1. Configure custom path (optional):

    {
      "mcpServers": {
        "doc-bot": {
          "command": "npx",
          "args": ["@afterxleep/doc-bot@latest", "--docsets", "/path/to/docsets"]
        }
      }
    }

How Docset Search Works

  • Unified Search: One query searches both your docs and API docs

  • Smart Prioritization: Your project docs are boosted 5x in relevance

  • API Exploration: Use explore_api tool to discover related classes, methods

  • Performance: Parallel search across multiple docsets with caching

Available Tools

doc-bot provides these tools to AI assistants:

Tool

Purpose

Example Use

doc_bot

Get documentation guidance

"How should I approach auth?"

search_documentation

Search all documentation

"How do I implement auth?"

get_file_docs

Get file-specific docs

"Docs for Button.test.jsx"

read_specific_document

Read full docs by file name

"Open coding-standards.md"

get_document_index

List all docs

"Show documentation index"

create_or_update_rule

Add/update documentation

"Capture auth flow update"

refresh_documentation

Reload docs from disk

"Refresh the doc store"

explore_api

Explore API documentation

"Show me URLSession methods"

add_docset

Install new docset

"Add Swift docs from URL"

remove_docset

Remove installed docset

"Remove docset abc123"

list_docsets

List all docsets

"Show installed docsets"

Configuration Options

CLI Options

doc-bot [options]

Options:
  -d, --docs <path>        Path to docs folder (default: ./doc-bot)
  -s, --docsets <path>     Path to docsets folder (default: ~/Developer/DocSets)
  -v, --verbose           Enable verbose logging
  -w, --watch             Watch for file changes
  -h, --help              Display help

Advanced Configuration

{
  "mcpServers": {
    "doc-bot": {
      "command": "npx",
      "args": [
        "@afterxleep/doc-bot@latest",
        "--docs", "./documentation",
        "--docsets", "/Library/Application Support/Dash/DocSets",
        "--verbose",
        "--watch"
      ]
    }
  }
}

Documentation

Best Practices

Writing Effective Documentation

  1. Use descriptive titles and keywords

    ---
    title: "Authentication Flow"
    keywords: ["auth", "login", "jwt", "security", "authentication"]
    ---
  2. Use file patterns for contextual docs

    ---
    filePatterns: ["**/auth/**", "*.auth.js"]
    ---
  3. Keep docs focused - One topic per file

  4. Include examples - Show, don't just tell

  • Include synonyms in keywords: ["test", "testing", "spec", "jest"]

  • Use clear section headers so matching stays accurate

  • Add concise descriptions because search results show descriptions, not body content

Why MCP over Static Instruction Files?

Unlike static .cursorrules or .github/copilot-instructions.md files:

  • Dynamic: AI searches for what it needs instead of reading everything

  • Scalable: Unlimited docs without token limits

  • Intelligent: Context-aware documentation based on current file

  • Unified: Works with any MCP-compatible AI tool

  • Live: Hot reload on documentation changes

Contributing

See our Contributing Guide for development setup and guidelines.

License

MIT - See LICENSE for details.

Support

Releases

We publish from the stable branch via GitHub Actions. Use the Publish to npm workflow (manual trigger) or merge to stable to release.

Legacy Agent Enforcement (Optional)

This is not the primary workflow; doc-bot focuses on documentation-first guidance and agent-driven updates. If you still need the legacy "always apply" flow enforced by your agent host, copy templates/AGENTS.md into your project's AGENTS.md. This forces the agent to call doc_bot() first and follow doc-bot's tool sequence, ensuring alwaysApply docs are surfaced before work begins.

Note: doc-bot does not enforce rules. Your agent host must honor AGENTS.md for this to work.


Built with ā¤ļø in Spain

Available Tools

11 tools
add_docsetB

Install a new documentation set (docset) for API reference. Supports both local .docset files and direct URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesPath to local .docset file/directory or URL to download. Examples: "/Downloads/Swift.docset", "https://example.com/React.docset.tgz"

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description fully determines behavioral transparency. It indicates a write operation ('Install') but does not disclose side effects (e.g., overwrite behavior, storage location, permissions, or error handling). The lack of detail on what happens after installation reduces transparency.

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?

The description is two highly concise sentences, front-loading the core purpose and supported sources. Every word adds value with no redundancy.

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?

For a simple one-parameter tool with no annotations or output schema, the description is mostly adequate but lacks details on return behavior (e.g., success confirmation, error messages) and usage context. It covers the basic interface but leaves some gaps.

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

Parameters3/5

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

The schema already covers the single parameter 'source' with 100% description coverage, including examples. The description adds context ('for API reference' and 'local .docset files and direct URLs') but does not significantly add meaning beyond the schema. Baseline 3 is appropriate.

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?

The description clearly states the action 'Install', the resource 'documentation set (docset)', and the purpose 'for API reference'. It also specifies the supported formats (local files and URLs), effectively distinguishing it from sibling tools like 'list_docsets' and 'remove_docset'.

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?

The description provides no guidance on when to use this tool versus alternatives (e.g., 'refresh_documentation' or 'search_documentation'). There is no mention of prerequisites, typical use cases, or limitations, leaving the agent without context for selection.

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

create_or_update_ruleA

Create or update documentation as you discover new patterns, decisions, or changes. Use this to keep docs current for future agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDocument title for display and search
topicsNoOptional topical tags to group related documents
contentYesFull markdown content of the documentation
categoryNoOptional category label for this document
fileNameYesDocumentation file name. Must end with .md. Example: "api-patterns.md"
keywordsNoSearch keywords. Include technologies, patterns, and concepts covered
alwaysApplyNoMark this doc as always-apply guidance for every task
descriptionNoBrief summary of the document's purpose
filePatternsNoOptional file globs for contextual docs. Examples: ["**/*.test.js"]

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only mentions 'create or update' (upsert behavior), but lacks details on side effects, idempotency, or what happens on update vs create. The boolean parameter 'alwaysApply' is not explained in description.

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?

The description is two sentences, front-loaded with the action, and contains no unnecessary words. It is concise and to the point.

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

Completeness2/5

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

Despite 9 parameters and no output schema, the description does not explain the purpose of rules vs other doc tools, return values, or the effect of fields like 'alwaysApply'. It is incomplete for an agent to understand all aspects of invocation.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no additional semantic meaning beyond the schema. Baseline 3 is appropriate as the description does not compensate with extra context for the parameters.

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?

The description clearly states the action (create or update) and resource (documentation) with a specific context (discovering patterns, decisions, changes). It distinguishes from sibling tools like 'add_docset' or 'search_documentation' by focusing on individual documentation rules.

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?

Provides clear context for when to use: 'as you discover new patterns, decisions, or changes' and 'to keep docs current for future agents'. No explicit exclusions or alternatives are mentioned, but the context is clear.

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

doc_botB

Documentation MCP guidance: suggests docs, search hints, and doc upkeep steps. Use frequently to stay aligned and capture new knowledge.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for paginated results (default: 1). Use this when the response indicates more pages are available.
taskYesWhat do you need help with? Examples: "create REST API", "modify auth.js", "debug auth error", "review completion", "understand auth flow"

TDQS

B3.3/5.0
Behavior3/5

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 the tool suggests docs, search hints, and upkeep steps, giving a reasonable idea of behavior. However, it does not detail return format, side effects, or limitations, 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.

Conciseness5/5

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

The description is extremely concise with two sentences: the first defines the purpose, the second provides usage guidance. No filler or repetition, and the key information is front-loaded.

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?

For a tool with 2 parameters, no output schema, and no annotations, the description provides basic purpose and usage context. It lacks details on what the tool actually returns (e.g., list of documents? steps?) and how it differs from siblings like search_documentation. It is minimally complete but not fully informative.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already clearly describes both parameters (task with examples, page with default). The tool description adds no additional parameter semantics beyond the schema, so the baseline score of 3 applies.

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 provides 'documentation MCP guidance' including suggesting docs, search hints, and doc upkeep steps. It distinguishes from sibling tools like add_docset or read_specific_document by focusing on general guidance rather than specific document operations.

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?

The description says 'Use frequently to stay aligned and capture new knowledge,' which is vague and lacks explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, and context for choosing this tool over siblings like search_documentation or explore_api is missing.

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

explore_apiB

Deep dive into any API, framework, or class from installed docsets.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiNameYesAPI, framework, or class name. Examples: "URLSession", "WidgetKit", "SwiftUI.View", "React.Component"
docsetIdNoLimit exploration to specific documentation set

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral details. It fails to explain what 'deep dive' entails, such as whether it returns methods, properties, full documentation text, or any side effects like rate limits or authentication requirements.

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 description is a single, concise sentence that is to the point. It wastes no words, though it could benefit from a slightly more structured breakdown of functionality.

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

Completeness2/5

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

Given no output schema and no annotations, the description is insufficient. It does not explain what the tool returns, the format, or the depth of exploration. Users are left guessing what 'deep dive' actually produces.

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

Parameters3/5

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

Input schema has 100% description coverage with good examples for 'apiName'. The description adds little extra meaning beyond the schema, just reinforcing the concept of exploration. Baseline 3 is appropriate due to high schema coverage.

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?

The description clearly states the tool's purpose: 'Deep dive into any API, framework, or class from installed docsets.' It uses a specific verb ('deep dive') and identifies the resource, distinguishing it from sibling tools like 'search_documentation'.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when to avoid using it, or compare to siblings like 'search_documentation' or 'get_file_docs'.

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

get_document_indexB

List all available project documentation files with titles and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It states the tool lists files, but fails to mention any potential side effects, prerequisites, or constraints (e.g., what 'available' means). Behavior beyond the basic action is unclear.

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?

A single sentence effectively communicates the tool's purpose with no redundancy or unnecessary information. Highly concise.

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?

The description is adequate for a simple list tool with no parameters, but lacks context regarding its relationship to sibling tools (e.g., when to use this vs 'list_docsets'). No output schema means return values are not explained.

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 input schema has no parameters (100% coverage), so the description does not need to add parameter detail. Baseline score of 4 is appropriate as the schema fully documents the interface.

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?

Description clearly states 'List all available project documentation files with titles and metadata', specifying verb (list) and resource (project documentation files). However, it does not explicitly differentiate from sibling tools like 'list_docsets' or 'get_file_docs', which may have overlapping functionality.

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?

No guidance is provided on when to use this tool versus alternatives such as 'list_docsets' or 'search_documentation'. The description lacks context for tool selection.

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

get_file_docsA

Get documentation that matches a file path or pattern using frontmatter filePatterns. Use when editing a specific file or directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesFile path or pattern. Examples: "src/components/Button.tsx", "**/*.test.js", "services/auth/*"

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It implies a read-only operation but does not mention side effects, authentication needs, rate limits, or what happens if no match is found. This is insufficient for a tool with no annotation support.

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?

The description is extremely concise with two sentences: one explaining the function and one providing usage guidance. Every sentence adds value with no redundancy.

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?

For a simple tool with one parameter and no output schema, the description gives adequate context for basic use. However, it lacks details on return format, behavior on no match, or explanation of 'frontmatter filePatterns', making it only moderately complete.

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

Parameters3/5

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

The input schema already fully describes the 'filePath' parameter with examples (100% coverage). The tool description adds no additional semantics beyond the schema, so the baseline score of 3 is appropriate.

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?

The description clearly states the tool retrieves documentation matching a file path or pattern using frontmatter filePatterns. It distinguishes itself from siblings like 'search_documentation' by specifying a file-path-based use case.

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?

The description explicitly states 'Use when editing a specific file or directory,' providing clear usage context. However, it does not explicitly mention when not to use or compare with alternative tools like 'search_documentation' or 'read_specific_document'.

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

list_docsetsA

List all installed documentation sets (docsets). Shows docset IDs, names, and installation details.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states it lists and shows IDs, names, and details, but omits that it is read-only, safe, and returns a list. The lack of behavioral context is a gap.

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?

The description is a single sentence with no redundancy. It is front-loaded and every word adds value.

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?

Given the tool's simplicity (no parameters, no output schema), the description adequately states what is listed. It could mention that the output is an array, but that is minor.

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 no parameters, and the baseline is 4. The description adds no parameter information, which is acceptable since schema coverage is 100% and no parameters exist.

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?

The description uses specific verb 'list' and resource 'docsets', clearly identifying its action. It distinguishes from sibling tools like add_docset and remove_docset by stating it shows all installed documentation sets.

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 use when needing to see installed docs, but does not explicitly state when to use or not use it. No alternatives or exclusions are mentioned.

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

read_specific_documentB

Read full documentation file content when you need complete context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for paginated content. Default: 1
fileNameYesName of the documentation file to read. Must match exactly. Example: "coding-standards.md"

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It claims to read full file content but the schema includes a page parameter for pagination, creating ambiguity. It does not disclose error handling, file format, or size limits, leaving critical behavioral gaps.

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 description is a single concise sentence that front-loads the purpose. It could be more structured to include usage guidance or pagination clarification, but it efficiently conveys the core action.

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

Completeness2/5

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

Given no output schema and two parameters, the description lacks completeness: it does not explain return values, pagination behavior, file type, or how to discover available files. The context signals show a 100% parameter coverage, but the description fails to integrate that into a coherent operational guide.

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

Parameters3/5

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 adds no additional parameter context beyond what the schema already provides (fileName must match exactly, page for paginated content).

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?

The description clearly states the tool reads full documentation file content when complete context is needed. It uses specific verb 'Read' and resource 'documentation file content', distinguishing it from siblings like search_documentation (searching) and get_document_index (listing documents).

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 usage when complete context is needed but does not explicitly state when to avoid this tool or mention alternatives. It lacks guidance on prerequisites like file existence or how to find the exact fileName, though schema provides a must-match requirement.

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

refresh_documentationA

Reload all project documentation from disk when docs are updated externally.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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. It only states it reloads documentation from disk, but fails to disclose if this is destructive, whether it requires permissions, or what the side effects are (e.g., overwriting in-memory state). This is insufficient for a mutation-like operation.

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?

The description is a single, clear sentence that front-loads the action. No unnecessary words, making it highly concise.

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?

With no output schema and no annotations, the description should explain what happens after reload (return value, confirmation). It does not describe the result or whether it's safe to call repeatedly, leaving gaps for the agent.

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?

There are no parameters, so the schema coverage is effectively 100%. The description adds no parameter info, but given zero parameters, the baseline is 4. It could mention that the tool is stateless, but not required.

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?

The description clearly states the verb 'Reload' and the resource 'all project documentation from disk', with a specific trigger condition. It distinguishes from siblings like add_docset or list_docsets which serve different purposes.

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 usage when docs are updated externally, but does not explicitly state when not to use or provide alternatives. For such a simple tool, the guidance is minimal but acceptable.

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

remove_docsetA

Remove an installed documentation set. Use list_docsets first to see available docsets and their IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsetIdYesID of the docset to remove. Get this from list_docsets command.

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic destructive action. It omits details on reversibility, permissions, or side effects, which are important for a deletion tool.

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 concise sentences. The first sentence delivers the core purpose, the second provides usage guidance. No unnecessary information.

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?

Given the simple one-parameter tool and no output schema, the description is adequate but minimal. It lacks information about return values or confirmations, and the absence of annotations leaves behavioral assumptions unaddressed.

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

Parameters3/5

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

Schema coverage is 100% and the schema description already explains the parameter's purpose and source. The description does not add additional meaning beyond the schema.

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?

The description clearly states the action ('Remove') and the resource ('an installed documentation set'). It distinguishes from siblings like 'add_docset' which adds, and 'list_docsets' which lists.

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?

The description explicitly instructs to use 'list_docsets first to see available docsets and their IDs', providing a prerequisite for proper use. However, it does not specify when not to use the tool or mention alternatives.

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

search_documentationB

Search project documentation and installed API references for patterns, examples, and usage details. Use early and often to stay aligned with current docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for paginated results. Default: 1
typeNoFilter API results by type: "Class", "Method", "Function", "Property", "Framework", "Protocol", "Enum"
limitNoMaximum compact results per page. Default: 8, maximum: 10
queryYesTechnical search terms. Examples: "URLSession", "WidgetKit", "CoreData"
docsetIdNoFilter results to specific documentation set

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It states the tool searches documentation but does not mention pagination behavior, rate limits, side effects, or how results are returned. The schema implies pagination via 'page' and 'limit' parameters, but this is not surfaced in the description.

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 description consists of two short sentences, which is concise and front-loaded. Every sentence adds value, though the structure is minimal. A 4 is given because it is efficient but not exceptionally organized.

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?

Given 5 parameters, no output schema, and no annotations, the description is somewhat lacking. It does not explain the return format, pagination behavior, or how to effectively use parameters. For a search tool, this is adequate but incomplete.

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

Parameters3/5

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

All 5 parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description itself adds no additional meaning beyond what is already in the schema; it does not explain parameter interactions or provide usage examples.

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 searches project documentation and API references for patterns and examples. It uses the verb 'search' and specifies the resource, making the purpose clear. However, it does not explicitly differentiate from siblings like 'get_document_index' or 'explore_api', so a 4 is appropriate.

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 includes the phrase 'Use early and often to stay aligned with current docs,' which provides a general usage hint but lacks explicit guidance on when not to use this tool or when to prefer alternatives. No exclusions or alternatives are mentioned.

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. Dates show when Glama detected each change.

  1. 1 tool updatev2.0.2
    • Changedsearch_documentation1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum results per page. Default: 20"New value: +"Maximum compact results per page. Default: 8, maximum: 10"
  2. 4 tool updatesv1.20.0
    • Removedcheck_project_rules
    • Changedcreate_or_update_rule5 fields changed
      • changedInput schema / properties / alwaysApply / description
        Previous value: -"true: applies to all code (global rule). false: applies only when relevant (contextual)"New value: +"Mark this doc as always-apply guidance for every task"
      • addedInput schema / properties / category
        Added value: +{
        +  "description": "Optional category label for this document",
        +  "type": "string"
        +}
      • addedInput schema / properties / filePatterns
        Added value: +{
        +  "description": "Optional file globs for contextual docs. Examples: [\"**/*.test.js\"]",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / topics
        Added value: +{
        +  "description": "Optional topical tags to group related documents",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "fileName",
        -  "title",
        -  "content",
        -  "alwaysApply"
        -]New value: +[
        +  "fileName",
        +  "title",
        +  "content"
        +]
    • Removedget_global_rules
    • Changedsearch_documentation1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Technical search terms. Use API/class names, not descriptions. Good: \"URLSession\", \"WidgetKit\", \"CoreData\". Bad: \"how to make network calls\""New value: +"Technical search terms. Examples: \"URLSession\", \"WidgetKit\", \"CoreData\""
  3. 13 tool updatesv1.0.0
    • First observedadd_docset
    • First observedcheck_project_rules
    • First observedcreate_or_update_rule
    • First observeddoc_bot
    • First observedexplore_api
    • First observedget_document_index
    • First observedget_file_docs
    • First observedget_global_rules
    • First observedlist_docsets
    • First observedread_specific_document
    • First observedrefresh_documentation
    • First observedremove_docset
    • First observedsearch_documentation

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: docset management (add, list, remove), documentation retrieval (search, read by file, read by ID, index, refresh), rule creation/update, API deep dive, and guidance. Overlaps are minimal and descriptions clarify boundaries.

Naming Consistency4/5

Most tools use a consistent verb_noun snake_case pattern (e.g., add_docset, search_documentation). The tool 'doc_bot' breaks this pattern as a noun_noun, but it's a single outlier and still readable.

Tool Count5/5

11 tools is well-scoped for a documentation MCP server. The set covers docset operations, documentation queries, rule management, and guidance without being overwhelming or too sparse.

Completeness5/5

The tool surface covers the full documentation lifecycle: install/remove docsets, create/update rules, search, read, index, and refresh. Missing operations like document deletion are not clearly needed based on the domain, so no obvious gaps.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/afterxleep/doc-bot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server