DimonSmart.LocalVectorSearchMcp 0.1.0

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global DimonSmart.LocalVectorSearchMcp --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local DimonSmart.LocalVectorSearchMcp --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=DimonSmart.LocalVectorSearchMcp&version=0.1.0
                    
nuke :add-package DimonSmart.LocalVectorSearchMcp --version 0.1.0
                    

DimonSmart.LocalVectorSearchMcp

Local MCP server for indexing configured Markdown folders and searching them through SQLite FTS5 lexical search, sqlite-vec vector search, and hybrid Reciprocal Rank Fusion.

MVP Scope

The MVP indexes only .md files from configured knowledge base roots. It stores documents, Markdown elements, chunks, FTS rows, sqlite-vec vectors, and index metadata in SQLite. It exposes MCP tools:

  • kb_reindex
  • kb_status
  • kb_search
  • kb_read

Not included in the MVP: PDF/DOCX import, web UI, file watcher, Git history indexing, reranker, remote HTTP MCP server, authentication, multi-user mode, background daemon mode, JSON config, kb_find_files, and advanced Markdown table/list parsing.

Configuration

Default config path is local-vector-search-mcp.yml. Override it with --config or LOCAL_VECTOR_SEARCH_MCP_CONFIG.

server:
  name: local-vector-search-mcp

storage:
  path: ./.local-vector-search-mcp/index.db

embedding:
  provider: openai-compatible
  endpoint: http://localhost:11434/v1
  apiKey: ollama
  model: bge-m3:latest
  dimensions: null
  batchSize: 16
  allowRemoteEndpoint: false
  timeoutSeconds: 120

chunking:
  maxChunkBytes: 4096
  maxElements: 20
  includeHeadingContext: true
  includeFrontMatter: true

search:
  defaultMode: hybrid
  semanticCandidatePoolSize: 50
  lexicalCandidatePoolSize: 50
  maxResults: 10
  rrfK: 60

knowledgeBases:
  - name: current-project
    root: .
    include:
      - "**/*.md"
    exclude:
      - "**/bin/**"
      - "**/obj/**"
      - "**/.git/**"
      - "**/node_modules/**"
      - "**/.local-vector-search-mcp/**"

Ollama

The default embedding endpoint is Ollama's OpenAI-compatible API:

ollama pull bge-m3:latest
ollama serve

First reindex requires the embedding endpoint to be reachable. apiKey is required for OpenAI-compatible clients; for local Ollama it can be a placeholder such as ollama.

CLI

dotnet run --project src/DimonSmart.LocalVectorSearchMcp.Server -- --config ./local-vector-search-mcp.yml --reindex
dotnet run --project src/DimonSmart.LocalVectorSearchMcp.Server -- --config ./local-vector-search-mcp.yml --status

Install the released .NET tool:

dotnet tool install --global DimonSmart.LocalVectorSearchMcp
local-vector-search-mcp --config ./local-vector-search-mcp.yml --status

MCP Config

From source:

{
  "mcpServers": {
    "local-vector-search": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "src/DimonSmart.LocalVectorSearchMcp.Server",
        "--",
        "--config",
        "local-vector-search-mcp.yml"
      ]
    }
  }
}

Published executable:

{
  "mcpServers": {
    "local-vector-search": {
      "command": "C:/Tools/DimonSmart.LocalVectorSearchMcp/DimonSmart.LocalVectorSearchMcp.Server.exe",
      "args": [
        "--config",
        "C:/Projects/MyProject/local-vector-search-mcp.yml"
      ]
    }
  }
}

On Linux, use the executable from the linux-x64 release archive:

{
  "mcpServers": {
    "local-vector-search": {
      "command": "/opt/local-vector-search-mcp/local-vector-search-mcp",
      "args": [
        "--config",
        "/home/user/project/local-vector-search-mcp.yml"
      ]
    }
  }
}

Search Modes

Lexical search uses SQLite FTS5 and BM25. Vector search uses sqlite-vec. Hybrid search combines lexical and vector ranks through Reciprocal Rank Fusion, so raw BM25 scores and vector distances are not mixed directly.

Changing embedding model or dimensions requires a forced rebuild of the index.

Verification

dotnet build
dotnet test
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.1.1 122 7/9/2026
0.1.0 109 7/9/2026