ClaudeHopper

Integrates with
RAG, Vector Search, Visual Search

πŸ—οΈ ClaudeHopper - AI-Powered Construction Document Assistant

Node.js 18+ License: MIT

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
  • Claude Desktop App
  • For image extraction: Poppler Utils (pdfimages command)

One-Click Setup

  1. Download ClaudeHopper
  2. 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:

  1. Document Analysis: PDF documents are analyzed for structure and content type
  2. Metadata Extraction: AI-assisted extraction of project information, drawing types, disciplines
  3. Content Chunking: Intelligent splitting of documents to maintain context
  4. Image Extraction: Identification and extraction of drawing images from PDFs
  5. Vector Embedding: Creation of semantic representations for text and images
  6. 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 documents
  • all_chunks_search: Search across the entire document collection
  • image_search: Find drawings based on visual similarity to textual descriptions

Examples of using the image search feature can be found in the image_search_examples.md file.

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.