Documentation MCP Server

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.
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
Roadmap
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