Skip to main content

Semantic search MCP server for an Acumatica KB, single multilingual index, no Obsidian/Smart Connections required

Project description

grp-kb

Semantic search MCP server for an Acumatica knowledge base. Single index over one vault of markdown notes, embedded with the multilingual paraphrase-multilingual-MiniLM-L12-v2 — handles both English content and Bahasa Malaysia content (e.g. GRP manuals) well, so a query in either language can find the right doc in either language.

No Obsidian, no Smart Connections plugin, anywhere in this pipeline — the index is 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 + kb_index.npy / kb_meta.json, no re-embedding needed on the receiving end).

Note on mixed-content corpora: if your vault has a small, distinctly-tagged subset (e.g. guide: GRP-Manual in frontmatter) mixed into a much larger general corpus, that subset can get outranked by volume on any topic that exists in both — unfiltered search may return zero of the small subset's results even in the top 15, regardless of query wording. Use guide_filter to force results from that subset when you know that's what you want; the search_kb tool description already tells a calling LLM when to do this.

Build an index

export KB_VAULT_DIR=/path/to/vault
export KB_MCP_INDEX_DIR=/path/to/index
python -m grp_kb.build_index

Optional env vars: KB_FILE_GLOB (default *.md) to scope which files get indexed, KB_EMBED_MODEL (default paraphrase-multilingual-MiniLM-L12-v2) to use a different sentence-transformers model.

Run the server

export KB_VAULT_DIR=/path/to/vault
export KB_INDEX_DIR=/path/to/index
grp-kb

Register with Claude Code

claude mcp add grp-kb -s user \
  -e KB_VAULT_DIR=/path/to/vault \
  -e KB_INDEX_DIR=/path/to/index \
  -- grp-kb

Tools

  • search_kb(query, top_k=10, source_only=False, guide_filter="") — returns a JSON array of results (score, path, heading, title, breadcrumb, forms, guide, snippet).
  • 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.3.tar.gz (11.8 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.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: grp_kb-0.1.3.tar.gz
  • Upload date:
  • Size: 11.8 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.3.tar.gz
Algorithm Hash digest
SHA256 eeb5f92fb4ded4f1068e507aeef6e40e0db6f16e9d058f3e733d21d93c65d331
MD5 b423fa9b3687b1336457d742ab380a57
BLAKE2b-256 69da7129184dfc1e7ca2df272ed48d1e6eec38a853ff7bcf15308a440224d16c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: grp_kb-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 8.3 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ca68c3a3ae5f63a285ed77fa051761f039472c30c858f05c871bf677119f095d
MD5 79348417f283d16fb6f1eccf3f7600f8
BLAKE2b-256 c91bbbcf1c97d13f7bdbb0ba741110ff7984908f22f48506a5c45a8e62100053

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