Documentation MCP Server
by SubaashNair
This MCP server provides a unified interface for accessing documentation from various libraries. It aggregates documentation from multiple sources, allows for search across all libraries, and ensures developers have access to the most up-to-date information.
Last updated: N/A
Documentation MCP Server
Status
License
Version
Node Version
A server for developers to access updated documentation of their favorite libraries.
Overview
This MCP (Model-Controller-Presenter) server provides a unified interface for accessing documentation from various libraries. It aggregates documentation from multiple sources, allows for search across all libraries, and ensures developers have access to the most up-to-date information.
<div align="center"> <img src="https://via.placeholder.com/800x400?text=Documentation+MCP+Server+Screenshot" alt="Documentation MCP Server Screenshot"> </div>Features
- Documentation Aggregation: Collects documentation from various library sources
- Search Functionality: Search across all libraries or filter by specific libraries
- Version Management: Access documentation for different versions of libraries
- Automatic Updates: Regular fetching of the latest documentation
- API Access: Programmatic access to documentation through an API
- Interactive UI: Web interface for browsing documentation
Quick Installation
Using Installation Script
The easiest way to get started:
# Clone the repository
git clone https://github.com/SubaashNair/documentation-mcp-server.git
cd documentation-mcp-server
# Make the installation script executable
chmod +x install.sh
# Run the installation script
./install.sh
Using Docker
# Clone the repository
git clone https://github.com/SubaashNair/documentation-mcp-server.git
cd documentation-mcp-server
# Copy and edit environment variables
cp .env.example .env
# Start with Docker Compose
docker-compose up -d
Manual Installation
For detailed installation instructions, see the Installation Guide.
Usage
Web Interface
Navigate to http://localhost:3000
in your browser to access the web interface.
API Usage
The server provides a RESTful API for programmatic access to documentation.
Example: Search for documentation
curl -X GET "http://localhost:3000/api/search?q=useState&library=react"
Example: Get library documentation
curl -X GET "http://localhost:3000/api/libraries/react/hooks/useState"
Example: Get API status
curl -X GET "http://localhost:3000/api/status"
For full API documentation, visit /api-docs
on your server (e.g., http://localhost:3000/api-docs
).
Architecture
The Documentation MCP Server follows the Model-Controller-Presenter (MCP) pattern:
- Model: Data services for fetching and storing documentation (
src/services/
) - Controller: Request handlers for API endpoints (
src/controllers/
) - Presenter: Front-end interface and API response formatting (
public/
)
Configuration
The server can be configured by editing the .env
file or setting environment variables.
Basic Configuration
| Variable | Description | Default |
|----------|-------------|---------|
| PORT
| Port to run the server on | 3000
|
| GITHUB_TOKEN
| GitHub token for API access | - |
| DOCUMENTATION_UPDATE_SCHEDULE
| Cron schedule for updates | 0 0 * * *
(daily) |
| LIBRARIES
| Comma-separated list of libraries to fetch | react,vue,angular
|
For complete configuration options, see the Installation Guide.
Adding New Libraries
To add a new library to the documentation server:
- Create a new file in
src/libraries/
following the pattern of existing libraries - Implement the required interfaces for fetching and parsing the documentation
- Add the library to the configuration
Example implementation:
// src/libraries/your-library.js
const fetchYourLibraryDocumentation = async (version) => {
// Implementation for fetching documentation
// ...
};
module.exports = {
fetchDocumentation: fetchYourLibraryDocumentation
};
Then add it to your .env
file:
LIBRARIES=react,vue,angular,your-library
Documentation
- Installation Guide - Detailed setup instructions
- API Documentation - OpenAPI documentation (on running server)
- Contributing Guidelines - How to contribute to the project
Roadmap
- [ ] Add support for more libraries (TypeScript, Node.js, etc.)
- [ ] Implement user accounts and favorites
- [ ] Add offline documentation support
- [ ] Create a CLI tool for accessing documentation
- [ ] Implement community contributions for documentation
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Documentation and API design inspired by DevDocs
- Architecture patterns from Express.js
- Search functionality powered by Lunr.js