Dual-model semantic search MCP server for an Acumatica KB (general English + multilingual GRP-manual domains), no Obsidian/Smart Connections required
Project description
grp-kb
Dual-model semantic search MCP server for an Acumatica knowledge base. Two independently-embedded domains over one vault of markdown notes:
- general — everything except
GRP_Manual*.md, embedded withTaylorAI/bge-micro-v2 - grp —
GRP_Manual*.mdonly, embedded withparaphrase-multilingual-MiniLM-L12-v2(the GRP manuals are in Bahasa Malaysia — bge-micro-v2 alone tested noticeably worse there than a multilingual model)
No Obsidian, no Smart Connections plugin, anywhere in this pipeline — indexes
are built directly from plain .md files with sentence-transformers.
This package ships code only. It needs a real, pre-built vault + index pair
to do anything useful — either build your own (see below) or get one shared
from someone who already has it (just the .md vault + two kb_index.npy /
kb_meta.json pairs, no re-embedding needed on the receiving end).
Build an index
Run twice — once per domain — pointing at separate KB_MCP_INDEX_DIR folders:
# general domain
export KB_VAULT_DIR=/path/to/vault
export KB_FILE_GLOB="*.md"
export KB_EMBED_MODEL=TaylorAI/bge-micro-v2
export KB_MCP_INDEX_DIR=/path/to/index
python -m grp_kb.build_index
# grp domain
export KB_VAULT_DIR=/path/to/vault
export KB_FILE_GLOB="GRP_Manual*.md"
export KB_EMBED_MODEL=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
export KB_MCP_INDEX_DIR=/path/to/index_minilm_grp
python -m grp_kb.build_index
Run the server
export KB_VAULT_DIR=/path/to/vault
export KB_GENERAL_INDEX_DIR=/path/to/index
export KB_GRP_INDEX_DIR=/path/to/index_minilm_grp
grp-kb
Register with Claude Code
claude mcp add grp-kb -s user \
-e KB_VAULT_DIR=/path/to/vault \
-e KB_GENERAL_INDEX_DIR=/path/to/index \
-e KB_GRP_INDEX_DIR=/path/to/index_minilm_grp \
-- grp-kb
Tools
search_kb(query, top_k=10, source_only=False, guide_filter="")— returns a JSON array of results taggedsource: "general"or"grp".top_kapplies per domain, so a call can return up to 2x that many results total.read_kb_file(path)— full markdown content by relative path (as returned bysearch_kb).
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file grp_kb-0.1.1.tar.gz.
File metadata
- Download URL: grp_kb-0.1.1.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4bc3974952aa057b8cb91748620e1ce424d1d6b9ee05ab62005f2fd0aec6787
|
|
| MD5 |
4f0def70e4ed98114596872614d2e0ac
|
|
| BLAKE2b-256 |
42ce20f465b952b0817e6e1dc2c0f85b3a4b580748b3f47cf3edee041116f6e5
|
File details
Details for the file grp_kb-0.1.1-py3-none-any.whl.
File metadata
- Download URL: grp_kb-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5ea23d332d4a8eeb79b42be6528ab99f7971568486ded7c5834d8b13fc5fa95
|
|
| MD5 |
bb3453ed731651067fbcdbcb0321f216
|
|
| BLAKE2b-256 |
3849c5a0130af3529e60800b2de522c0116423a71374e4e4ffbddd85e3d651c7
|