Architecture

System Design
How Devscriptor Works

High-performance code analysis platform built in Rust with 36 language parsers, 70 MCP tools, and 4-tier LSP detection.

Overview

System at a Glance

A modular architecture built for performance, extensibility, and universal language support.

Rust

High-performance implementation with memory safety and zero-cost abstractions

36

Programming language parsers via individual tree-sitter-* crates

70

MCP Tools total: 27 Core + 38 LSP + 5 Architecture

4-Tier

LSP Detection system with automatic language server discovery

Modules

Module Architecture

Four primary crates organized by responsibility. Each module can be used independently or together.

crates/core

Core Module

The heart of Devscriptor. Handles parsing, analysis, storage, and embeddings.

Parser36 Tree-sitter Parsers

Individual parser per language for universal code analysis

Gitignore Filterignore crate

ripgrep's engine for bulletproof file filtering

Priority ScannerEntry points first

Intelligent file prioritization for optimal processing

DatabaseSQLite + Vectors

Single-file database with HNSW vector indexing

Analysis Engine10+ Analysis Types

Dead code, complexity, clones, smells detection

EmbeddingsJina v2 Base Code

Local semantic search without API keys

crates/lsp

LSP Module

Language Server Protocol integration with 4-tier auto-detection.

4-Tier DetectionAuto-discovery

Project files → LSP configs → CLI tools → Manual fallback

Server ManagerLifecycle control

Start, stop, and monitor language servers

MCP BridgeTool exposure

38 LSP tools exposed via MCP protocol

Registry36 Languages

Pre-configured language server definitions

crates/mcp

MCP Module

Model Context Protocol server implementation with 70 total tools.

Core Tools27 Tools

Scan, search, analyze, context management

LSP Tools38 Tools

Navigation, completion, diagnostics, refactoring

Architecture Tools5 Tools

System info, configuration, health checks

Dual SDK SupportLegacy + rmcp

Both JSON-RPC and rmcp 0.5 SDK support

crates/cli

CLI Module

Command-line interface for direct codebase interaction.

scanBuild code graph

Scan directories and build the database

analyzeRun analysis

Execute analyzers and generate reports

lspLSP operations

Start servers, check status, run diagnostics

Data Flow

How Data Flows

Understanding the journey from source code to AI-accessible knowledge.

Codebase Scanning Flow

1

Directory Discovery

CLI receives path, validates existence

2

Gitignore Filtering

ignore crate filters files using ripgrep engine

3

Priority Sorting

Files sorted: entry points → core → source → tests

4

Tree-sitter Parsing

36 parsers extract AST for each language

5

Entity Extraction

Functions, classes, variables identified

6

Relationship Mapping

Calls, imports, inheritance detected

7

SQLite Storage

Code graph persisted to single database file

8

Vector Embeddings

Jina embeddings generated for semantic search

Stack

Technology Stack

Carefully chosen technologies for performance, reliability, and maintainability.

Parsing

  • Individual tree-sitter-* crates
  • 36 language parsers
  • Tree-sitter 0.25

Database

  • SQLite
  • sqlite-vec (vectors)
  • HNSW indexing

Embeddings

  • jinaai/jina-embeddings-v2-base-code
  • Local inference
  • No API keys required

Async Runtime

  • tokio
  • rayon
  • True parallelism

MCP Protocol

  • rmcp 0.5
  • JSON-RPC legacy
  • Dual SDK support

LSP Protocol

  • lsp-types 0.97
  • 36 language servers
  • 4-Tier detection
Structure

Crate Structure

Visual representation of how the crates interact and depend on each other.

MCP Clients

Claude Desktop, Cline, Continue, etc.

crates/mcp

MCP Server · 70 Tools · rmcp 0.5 SDK

crates/core

Parsing · Analysis · Storage

crates/lsp

LSP Client · 36 Languages

crates/cli

Commands · Interface

tree-sitter
SQLite
Jina Embeddings
LSP Servers