MCP Hub
Back to servers

MCP Local Codebase Search

An MCP server that indexes local Python projects into a SQLite database to enable efficient symbol searching and dependency tracking. It allows users to find function or class definitions, trace module imports, and read file contents through natural language interfaces.

glama
Updated
Mar 11, 2026

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).

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"
      ]
    }
  }
}

Recommended Usage Flow

  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).

Reviews

No reviews yet

Sign in to write a review