A server for developers to access updated documentation of their favorite libraries.
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.
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
# 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
For detailed installation instructions, see the Installation Guide.
Navigate to http://localhost:3000
in your browser to access the web interface.
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
).
The Documentation MCP Server follows the Model-Controller-Presenter (MCP) pattern:
src/services/
)src/controllers/
)public/
)The server can be configured by editing the .env
file or setting environment variables.
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.
To add a new library to the documentation server:
src/libraries/
following the pattern of existing librariesExample 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
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.