trackmcp
Back to directory

SACL (Semantic-Augmented Code Localization) - A bias-aware code retrieval framework with MCP server integration for AI assistants

0 stars TypeScriptOthers Updated Jun 29, 2025

Documentation

SACL MCP Server

Semantic-Augmented Reranking and Localization for Code Retrieval

A Model Context Protocol (MCP) server that implements the SACL research framework to provide bias-aware code retrieval for AI coding assistants like Claude Code, Cursor, and other MCP-enabled tools.

๐ŸŽฏ Overview

SACL addresses the critical problem of textual bias in code retrieval systems. Traditional systems over-rely on surface-level features like docstrings, comments, and variable names, leading to biased results that favor well-documented code regardless of functional relevance.

Key Features

  • ๐Ÿง  Bias Detection: Identifies over-reliance on textual features
  • ๐Ÿ” Semantic Augmentation: Enriches code understanding beyond surface text
  • ๐Ÿ“Š Intelligent Reranking: Prioritizes functional relevance over documentation
  • ๐ŸŽฏ Code Localization: Pinpoints functionally relevant code segments
  • ๐Ÿ”— Relationship Analysis: Maps code dependencies and relationships
  • ๐ŸŽจ Context-Aware Retrieval: Returns results with related components
  • ๐Ÿš€ Agent-Controlled Updates: Explicit file updates for Docker compatibility
  • ๐Ÿ—„๏ธ Knowledge Graph: Persistent semantic storage with Graphiti/Neo4j
  • ๐Ÿ”ง MCP Integration: Works with Claude Code, Cursor, and other AI tools

๐Ÿ—๏ธ Architecture

code
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   AI Assistant  โ”‚โ”€โ”€โ”€โ”€โ”‚  SACL MCP Server โ”‚โ”€โ”€โ”€โ”€โ”‚   Graphiti/Neo4j โ”‚
โ”‚ (Claude, Cursor)โ”‚    โ”‚                 โ”‚    โ”‚  Knowledge Graph โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚  SACL Framework โ”‚
                    โ”‚                 โ”‚
                    โ”‚ โ€ข Bias Detectionโ”‚
                    โ”‚ โ€ข Semantic Aug. โ”‚
                    โ”‚ โ€ข Reranking     โ”‚
                    โ”‚ โ€ข Localization  โ”‚
                    โ”‚ โ€ข Relationships โ”‚
                    โ”‚ โ€ข Context-Aware โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+
  • Neo4j database
  • OpenAI API key

Installation

bash
# Clone the repository
git clone 
cd sacl

# Install dependencies
npm install

# Copy environment configuration
cp .env.example .env

# Edit .env with your settings
OPENAI_API_KEY=your_key_here
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password
bash
# Start Neo4j and SACL server
docker-compose up -d

# Check logs
docker-compose logs -f sacl-mcp-server

Manual Setup

bash
# Build the project
npm run build

# Start the server
npm start

๐Ÿ”ง Configuration

Environment Variables

VariableDescriptionDefault
`OPENAI_API_KEY`OpenAI API key (required)-
`SACL_REPO_PATH`Repository to analyzeCurrent directory
`SACL_NAMESPACE`Unique namespaceAuto-generated
`SACL_LLM_MODEL`LLM model for analysis`gpt-4`
`SACL_EMBEDDING_MODEL`Embedding model`text-embedding-3-small`
`SACL_BIAS_THRESHOLD`Bias detection sensitivity (0-1)`0.5`
`SACL_MAX_RESULTS`Maximum search results`10`
`SACL_CACHE_ENABLED`Enable embedding cache`true`
`NEO4J_URI`Neo4j connection URI`bolt://localhost:7687`
`NEO4J_USER`Neo4j username`neo4j`
`NEO4J_PASSWORD`Neo4j password`password`

๐ŸŽฎ Usage

MCP Tools

The SACL server provides comprehensive MCP tools for bias-aware code analysis:

1. `analyze_repository`

Performs full SACL analysis of a repository:

json
{
  "repositoryPath": "/path/to/repo",
  "incremental": false
}

2. `query_code`

Bias-aware code search with optional context:

json
{
  "query": "function that sorts arrays efficiently",
  "repositoryPath": "/path/to/repo",
  "maxResults": 10,
  "includeContext": false  // Set true for relationship context
}

3. `query_code_with_context` ๐Ÿ†•

