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

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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/demixid/MCP-Local-Codebase-Search'

If you have feedback or need assistance with the MCP directory API, please join our Discord server