get_index_status
Get status information about the current search index.
Returns total chunks, list of indexed files with chunk counts, and file type distribution.
Search your own documents by meaning, entirely offline.
LABSCO SUMMARY
It indexes what is already on your disk and returns the relevant passages, so the assistant answers from your contracts and reports instead of from its training data. After the one-time model download there are no network calls at all.
A local semantic index over a folder of documents — txt, md, pdf, docx, pptx, csv — stored as LanceDB files on disk and searched in natural language.
Python 3.11 or newer, and room on disk for the index and the embedding model (about 120 MB, downloaded once). LanceDB keeps everything as local files, so there is no server, container or database to run, and no API key.
Build from source — git clone https://github.com/ZhuBit/cowork-semantic-search.git
USE CASES
Ask in plain language and get the matching chunks back, ranked by both meaning and keyword.
Index it once; re-indexing later only reprocesses the files whose contents actually changed.
The embeddings cover 50+ languages, so an English question can surface a German passage.
Force that one file through indexing rather than waiting for the next full pass.
Total chunks and the per-file breakdown show whether the document you expected was ever picked up.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
get_index_statusGet status information about the current search index.
Returns total chunks, list of indexed files with chunk counts, and file type distribution.
index_folderIndex or re-index all documents in a folder for semantic search.
Scans the folder for supported document types (.txt, .md, .pdf, .docx, .pptx, .csv), extracts text, splits into chunks, computes embeddings, and stores them in a local vector database. Only processes files that have changed since the last indexing run. Safe to call multiple times — unchanged files are skipped automatically.
reindex_fileForce re-index a single file, ignoring the content hash cache.
Deletes existing chunks for this file, re-parses, re-chunks, re-embeds, and stores new chunks. Useful when you know a file has changed or when parsing was updated.
semantic_searchSearch indexed documents using natural language.
Finds the most relevant document chunks matching the query using semantic similarity. Returns ranked results with source file paths and relevance scores.
Use mode='hybrid' to combine vector search with full-text search via Reciprocal Rank Fusion for better keyword + semantic matching.
The folder must be indexed first with index_folder.
BEFORE YOU INSTALL
4 tools when we connected.
Python 3.11+
All 4 documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 4 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
git clone https://github.com/ZhuBit/cowork-semantic-search.git
cd cowork-semantic-search
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[all]"{
"mcpServers": {
"semantic-search": {
"command": "<YOUR_PATH_TO_VENV>/bin/python",
"args": [
"-m",
"server.main"
],
"cwd": "<YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH>",
"env": {
"PYTHONPATH": "<YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH>"
}
}
}
}Goes in .mcp.json in your project root. <YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH> is the folder you cloned, and point command at the .venv/bin/python inside that folder (the virtual environment created during installation).
{
"mcpServers": {
"semantic-search": {
"command": "<YOUR_PATH_TO_VENV>/bin/python",
"args": [
"-m",
"server.main"
],
"env": {
"PYTHONPATH": "<YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH>"
}
}
}
}Goes in .cursor/mcp.json in your project root, or ~/.cursor/mcp.json globally. <YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH> is the folder you cloned, and point command at the .venv/bin/python inside that folder (the virtual environment created during installation).
{
"mcpServers": {
"semantic-search": {
"command": "<YOUR_PATH_TO_VENV>/bin/python",
"args": [
"-m",
"server.main"
],
"env": {
"PYTHONPATH": "<YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH>"
}
}
}
}Goes in ~/.codeium/windsurf/mcp_config.json. <YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH> is the folder you cloned, and point command at the .venv/bin/python inside that folder (the virtual environment created during installation).
Open Cline > MCP Servers icon > Configure > Advanced MCP Settings, then add:
{
"mcpServers": {
"semantic-search": {
"command": "<YOUR_PATH_TO_VENV>/bin/python",
"args": [
"-m",
"server.main"
],
"env": {
"PYTHONPATH": "<YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH>"
}
}
}
}<YOUR_PATH_TO_COWORK_SEMANTIC_SEARCH> is the folder you cloned, and point command at the .venv/bin/python inside that folder (the virtual environment created during installation).