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

Uploaded Python 3

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

Hashes for grp_kb-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f4bc3974952aa057b8cb91748620e1ce424d1d6b9ee05ab62005f2fd0aec6787
MD5 4f0def70e4ed98114596872614d2e0ac
BLAKE2b-256 42ce20f465b952b0817e6e1dc2c0f85b3a4b580748b3f47cf3edee041116f6e5

See more details on using hashes here.

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

Hashes for grp_kb-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5ea23d332d4a8eeb79b42be6528ab99f7971568486ded7c5834d8b13fc5fa95
MD5 bb3453ed731651067fbcdbcb0321f216
BLAKE2b-256 3849c5a0130af3529e60800b2de522c0116423a71374e4e4ffbddd85e3d651c7

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