Lightning-fast semantic code search and indexing with DuckDB vector operations
Project description
Turboprop 🚀
AI-powered semantic code search for developers
Find code by describing what it does, not just what it's called. Perfect for exploring unfamiliar codebases, debugging, and AI-assisted development with Claude Code.
Quickstart
With Claude Code (Recommended)
Option 1: Default stdio transport (recommended for local development)
{
"mcpServers": {
"turboprop": {
"command": "uvx",
"args": ["turboprop@latest", "mcp", "--repository", ".", "--auto-index"],
"env": {}
}
}
}
Option 2: HTTP transport (for server deployments)
{
"mcpServers": {
"turboprop": {
"command": "uvx",
"args": ["turboprop@latest", "mcp", "--transport", "http", "--host", "0.0.0.0", "--port", "8080", "--repository", "."],
"env": {}
}
}
}
Then use natural language with Claude:
- "Use turboprop to find JWT authentication code"
- "Search for error handling middleware patterns"
- "Find React components that handle forms"
Standalone CLI
# Install and index your codebase
uvx turboprop index .
# Search with natural language
uvx turboprop search "JWT authentication middleware"
uvx turboprop search "database connection setup"
uvx turboprop search "error handling patterns"
Standalone HTTP Server
# Start HTTP server with all MCP tools exposed as REST API
uvx turboprop@latest server
# Custom host and port
uvx turboprop@latest server --host 0.0.0.0 --port 9000
# Index specific repository
uvx turboprop@latest server --repository /path/to/repo
# Server with custom settings
uvx turboprop@latest server --repository . --max-mb 2.0 --no-auto-index
The HTTP server exposes all MCP functionality via REST endpoints at /mcp/*.
Visit http://localhost:8080/docs for interactive API documentation.
Features
🧠 Semantic Code Search
Find code by describing what it does, not just keywords:
- "JWT token validation" finds auth code across languages
- "form validation logic" discovers input handling
- "database connection setup" locates data layer code
🔍 Hybrid Search Modes
- AUTO - Automatically picks the best search strategy
- HYBRID - Combines semantic understanding with exact text matching
- SEMANTIC - Pure conceptual search for similar functionality
- TEXT - Fast exact text matching
📊 Rich Results
Every search result includes:
- Confidence scores (0.0-1.0) showing match quality
- Language detection and file types
- Code context with syntax highlighting
- Match explanations - why each result was selected
- IDE navigation links for VS Code, PyCharm, etc.
Usage
MCP Tools (with Claude Code)
Core Search & Indexing:
index_repository- Build searchable index from your codebaseindex_repository_structured- Advanced indexing with detailed JSON responsesearch_code- Perform semantic search with natural languagesearch_code_structured- Advanced search with rich JSON metadatasearch_code_hybrid- Configurable hybrid semantic + keyword search
Index Management:
get_index_status- Check index health and file countsget_index_status_structured- Comprehensive index status with JSON metadatacheck_index_freshness_tool- Validate index currency and freshnesswatch_repository- Auto-update index when files changelist_indexed_files- Browse all files in the search index
Construct-Level Search:
search_functions- Find functions and methods by purposesearch_classes- Discover classes by functionality (with optional method inclusion)search_imports- Locate imports and dependencies semanticallysearch_hybrid_constructs- Multi-granularity construct search with configurable weights
AI Tool Discovery:
search_mcp_tools- Find tools using natural language queries with category filteringget_tool_details- Deep dive into any tool's capabilities with comprehensive metadatalist_tool_categories- Overview of available tool categories and contentssearch_tools_by_capability- Search tools by specific technical capabilities
Tool Analysis & Planning:
recommend_tools_for_task- Get intelligent tool recommendations with explanationsanalyze_task_requirements- Understand task complexity and technical needssuggest_tool_alternatives- Explore alternative tools for your primary choicerecommend_tool_sequence- Plan optimal multi-step development workflows
Tool Comparison & Analysis:
compare_mcp_tools- Compare multiple tools across various dimensionsfind_tool_alternatives- Discover similar tools with similarity analysisanalyze_tool_relationships- Analyze relationships between tools and ecosystems
Tool Browsing:
browse_tools_by_category- Explore tools within specific functional categoriesget_category_overview- High-level view of the entire tool ecosystemget_tool_selection_guidance- Structured decision support for optimal tool choice
Quick Commands (Slash Commands):
/search <query>- Fast semantic search (3 results)/index_current- Reindex current repository/status- Show index status/files [limit]- List indexed files/search_by_type <type> <query>- Search specific file types/help_commands- Show available commands
CLI Commands
# Index management
turboprop index . # Index current directory
turboprop index ~/project --max-mb 2 # Index with larger file limit
# Search
turboprop search "query" --mode auto # Smart search (recommended)
turboprop search "query" --mode hybrid --explain # Show match reasoning
turboprop search "query" --k 10 # Get 10 results
# Live updates
turboprop watch . # Monitor for file changes
# HTTP Server
turboprop server # Start HTTP server on localhost:8080
turboprop server --host 0.0.0.0 --port 9000 # Custom host and port
turboprop server --repository /path # Serve specific repository
# MCP Server (for Claude Code integration)
turboprop mcp --repository . # Start MCP server for current directory (stdio)
turboprop mcp --transport http --host 0.0.0.0 --port 8080 # HTTP transport
turboprop mcp --transport sse --port 9000 # SSE transport
Search Query Tips
Be descriptive and specific:
- ✅ "JWT token validation middleware"
- ❌ "auth"
Ask conceptual questions:
- ✅ "how to handle database connection errors"
- ❌ "try catch db"
Combine multiple concepts:
- ✅ "React form validation with custom hooks"
- ❌ "react forms"
Example queries:
- "JWT token validation and refresh logic"
- "REST API error handling patterns"
- "React component state management"
- "database query optimization"
- "OAuth2 authorization flow implementation"
HTTP API Usage
The HTTP server exposes all MCP tools as REST API endpoints, making Turboprop accessible from any programming language or system.
Key Endpoints
Core Search & Indexing:
POST /mcp/search_code- Semantic code searchPOST /mcp/search_code_structured- Advanced search with JSON metadataPOST /mcp/search_code_hybrid- Hybrid semantic + keyword searchPOST /mcp/index_repository- Build searchable code indexGET /mcp/index_status- Check index health
Construct-Level Search:
POST /mcp/search_functions- Find functions by purposePOST /mcp/search_classes- Discover classes by functionalityPOST /mcp/search_imports- Search import statements
Tool Discovery & Management:
POST /mcp/search_mcp_tools- Find tools using natural languagePOST /mcp/get_tool_details- Get detailed tool informationPOST /mcp/recommend_tools_for_task- Get intelligent tool recommendations
Example API Usage
# Start the server
uvx turboprop@latest server
# Search for authentication code
curl -X POST "http://localhost:8080/mcp/search_code" \
-H "Content-Type: application/json" \
-d '{"query": "JWT authentication middleware", "max_results": 5}'
# Get index status
curl "http://localhost:8080/mcp/index_status"
# Search for specific functions
curl -X POST "http://localhost:8080/mcp/search_functions" \
-H "Content-Type: application/json" \
-d '{"query": "password validation", "max_results": 3}'
Interactive API Documentation: Visit http://localhost:8080/docs for full OpenAPI documentation with request/response schemas and a testing interface.
MCP Transport Options
Turboprop's MCP server supports multiple transport methods for different use cases:
stdio (Default)
- Best for: Claude Desktop, local development, command-line tools
- Usage:
uvx turboprop@latest mcp --repository . - Characteristics: Process-to-process communication via stdin/stdout
HTTP Transport
- Best for: Web applications, microservices, server deployments
- Usage:
uvx turboprop@latest mcp --transport http --host 0.0.0.0 --port 8080 - Characteristics: RESTful HTTP endpoints, easy integration with web services
- Access: Direct HTTP requests to MCP endpoints
SSE (Server-Sent Events)
- Best for: Streaming web applications, real-time updates
- Usage:
uvx turboprop@latest mcp --transport sse --host 127.0.0.1 --port 9000 - Characteristics: Persistent streaming connection, server push capabilities
Choose the transport that best fits your deployment architecture and integration needs.
Architecture & Technical Details
Storage: DuckDB with 384-dimension vector embeddings
ML Model: SentenceTransformer "all-MiniLM-L6-v2"
Search: Native vector operations with cosine similarity
Files: Indexes all Git-tracked files, respects .gitignore
Index Location: .turboprop/code_index.duckdb in each repository
For detailed technical information, see ARCHITECTURE.md.
License
MIT License - use freely in your projects!
Find code by meaning, not just by name.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file turboprop-0.3.3.tar.gz.
File metadata
- Download URL: turboprop-0.3.3.tar.gz
- Upload date:
- Size: 560.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58241c701f2abd399a7f03f879cdc89b0a4e216f592c45dcd98e4e3cdc9e2cb0
|
|
| MD5 |
8b69058c798105a2f465de4f6cd392d9
|
|
| BLAKE2b-256 |
4b759a0df7619926c85354591b2831d302717decc408f1f4b85a9dc71d73d45a
|
File details
Details for the file turboprop-0.3.3-py3-none-any.whl.
File metadata
- Download URL: turboprop-0.3.3-py3-none-any.whl
- Upload date:
- Size: 469.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60f5ea57f300ca51d743eb303056d3340d07f63792592739c1f6ad383d173a10
|
|
| MD5 |
271f83e1cadfea9c38e546c03cebb780
|
|
| BLAKE2b-256 |
e36730e794eb050878691486bd27ebe6331af63d2ddf6752ee7115434fe7cab9
|