DocuMCP
A document management system with MCP integration, enabling Claude Desktop to upload, search, and access documents via natural language.
README
DocuMCP - Document Management System with MCP Integration
A powerful document management system that combines local file storage with vector database capabilities, accessible through both a web GUI and Claude Desktop via the Model Context Protocol (MCP).
Features
- š Document Management: Upload, store, and organize documents with a beautiful web interface
- š Vector Search: Semantic search powered by Qdrant vector database
- š¤ MCP Integration: Access documents directly from Claude Desktop
- š Authentication: Secure JWT-based authentication system
- šØ Modern GUI: Responsive web dashboard for easy document management
- š³ Docker Support: Easy deployment with Docker Compose
Quick Start
Prerequisites
- Node.js 20+
- Docker & Docker Compose (optional, for Qdrant)
- Claude Desktop (for MCP integration)
Installation
- Clone and install dependencies:
git clone <repository>
cd documcp
npm install
- Start Qdrant (using Docker):
docker run -p 6333:6333 -v ./qdrant_data:/qdrant/storage qdrant/qdrant
- Configure environment:
cp .env.example .env
# Edit .env with your settings
- Build and start the application:
npm run build
npm start
- Access the web interface: Open http://localhost:3456 in your browser
- Default login:
admin/admin123
Docker Deployment
For production deployment with Docker:
docker-compose up -d
This will start:
- Qdrant vector database on port 6333
- DocuMCP web server on port 3456
- MCP server on port 3457
Claude Desktop Integration
- Build the MCP server:
npm run build
- Add to Claude Desktop configuration:
Edit your Claude Desktop config file:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
{
"mcpServers": {
"documcp": {
"command": "node",
"args": ["/path/to/documcp/dist/mcp-server.js"],
"env": {
"QDRANT_URL": "http://localhost:6333",
"COLLECTION_NAME": "documents"
}
}
}
}
- Restart Claude Desktop
Available MCP Tools
Once configured, Claude can use these tools:
list_documents- List all documents in the systemsearch_documents- Semantic search across documentsread_document- Read specific document contentdelete_document- Remove documents from the system
Architecture
DocuMCP/
āāā Web GUI (Express + HTML/JS)
ā āāā Authentication (JWT)
ā āāā File Upload/Download
ā āāā Document Management
āāā MCP Server
ā āāā Document Access Tools
āāā Storage Layer
ā āāā Local File System (./uploads)
ā āāā Qdrant Vector DB
āāā API Layer
āāā REST API
āāā MCP Protocol
Configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
PORT |
Web server port | 3456 |
JWT_SECRET |
JWT signing secret | (required) |
ADMIN_PASSWORD |
Admin login password | admin123 |
QDRANT_URL |
Qdrant server URL | http://localhost:6333 |
COLLECTION_NAME |
Qdrant collection | documents |
UPLOAD_DIR |
File storage directory | ./uploads |
MAX_FILE_SIZE |
Max upload size (bytes) | 10485760 |
Development
# Run in development mode
npm run dev
# Run MCP server standalone
npm run mcp:dev
# Build TypeScript
npm run build
Security Notes
ā ļø Important for Production:
- Change default
JWT_SECRETandADMIN_PASSWORD - Use HTTPS in production
- Configure proper CORS settings
- Implement rate limiting
- Add file type restrictions
- Use environment-specific configs
Troubleshooting
Qdrant Connection Issues
- Ensure Qdrant is running:
docker ps - Check logs:
docker logs qdrant - Verify port 6333 is accessible
MCP Server Not Connecting
- Check Claude Desktop logs
- Verify path in config is absolute
- Ensure Node.js is in PATH
Upload Failures
- Check
MAX_FILE_SIZEsetting - Verify
uploadsdirectory permissions - Check available disk space
License
MIT
Contributing
Pull requests welcome! Please ensure:
- Code follows TypeScript best practices
- Tests pass (when implemented)
- Documentation is updated
- Security considerations addressed
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.