grp-kb
Semantic search MCP server for an Acumatica knowledge base, indexing markdown notes with multilingual embeddings to enable search across English and Bahasa Malaysia content.
README
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 bysearch_kb).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.