Skip to main content
Glama

grp-kb-mcp

Semantic search MCP server for the Acumatica KB Obsidian vault.
Reuses the embeddings already computed by the Smart Connections plugin (TaylorAI/bge-micro-v2, 384-dim).

Published as grp-kb-mcp on PyPI (the import package stays kb_mcp). Note: unlike a turnkey library, this still requires an Obsidian vault with Smart Connections embeddings already computed — installing from PyPI saves you the git clone + editable-install step, not the vault/index setup below.

Tools

Tool

What it does

search_kb(query, top_k, source_only, guide_filter)

Semantic search — embed query, cosine-search ~89k vectors, return top results with snippet

read_kb_file(path)

Read full content of a KB file by relative path

Related MCP server: vault-rag-mcp

Setup

1. Install

cd path\to\kb-mcp
python -m venv .venv
.venv\Scripts\activate
pip install -e .

2. Build the index (run once, ~2 min)

# with .venv active, from the kb-mcp folder:
set KB_VAULT_DIR=path\to\Acumatica-KB
python -m kb_mcp.build_index

This creates kb_index.npy and kb_meta.json inside src\kb_mcp\.
Re-run only if you add new notes to the vault (and re-index in Obsidian Smart Connections first).

Multiple vaults

The index can ingest extra Smart Connections vaults alongside the primary one via KB_EXTRA_VAULTS — a ;-separated list of LABEL=PATH pairs. Each extra vault's records get guide=LABEL (so search_kb(..., guide_filter="GRP") isolates them) and an absolute vault_root baked into the metadata, so the server needs no extra env — it reads those files from the baked-in root. Records under copilot/ are skipped as plugin cruft.

$env:KB_VAULT_DIR    = "C:\...\Acumatica-KB"
$env:KB_EXTRA_VAULTS = "GRP=C:\...\GRPUserManuals-Markdown"
python -m kb_mcp.build_index

Or just run .\rebuild.ps1 (has both vault paths baked in). Restart the kb-mcp server afterward — it loads the index once at startup.

3. Register with Claude Desktop

Add to claude_desktop_config.json (found at %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "kb-mcp": {
      "command": "C:\\path\\to\\kb-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "kb_mcp.server"],
      "env": {
        "KB_VAULT_DIR": "C:\\path\\to\\Acumatica-KB"
      }
    }
  }
}

Restart Claude after adding.

4. First query (model download)

The TaylorAI/bge-micro-v2 model (~45 MB) downloads automatically on the first search_kb call and is cached locally by HuggingFace.

Environment variables

Variable

Default

Description

KB_VAULT_DIR

auto-detected

Path to the Acumatica-KB vault folder

KB_MCP_INDEX_DIR

src/kb_mcp/

Where kb_index.npy and kb_meta.json live

KB_SNIPPET_LINES

30

Lines to include in each result snippet

Related MCP Connectors

Related MCP Servers