DevDocs MCP Server
A Model Context Protocol (MCP) server that provides access to the extensive DevDocs.io API documentation library. Access 600+ documentation sets including Python, JavaScript, React, Django, PostgreSQL, and many more directly through Claude Desktop or any MCP-compatible client.
Features
- List Documentation Sets: Browse all 600+ available documentation libraries
- Search Within Docs: Search for specific topics within a documentation set
- Global Search: Search across multiple documentation sets simultaneously
- Fetch Content: Retrieve full HTML documentation content
- Browse Index: View complete table of contents for any documentation
- Smart Caching: Automatic caching for improved performance
- Type Safety: Built with TypeScript for reliability
Available Documentation
DevDocs.io aggregates documentation from numerous sources including:
- Languages: Python, JavaScript, TypeScript, Rust, Go, C++, Ruby, PHP, Java, Kotlin, Swift, and 30+ more
- Frameworks: React, Vue, Angular, Django, Flask, Laravel, Rails, Express, Next.js, and many more
- Libraries: NumPy, pandas, PyTorch, TensorFlow, D3.js, Lodash, jQuery
- Tools: Docker, Kubernetes, Git, webpack, npm, CMake
- Databases: PostgreSQL, MySQL, SQLite, Redis, MongoDB
- Web APIs: DOM, HTML, CSS, HTTP, Web APIs from MDN
Installation
Prerequisites
- Node.js 18 or higher
- npm or yarn
Setup
- Clone or download this repository:
git clone <repository-url>
cd apidocs
- Install dependencies:
npm install
- Build the project:
npm run build
Configure Claude Desktop
Add this server to your Claude Desktop configuration file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"devdocs": {
"command": "node",
"args": ["/absolute/path/to/apidocs/build/index.js"]
}
}
}
Replace /absolute/path/to/apidocs with the actual path to your installation.
Tools
The server provides five powerful tools:
1. list_docs
List all available documentation sets with optional filtering.
Parameters:
filter(optional): String to filter documentation by name
Example:
{
"filter": "python"
}
Returns: Array of documentation metadata including name, slug, version, links, and size.
2. search_doc
Search within a specific documentation set.
Parameters:
doc_slug(required): Documentation slug (e.g., "javascript", "python~3.12", "react")query(required): Search query string
Example:
{
"doc_slug": "javascript",
"query": "array map"
}
Returns: Array of matching entries with name, path, type, and full URL (limited to 20 results).
3. search_all_docs
Search across multiple documentation sets simultaneously.
Parameters:
query(required): Search query stringdoc_slugs(optional): Array of specific documentation slugs to search
Example:
{
"query": "authentication",
"doc_slugs": ["django~5.1", "flask~3.1", "express"]
}
Returns: Combined search results from multiple docs (limited to 50 results).
4. get_doc_content
Fetch the full HTML content for a specific documentation entry.
Parameters:
doc_slug(required): Documentation slugpath(required): Entry path (from search results)
Example:
{
"doc_slug": "javascript",
"path": "global_objects/array/map"
}
Returns: Full HTML content of the documentation entry.
5. get_doc_index
Get the complete index/table of contents for a documentation set.
Parameters:
doc_slug(required): Documentation slug
Example:
{
"doc_slug": "react"
}
Returns: Complete index with entry names, paths, and types (first 100 entries shown).
Usage Examples
Finding Python Documentation
-
List Python docs:
- Tool:
list_docs - Filter:
"python"
- Tool:
-
Search for "list comprehension":
- Tool:
search_doc - doc_slug:
"python~3.12" - query:
"list comprehension"
- Tool:
-
Get the content:
- Tool:
get_doc_content - doc_slug:
"python~3.12" - path: (from search results)
- Tool:
Cross-Framework Search
Search for "routing" across web frameworks:
- Tool:
search_all_docs - query:
"routing" - doc_slugs:
["express", "django~5.1", "flask~3.1", "rails~7.2"]
Development
Watch Mode
For development with auto-rebuild:
npm run watch
Project Structure
apidocs/
├── src/
│ └── index.ts # Main MCP server implementation
├── build/ # Compiled JavaScript (generated)
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
How It Works
- Data Source: Fetches data from DevDocs.io public endpoints
- Caching: Implements 1-hour cache to reduce API calls and improve performance
- Index Format: DevDocs uses compact arrays
[name, path, type]for efficient storage - Content Delivery: HTML partials are served for each documentation entry
API Endpoints Used
https://devdocs.io/docs.json- List of all documentation setshttps://documents.devdocs.io/{slug}/index.json- Index for specific documentationhttps://documents.devdocs.io/{slug}/{path}.html- Content for specific entry
Troubleshooting
Server Not Showing Up in Claude Desktop
- Verify the path in
claude_desktop_config.jsonis absolute - Ensure you ran
npm run build - Restart Claude Desktop completely
- Check Claude Desktop logs for errors
Search Returns No Results
- Verify the doc_slug is correct using
list_docs - Check that the documentation includes the term you're searching for
- Try a broader search query
Performance Issues
- The server caches all requests for 1 hour
- First requests may be slower as data is fetched
- Subsequent requests will be much faster
Credits and Attribution
This MCP server was built by analyzing and integrating with the DevDocs.io platform. Special thanks to:
Core Infrastructure
- DevDocs.io - The amazing documentation aggregation platform that makes this possible
- freeCodeCamp - Maintainers of the DevDocs open-source project
- Model Context Protocol SDK - Framework for building MCP servers
Documentation and Research
- documents.devdocs.io - API endpoint for accessing documentation content
- SitePoint - Analysis and overview of DevDocs architecture
- GitHub Docs - API documentation and best practices
Technology Stack
- TypeScript - Type-safe development
- Node.js - Runtime environment
- node-fetch - HTTP client library
All documentation content is copyright of their respective owners and provided through DevDocs.io's public API.
For detailed attribution, see CREDITS.md.
License
MIT - See LICENSE for details.
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Resources
- DevDocs.io - Main documentation site
- DevDocs GitHub - Source code
- MCP Documentation - Learn about MCP
- Claude Desktop - Download Claude Desktop