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.2.tar.gz (11.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.2-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: grp_kb-0.1.2.tar.gz
  • Upload date:
  • Size: 11.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.2.tar.gz
Algorithm Hash digest
SHA256 1a39cd8f0a03db5c944c04b9b1cb24879525cb791b34103b1da4d6b1ade19f8f
MD5 c39772648b842d60b054ba63ad83c493
BLAKE2b-256 18937de06c0c064071e225d03856fe96708b5d87479422d68c10c27ced001715

See more details on using hashes here.

File details

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

File metadata

  • Download URL: grp_kb-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cfe04171e5a747a1abca8c1780b16f43f6cdfbd0920bdcda57e20c200b463c7a
MD5 5bc74d33a16fc38b152fee02519aedc4
BLAKE2b-256 61cd623b7106288382cf04e7693ea756d923c8fda738b7e45efed1c2dc848b9b

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