documentation-mcp-server
This project provides a server for managing documentation using JavaScript. Users can easily create, update, and delete documents, and it can be integrated with other applications through an API. Additionally, security features are enhanced, allowing for safe data handling.
GitHub Stars
2
User Rating
Not Rated
Favorites
0
Views
29
Forks
1
Issues
0
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
- 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