ClaudeHopper
ClaudeHopper is a Model Context Protocol server specialized in interacting with construction documents using advanced search techniques. It enables users to efficiently search and analyze construction drawings, specifications, and related documents.
🏗️ ClaudeHopper - AI-Powered Construction Document Assistant
ClaudeHopper is a specialized Model Context Protocol (MCP) server that enables Claude and other LLMs to interact directly with construction documents, drawings, and specifications through advanced RAG (Retrieval-Augmented Generation) and hybrid search. Ask questions about your construction drawings, locate specific details, and analyze technical specifications with ease.
✨ Features
- 🔍 Vector-based search for construction document retrieval optimized for CAD drawings, plans, and specs
- 🖼️ Visual search to find similar drawings based on textual descriptions
- 🏢 Specialized metadata extraction for construction industry document formats
- 📊 Efficient token usage through intelligent document chunking and categorization
- 🔒 Security through local document storage and processing
- 📈 Support for various drawing types and construction disciplines (Structural, Civil, Architectural, etc.)
🚀 Quick Start
Prerequisites
- Node.js 18+
- Ollama for local AI models
- Required models:
nomic-embed-text
,phi4
,clip
- Required models:
- Claude Desktop App
- For image extraction: Poppler Utils (
pdfimages
command)
One-Click Setup
- Download ClaudeHopper
- Run the setup script:
cd ~/Desktop/claudehopper
chmod +x run_now_preserve.sh
./run_now_preserve.sh
This will:
- Create the necessary directory structure
- Install required AI models
- Process your construction documents
- Configure the Claude Desktop App to use ClaudeHopper
Adding Documents
Place your construction documents in these folders:
- Drawings:
~/Desktop/PDFdrawings-MCP/InputDocs/Drawings/
- Specifications:
~/Desktop/PDFdrawings-MCP/InputDocs/TextDocs/
After adding documents, run:
./process_pdfdrawings.sh
🏗️ Using ClaudeHopper with Claude
Try these example questions in the Claude Desktop App:
"What architectural drawings do we have for the project?"
"Show me the structural details for the foundation system"
"Find drawings that show a concrete foundation with dimensions"
"Search for lift station layout drawings"
"What are the specifications for interior paint?"
"Find all sections discussing fire protection systems"
🛠️ Technical Architecture
ClaudeHopper uses a multi-stage pipeline for processing construction documents:
- Document Analysis: PDF documents are analyzed for structure and content type
- Metadata Extraction: AI-assisted extraction of project information, drawing types, disciplines
- Content Chunking: Intelligent splitting of documents to maintain context
- Image Extraction: Identification and extraction of drawing images from PDFs
- Vector Embedding: Creation of semantic representations for text and images
- Database Storage: Local LanceDB storage for vector search capabilities
👀 Testing the Image Search
To test the image search functionality, you can use the provided test script:
# Make the test script executable
chmod +x test_image_search.sh
# Run the test script
./test_image_search.sh
This will:
- Build the application
- Check for required dependencies (like
pdfimages
) - Seed the database with images from your drawings directory
- Run a series of test queries against the image search
You can also run individual test commands:
# Run the test with the default database location
npm run test:image:verbose
# Run the test with a specific database location
node tools/test_image_search.js /path/to/your/database
📝 Available Search Tools
ClaudeHopper provides several specialized search capabilities:
catalog_search
: Find documents by project, discipline, drawing type, etc.chunks_search
: Locate specific content within documentsall_chunks_search
: Search across the entire document collectionimage_search
: Find drawings based on visual similarity to textual descriptions
Examples of using the image search feature can be found in the file.
📜 License
This project is licensed under the MIT License - see the file for details.