Skip to main content

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)

Source distribution for grp-kb-mcp 0.1.2
File Size Uploaded Provenance
grp_kb_mcp-0.1.2.tar.gz 7.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for grp-kb-mcp 0.1.2
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page