MCP-сервер AutoDev Codebase.
A vector embedding-based code semantic search tool with MCP server and multi-model integration. Can be used as a pure CLI tool. Supports Ollama for fully local embedding and reranking, enabling complete offline operation and privacy protection for your code repository.
# Semantic code search - Find code by meaning, not just keywords
╭─ ~/workspace/autodev-codebase
╰─❯ codebase search "user manage" --demo
Found 20 results in 5 files for: "user manage"
==================================================
File: "hello.js"
==================================================
< class UserManager > (L7-20)
class UserManager {
constructor() {
this.users = [];
}
addUser(user) {
this.users.push(user);
console.log('User added:', user.name);
}
getUsers() {
return this.users;
}
}
……
# Call graph analysis - Trace function call relationships and execution paths
╭─ ~/workspace/autodev-codebase
╰─❯ codebase call --demo --query="app,addUser"
Connections between app, addUser:
Found 2 matching node(s):
- demo/app:L1-29
- demo/hello.UserManager.addUser:L12-15
Direct connections:
- demo/app:L1-29 → demo/hello.UserManager.addUser:L12-15
Chains found:
- demo/app:L1-29 → demo/hello.UserManager.addUser:L12-15
# Code outline with AI summaries - Understand code structure at a glance
╭─ ~/workspace/autodev-codebase
╰─❯ codebase outline 'hello.js' --demo --summarize
# hello.js (23 lines)
└─ Defines a greeting function that logs a personalized hello message and returns a welcome string. Implements a UserManager class managing an array of users with methods to add users and retrieve the current user list. Exports both components for external use.
2--5 | function greetUser
└─ Implements user greeting logic by logging a personalized hello message and returning a welcome message
7--20 | class UserManager
└─ Manages user data with methods to add users to a list and retrieve all stored users
12--15 | method addUser
└─ Adds a user to the users array and logs a confirmation message with the user's name.
brew install ollama ripgrep
ollama serve
ollama pull nomic-embed-text
docker run -d -p 6333:6333 -p 6334:6334 --name qdrant qdrant/qdrant
npm install -g @autodev/codebase
codebase config --set embedderProvider=ollama,embedderModelId=nomic-embed-text
# Demo mode (recommended for first-time)
# Creates a demo directory in current working directory for testing
# Index & search
codebase index --demo
codebase search "user greet" --demo
# Call graph analysis
codebase call --demo --query="app,addUser"
# MCP server
codebase index --serve --demo
# Extract code structure (functions, classes, methods)
codebase outline "src/**/*.ts"
# Generate code structure with AI summaries
codebase outline "src/**/*.ts" --summarize
# View only file-level summaries
codebase outline "src/**/*.ts" --summarize --title
# Clear summary cache
codebase outline --clear-summarize-cache
# 📊 Statistics Overview (no --query)
codebase call # Show statistics overview
codebase call --json # JSON format
codebase call src/commands # Analyze specific directory
# 🔍 Function Query (with --query)
codebase call --query="getUser" # Single function call tree (default depth: 3)
codebase call --query="main" --depth=5 # Custom depth
codebase call --query="getUser,validateUser" # Multi-function connections (default depth: 10)
# 🎨 Visualization
codebase call --viz graph.json # Export Cytoscape.js format
codebase call --open # Open interactive viewer
codebase call --viz graph.json --open # Export and open
# Specify workspace (works for both modes)
codebase call --path=/my/project --query="main"
Query Patterns:
--query="functionName" or --query="*ClassName.methodName"* (any characters), ? (single character)
--query="get*", --query="*User*", --query="*.*.get*"--query="main" - Shows call tree (upward + downward)
--query="main,helper" - Analyzes connection paths between functions
Supported Languages:
# Index the codebase
codebase index --path=/my/project --force
# Search with filters
codebase search "error handling" --path-filters="src/**/*.ts"
# Search with custom limit and minimum score
codebase search "authentication" --limit=20 --min-score=0.7
codebase search "API" -l 30 -S 0.5
# Search in JSON format
codebase search "authentication" --json
# Clear index data
codebase index --clear-cache --path=/my/project
# HTTP mode (recommended)
codebase index --serve --port=3001 --path=/my/project
# Stdio adapter
codebase stdio --server-url=http://localhost:3001/mcp
# View config
codebase config --get
codebase config --get embedderProvider --json
# Set config
codebase config --set embedderProvider=ollama,embedderModelId=nomic-embed-text
codebase config --set --global qdrantUrl=http://localhost:6333
Enable LLM reranking to dramatically improve search relevance:
# Enable reranking with Ollama (recommended)
codebase config --set rerankerEnabled=true,rerankerProvider=ollama,rerankerOllamaModelId=qwen3-vl:4b-instruct
# Or use OpenAI-compatible providers
codebase config --set rerankerEnabled=true,rerankerProvider=openai-compatible,rerankerOpenAiCompatibleModelId=deepseek-chat
# Search with automatic reranking
codebase search "user authentication" # Results are automatically reranked by LLM
Benefits:
rerankerMinScore to keep only high-quality matches# Path filtering with brace expansion and exclusions
codebase search "API" --path-filters="src/**/*.ts,lib/**/*.js"
codebase search "utils" --path-filters="{src,test}/**/*.ts"
# Export results in JSON format for scripts
codebase search "auth" --json
# Path filtering with brace expansion and exclusions
codebase search "API" --path-filters="src/**/*.ts,lib/**/*.js"
codebase search "utils" --path-filters="{src,test}/**/*.ts"
# Export results in JSON format for scripts
codebase search "auth" --json
--path, --config, --log-level, --force, etc.)./autodev-config.json (or custom path via --config)~/.autodev-cache/autodev-config.jsonNote: CLI arguments provide runtime override for paths, logging, and operational behavior. For persistent configuration (embedderProvider, API keys, search parameters), use config --set to save to config files.
Ollama:
{
"embedderProvider": "ollama",
"embedderModelId": "nomic-embed-text",
"qdrantUrl": "http://localhost:6333"
}
OpenAI:
{
"embedderProvider": "openai",
"embedderModelId": "text-embedding-3-small",
"embedderOpenAiApiKey": "sk-your-key",
"qdrantUrl": "http://localhost:6333"
}
OpenAI-Compatible:
{
"embedderProvider": "openai-compatible",
"embedderModelId": "text-embedding-3-small",
"embedderOpenAiCompatibleApiKey": "sk-your-key",
"embedderOpenAiCompatibleBaseUrl": "https://api.openai.com/v1"
}
| Category | Options | Description |
|---|---|---|
| Embedding | embedderProvider, embedderModelId, embedderModelDimension | Provider and model settings |
| API Keys | embedderOpenAiApiKey, embedderOpenAiCompatibleApiKey | Authentication |
| Vector Store | qdrantUrl, qdrantApiKey | Qdrant connection |
| Search | vectorSearchMinScore, vectorSearchMaxResults | Search behavior |
| Reranker | rerankerEnabled, rerankerProvider | Result reranking |
| Summarizer | summarizerProvider, summarizerLanguage, summarizerBatchSize | AI summary generation |
Key CLI Arguments:
index - Index the codebasesearch <query> - Search the codebase (required positional argument)outline <pattern> - Extract code outlines (supports glob patterns)call - Analyze function call relationships and dependency graphsstdio - Start stdio adapter for MCPconfig - Manage configuration (use with --get or --set)--serve - Start MCP HTTP server (use with index command)--summarize - Generate AI summaries for code outlines--dry-run - Preview operations before execution--title - Show only file-level summaries--clear-summarize-cache - Clear all summary caches--path, --demo, --force - Common options--limit / -l <number> - Maximum number of search results (default: from config, max 50)--min-score / -S <number> - Minimum similarity score for search results (0-1, default: from config)--query <patterns> - Query patterns for call graph analysis (comma-separated)--viz <file> - Export full dependency data for visualization (cannot use with --query)--open - Open interactive graph viewer--depth <number> - Set analysis depth for call graphs--help - Show all available optionsConfiguration Commands:
# View config
codebase config --get
codebase config --get --json
# Set config (saves to file)
codebase config --set embedderProvider=ollama,embedderModelId=nomic-embed-text
codebase config --set --global embedderProvider=openai,embedderOpenAiApiKey=sk-xxx
# Use custom config file
codebase --config=/path/to/config.json config --get
codebase --config=/path/to/config.json config --set embedderProvider=ollama
# Runtime override (paths, logging, etc.)
codebase index --path=/my/project --log-level=info --force
For complete configuration reference, see CONFIG.md.
codebase index --serve --port=3001
IDE Config:
{
"mcpServers": {
"codebase": {
"url": "http://localhost:3001/mcp"
}
}
}
# First start the MCP server in one terminal
codebase index --serve --port=3001
# Then connect via stdio adapter in another terminal (for IDEs that require stdio)
codebase stdio --server-url=http://localhost:3001/mcp
IDE Config:
{
"mcpServers": {
"codebase": {
"command": "codebase",
"args": ["stdio", "--server-url=http://localhost:3001/mcp"]
}
}
}
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue on GitHub.
This project is licensed under the MIT License.
This project is a fork and derivative work based on Roo Code. We've built upon their excellent foundation to create this specialized codebase analysis tool with enhanced features and MCP server capabilities.
🌟 If you find this tool helpful, please give us a star on GitHub!
Made with ❤️ for the developer community