Enhanced search with relationship context and related components:

json
{
  "query": "authentication middleware",
  "repositoryPath": "/path/to/repo",
  "maxResults": 10,
  "includeRelated": true
}

4. `update_file` ๐Ÿ†•

Explicitly update single file analysis when changes are made:

json
{
  "filePath": "src/services/auth.js",
  "changeType": "modified"  // "created", "modified", or "deleted"
}

5. `update_files` ๐Ÿ†•

Batch update multiple files:

json
{
  "files": [
    { "filePath": "src/index.js", "changeType": "modified" },
    { "filePath": "src/utils/new.js", "changeType": "created" }
  ]
}

6. `get_relationships` ๐Ÿ†•

Analyze code relationships and dependencies:

json
{
  "filePath": "src/controllers/UserController.js",
  "maxDepth": 3,
  "relationshipTypes": ["imports", "calls", "extends"]  // Optional filter
}

7. `get_file_context` ๐Ÿ†•

Get comprehensive context for a file:

json
{
  "filePath": "src/models/User.js",
  "includeSnippets": true  // Include code previews
}

8. `get_bias_analysis`

Detailed bias metrics and debugging:

json
{
  "filePath": "src/utils/sort.js"  // Optional
}

9. `get_system_stats`

System performance and statistics:

json
{}

MCP Client Configuration

Claude Desktop

Add to your `claude_desktop_config.json`:

json
{
  "mcpServers": {
    "sacl": {
      "command": "node",
      "args": ["/path/to/sacl/dist/index.js"],
      "env": {
        "OPENAI_API_KEY": "your-key",
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "password"
      }
    }
  }
}

Cursor IDE

Configure in your Cursor settings to connect to the SACL MCP server.

๐Ÿ“Š SACL Framework

Stage 1: Bias Detection

Identifies three types of textual bias:

  • Docstring Dependency: Over-reliance on documentation
  • Identifier Name Bias: Focusing on variable/function names
  • Comment Over-reliance: Prioritizing commented code

Stage 2: Semantic Augmentation

Enriches code representations with:

  • Functional Signatures: What the code actually does
  • Behavior Patterns: Computational patterns (iteration, recursion, etc.)
  • Structural Features: Complexity metrics, AST analysis
  • Augmented Embeddings: Bias-adjusted semantic vectors

Stage 3: Reranking & Localization

  • Bias-Aware Ranking: Reduces textual weight based on bias score
  • Code Localization: Identifies functionally relevant segments
  • Semantic Similarity: Uses augmented embeddings
  • Functional Relevance: Considers computational patterns

Stage 4: Relationship Analysis ๐Ÿ†•

Maps code relationships and dependencies:

  • Import/Export Analysis: Module dependencies and exports
  • Function Call Mapping: Call graphs and method invocations
  • Class Inheritance: Extends/implements relationships
  • Dependency Tracking: External and internal dependencies
  • Context-Aware Results: Related components with each query result

๐Ÿงช Example Workflow

1. Repository Analysis:

code
AI Assistant โ†’ analyze_repository โ†’ SACL processes all files โ†’ Knowledge graph populated

2. Code Query with Context:

code
AI Assistant โ†’ query_code_with_context("authentication") โ†’ SACL retrieval โ†’ Context-aware results

3. File Updates:

code
AI modifies code โ†’ update_file("src/auth.js", "modified") โ†’ SACL re-analyzes โ†’ Relationships updated

4. Relationship Exploration:

code
AI Assistant โ†’ get_relationships("UserController.js") โ†’ Dependency graph โ†’ Related components

5. Results Include:

    ๐Ÿ“ˆ Performance

    Based on SACL research benchmarks:

    • 12.8% improvement in Recall@1 on HumanEval
    • 9.4% improvement on MBPP
    • 7.0% improvement on SWE-Bench-Lite
    • P95 latency: 10k files)
    • [ ] Real-time bias notifications during code writing
    • [ ] Custom relationship type definitions

    SACL MCP Server - Bringing research-backed bias-aware code retrieval to AI coding assistants.

    Frequently asked questions

    What is sacl?

    sacl is SACL (Semantic-Augmented Code Localization) - A bias-aware code retrieval framework with MCP server integration for AI assistants

    How do I install sacl?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is sacl open source?

    Yes โ€” it is hosted on GitHub at https://github.com/ulasbilgen/sacl.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP