Skip to main content
Glama
muhammedehab35

CHECK-MODULE MCP Server

README.md
# CHECK-MODULE MCP Server

> A powerful Model Context Protocol (MCP) server for managing internal documentation and fetching official library documentation from the web.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue)](https://www.typescriptlang.org/)
[![Node](https://img.shields.io/badge/Node-18+-green)](https://nodejs.org/)
[![MCP](https://img.shields.io/badge/MCP-1.26-purple)](https://modelcontextprotocol.io)

## šŸŽ„ Demo

https://github.com/user-attachments/assets/aec8d362-4ac3-477f-84db-fc304cd7e927

> Watch CHECK-MODULE in action: fetching documentation, searching internal docs, and managing custom documentation with Claude Desktop.

## šŸŽÆ Features

- **šŸ“š Internal Documentation Management** - Store, search, and manage your custom documentation
- **🌐 Web Documentation Fetching** - Automatically fetch official documentation from 13+ popular libraries
- **šŸ” Smart Search** - Relevance-based search with category and tag filtering
- **šŸ“ Markdown Support** - Full Markdown formatting for documentation
- **šŸ”§ MCP Tools** - 6 powerful tools exposed via Model Context Protocol
- **šŸ“¦ Resources** - URI-based access to documentation (`doc://internal/*`)

## šŸ“¦ Installation

```bash
# Clone the repository
git clone https://github.com/muhammedehab35/CHECK-MODULE-MCP.git
cd CHECK-MODULE-MCP

# Install dependencies
npm install

# Build the project
npm run build
```

## āš™ļø Configuration

Add to your Claude Desktop config file (`claude_desktop_config.json`):

**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
**macOS/Linux:** `~/.claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "CHECK-MODULE": {
      "command": "node",
      "args": [
        "/absolute/path/to/CHECK-MODULE-MCP/dist/index.js"
      ]
    }
  }
}
```

Then restart Claude Desktop completely.

## šŸš€ Usage

### Internal Documentation Tools

#### `search-docs` - Search your internal documentation
```
Search for "authentication" in the documentation
```

#### `get-doc` - Get a complete document by ID
```
Show me the Authentication API guide
```

#### `list-categories` - List all documentation categories
```
What documentation categories are available?
```

#### `add-doc` - Add or update documentation
```
Add documentation about Redis caching with ID "redis-cache"
```

### Web Documentation Fetching

#### `fetch-library-docs` - Fetch official documentation from the web
```
Use CHECK-MODULE to fetch LangGraph documentation about creating agents
```

#### `list-available-libraries` - Show supported libraries
```
What libraries can CHECK-MODULE fetch documentation for?
```

## šŸ“š Supported Libraries

CHECK-MODULE can automatically fetch documentation for:

- **AI/ML:** LangGraph, LangChain, PyTorch, TensorFlow, CrewAI
- **Web Frameworks:** React, Next.js, Vue, Express, FastAPI, Django
- **Data Science:** Pandas, NumPy

## šŸ› ļø Available Tools

| Tool | Description |
|------|-------------|
| `search-docs` | Search internal documentation with filters |
| `get-doc` | Retrieve full document by ID |
| `list-categories` | List all documentation categories |
| `add-doc` | Add or update documentation |
| `fetch-library-docs` | Fetch official docs from the web |
| `list-available-libraries` | Show supported libraries |

## šŸ—ļø Project Structure

```
CHECK-MODULE-MCP/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts          # Main MCP server
│   ā”œā”€ā”€ docStore.ts       # Documentation storage
│   ā”œā”€ā”€ webFetcher.ts     # Web documentation fetcher
│   └── types.ts          # TypeScript type definitions
ā”œā”€ā”€ dist/                 # Compiled JavaScript (generated)
ā”œā”€ā”€ package.json          # Project configuration
ā”œā”€ā”€ tsconfig.json         # TypeScript configuration
└── README.md             # This file
```

## šŸ”§ Development

```bash
# Install dependencies
npm install

# Build
npm run build

# Watch mode (auto-rebuild)
npm run watch

# Run manually (for testing)
npm start
```

## šŸ“– Examples

### Example 1: Search Internal Docs
```
User: Search for "deployment" in DevOps category
Claude: [Uses search-docs tool]
Found 1 result: Deployment Guide with Docker/Kubernetes instructions
```

### Example 2: Fetch Web Documentation
```
User: How do I create an agent in LangGraph?
Claude: [Uses fetch-library-docs tool]
Fetches from https://langchain-ai.github.io/langgraph/
Returns: Step-by-step guide with code examples
```

### Example 3: Add Custom Documentation
```
User: Add docs about our Redis caching strategy
Claude: [Uses add-doc tool]
Documentation stored with ID "redis-cache"
```

## šŸŽØ Customization

### Adding More Libraries

Edit `src/webFetcher.ts` to add custom documentation sources:

```typescript
const DOC_SOURCES: Record<string, string> = {
  'your-library': 'https://docs.your-library.com/',
  // ... existing libraries
};
```

Then rebuild: `npm run build`

### Pre-loading Documentation

Edit `src/docStore.ts` in the `initializeSampleDocs()` method to add your initial documentation.

## šŸ› Troubleshooting

### Server not starting
```bash
# Test the build
npm run build

# Run directly
node dist/index.js
# Should output: "CHECK-MODULE MCP Server running on stdio"
```

### Claude doesn't see the tools
1. Check that the path in `claude_desktop_config.json` is absolute
2. Restart Claude Desktop completely
3. Check developer console (`Ctrl+Shift+I`) for errors

### Web fetching not working
- Ensure you have internet connection
- Check if the library is in the supported list
- The library name must match exactly (case-insensitive)

## šŸ“ Pre-loaded Documentation

The server comes with 3 example documents:

1. **Authentication API** (`api-auth`) - JWT authentication guide
2. **Database Schema** (`db-schema`) - PostgreSQL schema reference
3. **Deployment Guide** (`deploy-guide`) - Docker/Kubernetes deployment

## šŸ”® Roadmap

- [ ] Add more library documentation sources
- [ ] Implement persistent storage (SQLite/PostgreSQL)
- [ ] Add version history tracking
- [ ] Support for custom authentication
- [ ] REST API for external management
- [ ] Import from Markdown files
- [ ] Export documentation to various formats

## šŸ¤ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the project
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## šŸ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## šŸ™ Acknowledgments

- Built with [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk)
- Inspired by [Context7](https://context7.com)
- Uses [Zod](https://zod.dev) for schema validation

## šŸ“ž Support

- **Issues:** [GitHub Issues](https://github.com/muhammedehab35/CHECK-MODULE-MCP/issues)
- **Documentation:** [MCP Documentation](https://modelcontextprotocol.io)

---

**Made with ā¤ļø using TypeScript and MCP**

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: adding/updating docs, fetching external docs, retrieving by ID, listing libraries, listing categories, and searching. No overlap.

Naming Consistency5/5

All tool names follow a consistent lowercase-hyphenated verb-noun pattern (e.g., add-doc, fetch-library-docs, list-available-libraries).

Tool Count5/5

With 6 tools covering creation, retrieval, listing, searching, and external fetching, the set is well-scoped for a documentation server.

Completeness4/5

The tools cover core CRUD operations (add, get, search, list) and add external fetching, but lack an explicit delete or separate update tool (though add-doc covers both add and update).

Maintenance

ActivityInactive
ResponsivenessNo issues