doc-bot
doc-bot is an intelligent MCP server that empowers AI assistants with deep project understanding through smart documentation management and API reference integration.
Core Capabilities:
Smart Documentation Search: Search project docs and API references using technical terms with intelligent relevance scoring (project docs boosted 5x)
Context-Aware Guidance: Get file-specific documentation, task-specific requirements, and project-wide coding standards based on your current work context
Continuous Compliance Monitoring: Use
doc_bot()andcheck_project_rules()at decision points to ensure alignment with project standards throughout developmentAPI Documentation (Docsets): Install, search, and explore official framework/library documentation with deep dives into methods, properties, and usage examples
Agent-Driven Documentation: Create and update documentation as new patterns and architectural decisions are discovered during development
Documentation Management: List, read, refresh, and manage documentation files with live reload support and file watching
Unified Search: Single interface across project documentation and API references with pagination for large result sets
Key Features: File pattern matching for contextual docs, automatic reload when files change externally, global and task-specific rule retrieval, and compatibility with MCP-enabled AI assistants like Claude and Cursor.
Provides access to Dash/Kapeli docsets for searching official API documentation across programming languages, frameworks, and libraries. Supports installing docsets from URLs or local files, managing installed docsets, and exploring API references.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@doc-botWhat are our React component naming conventions?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
doc-bot
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:
Providing project-specific knowledge - Your conventions, patterns, and decisions
Searching intelligently - AI finds exactly what it needs without cluttering context
Scaling infinitely - Thousands of docs without token limits
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:
Search for relevant documentation
Read project docs for patterns and examples
Find API references and examples
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.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
For Cursor:
Add an
mcp.jsonfile with the contents above to your.cursorfolder
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.json3. 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@1or build from the1.xbranch.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:
Orient quickly: call
doc_bot(task)orget_document_index()when the project is unfamiliar.Find specifics: use
search_documentationwith concrete terms (API names, class names, errors).Read the full context: open matches with
read_specific_documentorget_file_docs.Capture new knowledge: when behavior changes or new patterns emerge, write it with
create_or_update_rule.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 componentsFrontmatter Options
Field | Type | Description | Example |
| string | Document title (required) | "API Guidelines" |
| string | Brief description | "REST API design patterns" |
| array | Search keywords | ["api", "rest", "http"] |
| array | Optional topical tags | ["architecture", "backend"] |
| array | Apply to specific files | [".test.js", "**/.spec.ts"] |
| boolean | Always include this doc in system prompt + file docs (alias: | true |
How Search Works
Intelligent Parsing - Queries are parsed, stop words removed
Multi-field Matching - Searches title, description, keywords, and content
Relevance Scoring - Results ranked by relevance (exact matches score highest)
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 conventionsContextual Documentation
---
title: "Testing Guide"
filePatterns: ["*.test.js", "*.spec.ts"]
---
Documentation that only applies to test filesSearchable References
---
title: "Database Schema"
keywords: ["database", "postgres", "schema", "migrations"]
---
Documentation found through search queriesDocsets (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
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.tgzFrom a local file:
Use the add_docset tool to install the docset at /Users/me/Downloads/React.docsetManage your docsets:
List all installed docsets Remove docset with ID abc123Docsets are automatically stored in
~/Developer/DocSetsby default.
Docset Sources
User Contributed Docsets: https://github.com/Kapeli/Dash-User-Contributions
Docset Generation Tools: https://github.com/Kapeli/docset-generator
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
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_apitool to discover related classes, methodsPerformance: Parallel search across multiple docsets with caching
Available Tools
doc-bot provides these tools to AI assistants:
Tool | Purpose | Example Use |
| Get documentation guidance | "How should I approach auth?" |
| Search all documentation | "How do I implement auth?" |
| Get file-specific docs | "Docs for Button.test.jsx" |
| Read full docs by file name | "Open coding-standards.md" |
| List all docs | "Show documentation index" |
| Add/update documentation | "Capture auth flow update" |
| Reload docs from disk | "Refresh the doc store" |
| Explore API documentation | "Show me URLSession methods" |
| Install new docset | "Add Swift docs from URL" |
| Remove installed docset | "Remove docset abc123" |
| 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 helpAdvanced Configuration
{
"mcpServers": {
"doc-bot": {
"command": "npx",
"args": [
"@afterxleep/doc-bot@latest",
"--docs", "./documentation",
"--docsets", "/Library/Application Support/Dash/DocSets",
"--verbose",
"--watch"
]
}
}
}Documentation
API Reference - Complete reference for all MCP tools
Architecture Guide - Technical architecture and components
Configuration Guide - All configuration options
Troubleshooting Guide - Common issues and solutions
Examples & Best Practices - Real-world usage examples
Contributing Guide - How to contribute to doc-bot
Best Practices
Writing Effective Documentation
Use descriptive titles and keywords
--- title: "Authentication Flow" keywords: ["auth", "login", "jwt", "security", "authentication"] ---Use file patterns for contextual docs
--- filePatterns: ["**/auth/**", "*.auth.js"] ---Keep docs focused - One topic per file
Include examples - Show, don't just tell
Optimizing Search
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
Issues: GitHub Issues
Discussions: GitHub Discussions
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 toolsadd_docsetB
Install a new documentation set (docset) for API reference. Supports both local .docset files and direct URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Path to local .docset file/directory or URL to download. Examples: "/Downloads/Swift.docset", "https://example.com/React.docset.tgz" |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Document title for display and search | |
| topics | No | Optional topical tags to group related documents | |
| content | Yes | Full markdown content of the documentation | |
| category | No | Optional category label for this document | |
| fileName | Yes | Documentation file name. Must end with .md. Example: "api-patterns.md" | |
| keywords | No | Search keywords. Include technologies, patterns, and concepts covered | |
| alwaysApply | No | Mark this doc as always-apply guidance for every task | |
| description | No | Brief summary of the document's purpose | |
| filePatterns | No | Optional file globs for contextual docs. Examples: ["**/*.test.js"] |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for paginated results (default: 1). Use this when the response indicates more pages are available. | |
| task | Yes | What do you need help with? Examples: "create REST API", "modify auth.js", "debug auth error", "review completion", "understand auth flow" |
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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| apiName | Yes | API, framework, or class name. Examples: "URLSession", "WidgetKit", "SwiftUI.View", "React.Component" | |
| docsetId | No | Limit exploration to specific documentation set |
TDQS
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.
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.
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.
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.
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.
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.
| 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | File path or pattern. Examples: "src/components/Button.tsx", "**/*.test.js", "services/auth/*" |
TDQS
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.
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.
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.
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.
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.
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.
| 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for paginated content. Default: 1 | |
| fileName | Yes | Name of the documentation file to read. Must match exactly. Example: "coding-standards.md" |
TDQS
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.
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.
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.
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.
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.
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.
| 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| docsetId | Yes | ID of the docset to remove. Get this from list_docsets command. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for paginated results. Default: 1 | |
| type | No | Filter API results by type: "Class", "Method", "Function", "Property", "Framework", "Protocol", "Enum" | |
| limit | No | Maximum compact results per page. Default: 8, maximum: 10 | |
| query | Yes | Technical search terms. Examples: "URLSession", "WidgetKit", "CoreData" | |
| docsetId | No | Filter results to specific documentation set |
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 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.
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.
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.
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.
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.
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 tool update
v2.0.2- Changed
search_documentation1 field changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum results per page. Default: 20"New value: +"Maximum compact results per page. Default: 8, maximum: 10"
4 tool updates
v1.20.0- Removed
check_project_rules - Changed
create_or_update_rule5 fields changed- changed
Input schema / properties / alwaysApply / descriptionPrevious 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" - added
Input schema / properties / categoryAdded value: +{ + "description": "Optional category label for this document", + "type": "string" +} - added
Input schema / properties / filePatternsAdded value: +{ + "description": "Optional file globs for contextual docs. Examples: [\"**/*.test.js\"]", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / topicsAdded value: +{ + "description": "Optional topical tags to group related documents", + "items": { + "type": "string" + }, + "type": "array" +} - changed
Input schema / requiredPrevious value: -[ - "fileName", - "title", - "content", - "alwaysApply" -]New value: +[ + "fileName", + "title", + "content" +]
- Removed
get_global_rules - Changed
search_documentation1 field changed- changed
Input schema / properties / query / descriptionPrevious 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\""
13 tool updates
v1.0.0- First observed
add_docset - First observed
check_project_rules - First observed
create_or_update_rule - First observed
doc_bot - First observed
explore_api - First observed
get_document_index - First observed
get_file_docs - First observed
get_global_rules - First observed
list_docsets - First observed
read_specific_document - First observed
refresh_documentation - First observed
remove_docset - First observed
search_documentation
TDQS
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.
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.
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.
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
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
Provide your AI coding tools with token-efficient access to up-to-date technical documentation forā¦
Versioned documentation registry and semantic search for AI tools and coding assistants.
- OneLoreOAuthai.onelore
Shared project context for AI agents and teams: docs, tasks, and messages that stay current.
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to enhance their responses with relevant documentation through a semantic vector search, offering tools for managing and processing documentation efficiently.2263MIT
- AlicenseBqualityCmaintenanceProvides AI assistants with persistent memory of your project architecture, development history, and technical decisions, allowing them to give context-aware coding help without needing repeated explanations.16612MIT
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with professional coding standards, development best practices, and context-aware guidance through static documentation and AI-powered custom recommendations. Enables agents to access comprehensive development guidelines including coding rules, debugging techniques, and AI steering instructions.-
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with searchable access to documentation from 170+ curated repositories and 1000+ popular GitHub projects across 20+ categories including trading, AI/ML, DevOps, and web development.3MIT
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/afterxleep/doc-bot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server