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: obsidian-hybrid-search

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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/Arvindh95Censof/kb-mcp'

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