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

Uploaded Python 3

File details

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

File metadata

  • Download URL: grp_kb-0.1.4.tar.gz
  • Upload date:
  • Size: 12.3 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.4.tar.gz
Algorithm Hash digest
SHA256 b6e55e3d7ebb5065717b5d344d092960a623e337a245c69ddc4ab4cb53473b74
MD5 8a2ef98b4d3753e972593e84f4412e3e
BLAKE2b-256 c88292aaf9c92ad8e9e65b028025f5b23926361d2ae6affbf87be37f1124137c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: grp_kb-0.1.4-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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 acef455a855540af312394e60f4af5f8798ac293161f5b894b9e101064c8805a
MD5 50050534b9e0e2f34a4517a76a3ee862
BLAKE2b-256 423393a502227f84df87f5249c0f111fe4fe7577e1f59aea4c8012964ecf38b1

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