Skip to main content
Glama
demixid

MCP Local Codebase Search

by demixid

MCP Local Codebase Search

This project is a simple MCP (Model Context Protocol) server for local Python codebase search.

It provides tools to:

  • index Python files into a SQLite database,

  • search symbols (functions/classes),

  • find files importing specific modules,

  • read file contents.

Features

  • index_project()

    • Scans the current working directory and indexes .py files.

    • Stores symbol and dependency data in db/code_index.db.

  • find_symbol(name)

    • Searches function/class names using LIKE matching.

    • Returns symbol name, type, file path, and line number.

  • find_import(module)

    • Finds files that import a specific module.

  • read_file(path)

    • Reads and returns full file content with encoding fallback (utf8, latin-1).

Related MCP server: Context Bunker MCP

Project Structure

  • server.py: MCP server entrypoint and tool definitions.

  • indexer.py: Indexing logic to SQLite.

  • parser.py: Symbol extraction (FunctionDef, ClassDef) using ast.

  • dependency.py: Import extraction using ast.

  • search.py: Search queries against the database.

  • db/: Index database location (code_index.db).

Prerequisites

  • Python 3.10+ (recommended)

  • pip

Installation

  1. Clone this repository.

  2. Go to the project folder.

  3. Create a virtual environment.

  4. Activate the virtual environment.

  5. Install dependencies.

Windows PowerShell example:

python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt

Run Locally

Start the MCP server:

python server.py

Available tools:

  • index_project

  • find_symbol

  • find_import

  • read_file

MCP Configuration

Add this to your MCP client configuration so it runs as an MCP server:

{
  "mcpServers": {
    "code-intelligence": {
      "command": "python",
      "args": [
        "path-to-your-server"
      ]
    }
  }
}
  1. Run index_project once to build the initial index.

  2. Use find_symbol to locate functions/classes.

  3. Use find_import to trace module usage.

  4. Re-run index_project after major code changes.

Notes

  • Non-Python files are not indexed.

  • Ignored directories during indexing: .git, node_modules, __pycache__, dist, build.

  • The index database is local and should not be committed (already covered by .gitignore).

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that indexes your codebase using tree-sitter AST parsing and gives AI tools instant access to structural intelligence like dependency graphs, call trees, and dead code detection from a local SQLite database.
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    An MCP server that indexes source code into a local database and provides tools for querying code symbols, dependencies, and tree structure for JavaScript/TypeScript, Java, and Python.
    7
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for semantic codebase navigation that builds an AST index of symbols, imports, and exports, providing AI agents with tools to search, explore, and understand code.
    MIT