Skip to main content

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 with TaylorAI/bge-micro-v2
  • grpGRP_Manual*.md only, embedded with paraphrase-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 tagged source: "general" or "grp". top_k applies 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 by search_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

grp_kb-0.1.0.tar.gz (8.1 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-0.1.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for grp_kb-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bf2e0e0c924831c28b1532ad6fab1cdebad214a38ef5f18f4669844f2d2c2dfe
MD5 8fc9d80419ff79f1bad56c07b1c79c76
BLAKE2b-256 95fa1aaf7aac8179bcbe40e7a3c4a024da8af1d6e0e0551042626d3fff773635

See more details on using hashes here.

File details

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

File metadata

  • Download URL: grp_kb-0.1.0-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

Hashes for grp_kb-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da2434b8d50936fd9a043033b5b7d4c8b61c1de73de86b45757c527642a35053
MD5 d95989e41a0f37ecb1d9b3e41c8d6691
BLAKE2b-256 0a14e03afca977cd2e1207bd6003f984836111fbc9d4acefebd51a2418f8697c

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