documentation-mcp-server

このプロジェクトは、JavaScriptを使用してドキュメントを管理するためのサーバーを提供します。ユーザーは簡単にドキュメントを作成、更新、削除でき、APIを通じて他のアプリケーションと統合することが可能です。また、セキュリティ機能も強化されており、安全にデータを扱うことができます。

GitHubスター

2

ユーザー評価

未評価

お気に入り

0

閲覧数

20

フォーク

1

イシュー

0

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

Documentation MCP Server Screenshot
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.

Web Interface Demo
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/)
MCP Architecture Diagram
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:

  1. Create a new file in src/libraries/ following the pattern of existing libraries
  2. Implement the required interfaces for fetching and parsing the documentation
  3. 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
  • 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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