An intelligent MCP (Model Context Protocol) server that gives AI assistants like Claude and Cursor deep understanding of your project through smart documentation management.
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
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
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
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.jsonfile with the contents above to your.cursorfolder
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
Ask your AI assistant: "What are the coding standards for this project?"
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).
doc-bot treats your project documentation as a searchable knowledge base for AI assistants.
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."
}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.
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| 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 |
- 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.
---
title: "Coding Standards"
---
Project-wide guidance and conventions---
title: "Testing Guide"
filePatterns: ["*.test.js", "*.spec.ts"]
---
Documentation that only applies to test files---
title: "Database Schema"
keywords: ["database", "postgres", "schema", "migrations"]
---
Documentation found through search queriesdoc-bot can also search official API documentation from Docsets, giving your AI assistant access to comprehensive framework and library references.
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.)
-
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.docset -
Manage your docsets:
List all installed docsets Remove docset with ID abc123Docsets are automatically stored in
~/Developer/DocSetsby default.
- 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"] } } }
- 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, methods - Performance: Parallel search across multiple docsets with caching
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" |
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{
"mcpServers": {
"doc-bot": {
"command": "npx",
"args": [
"@afterxleep/doc-bot@latest",
"--docs", "./documentation",
"--docsets", "/Library/Application Support/Dash/DocSets",
"--verbose",
"--watch"
]
}
}
}- 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
-
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
- 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
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
See our Contributing Guide for development setup and guidelines.
MIT - See LICENSE for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
We publish from the stable branch via GitHub Actions. Use the Publish to npm workflow (manual trigger) or merge to stable to release.
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