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 |
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 |
Metadata
Release files for grp-kb-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| grp_kb_mcp-0.1.2.tar.gz | 7.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| grp_kb_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.8 kB
Release files / grp_kb_mcp-0.1.2.tar.gz
| Download URL | grp_kb_mcp-0.1.2.tar.gz |
|---|---|
| Size | 7.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7f4356c88a733c780af3ac2a2e6315a2696e931508b63ea182bc3488374395d
|
|
BLAKE2b-256 checksum How to use checksums |
f1738481df5753583c8d2a0f90a1d844ad02552caa7f1913619acd7d2ad77f5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / grp_kb_mcp-0.1.2-py3-none-any.whl
| Download URL | grp_kb_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bc2cae65e9a229d06982c4131d7d93966835846f5949ea8cffba3207edf3ea6a
|
|
BLAKE2b-256 checksum How to use checksums |
d2c3da5cc1fe728c488caa365f83801e6ff6d6fafce4605789b44bae0c033c47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for grp-kb-mcp 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.