loaditout.ai
SkillsPacksTrendingLeaderboardAPI DocsBlogSubmitRequestsCompareAgentsXPrivacyDisclaimer
{}loaditout.ai
Skills & MCPPacksBlog

embgrep

MCP Tool

QuartzUnit/embgrep

Local semantic search — embedding-powered grep for files, zero external services

Install

$ npx loaditout add QuartzUnit/embgrep

Platform-specific configuration:

.claude/settings.json
{
  "mcpServers": {
    "embgrep": {
      "command": "npx",
      "args": [
        "-y",
        "embgrep"
      ]
    }
  }
}

Add the config above to .claude/settings.json under the mcpServers key.

About

embgrep

Local semantic search — embedding-powered grep for files, zero external services.

[](https://pypi.org/project/embgrep/) [](https://pypi.org/project/embgrep/) [](https://opensource.org/licenses/MIT)

Search your codebase and documentation by *meaning*, not just keywords. embgrep indexes files into local embeddings and lets you run semantic queries — no API keys, no cloud services, no vector database servers.

Features
  • Local embeddings — Uses fastembed (ONNX Runtime), no API keys needed
  • SQLite storage — Single-file index, no external vector DB
  • Incremental indexing — Only re-indexes changed files (SHA-256 hash comparison)
  • Smart chunking — Function-level splitting for code, heading-level for docs
  • MCP native — 4-tool FastMCP server for LLM agent integration
  • 15+ file types — .py, .js, .ts, .java, .go, .rs, .md, .txt, .yaml, .json, .toml, and more
Install
pip install embgrep              # core (fastembed + numpy)
pip install embgrep[cli]         # + click/rich CLI
pip install embgrep[mcp]         # + FastMCP server
pip install embgrep[all]         # everything
Quick Start
Python API
from embgrep import EmbGrep

eg = EmbGrep()

# Index a directory
eg.index("./my-project", patterns=["*.py", "*.md"])

# Semantic search
results = eg.search("database connection pooling", top_k=5)
for r in results:
    print(f"{r.file_path}:{r.line_start}-{r.line_end} (score: {r.score:.4f})")
    print(f"  {r.chunk_text[:80]}...")

# Incremental update (only changed files)
eg.update()

# Index statistics
status = eg.status()
print(f"{status.total_files} files, {status.total_chunks} chunks, {status.index_size_mb} MB")

eg.close()
CLI
# Index a project
embgrep

Tags

embeddingsllmlocal-firstmcppythonsemantic-search

Reviews

Loading reviews...

Quality Signals

0
Installs
Last updated25 days ago
Security: AREADME

Safety

Risk Levelmedium
Data Access
read
Network Accessnone

Details

Sourcegithub-crawl
Last commit3/23/2026
View on GitHub→

Embed Badge

[![Loaditout](https://loaditout.ai/api/badge/QuartzUnit/embgrep)](https://loaditout.ai/skills/QuartzUnit/embgrep)