Skip to main content

Semantic search MCP server for an Acumatica KB Obsidian vault (Smart Connections embeddings)

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grp_kb_mcp-0.1.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grp_kb_mcp-0.1.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file grp_kb_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: grp_kb_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for grp_kb_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a4d42712fb736d45375ee9b25b9fc9af15efe1c2e1ef4992c5b36946c94fe9f2
MD5 c2e893a7ea6d0dcba3a3da05e91eafe0
BLAKE2b-256 d62169dd9fa80e78ec05526556337397117077e7950c413361b762602ca0cbfd

See more details on using hashes here.

File details

Details for the file grp_kb_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: grp_kb_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for grp_kb_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd3e5f1d91a924fdcb2ab3733bab7d1e090fc5cbfb47c4d9c38346ffe60f2a46
MD5 ddd1f8611aa781c4dc2a49eb5f8911cc
BLAKE2b-256 02993d8c55a2a4029ecb67a0c4f70efdd4108a8c7315afcce308de4a50a00bea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page