kbbi-mcp
An MCP server that lets AI assistants look up Indonesian words in KBBI (Kamus Besar Bahasa Indonesia), the official Indonesian dictionary. It returns structured entries (homographs, pronunciation, root words, word classes, definitions, and examples) so the assistant can explain, translate, or quote them for you.
This is an unofficial client; see Disclaimer.
Example prompts
What does “gemas” mean according to KBBI?
Apa arti kata “mempunyai”? Apa kata dasarnya?
Explain “layarnya tidak makan” using KBBI.
Getting started
The server runs locally over stdio with uv’s uvx; no API key or account is needed. Most clients accept this standard config:
{
"mcpServers": {
"kbbi": {
"command": "uvx",
"args": ["kbbi-mcp"]
}
}
}
Claude Code
claude mcp add kbbi -- uvx kbbi-mcp
Codex CLI
codex mcp add kbbi -- uvx kbbi-mcp
Gemini CLI
gemini mcp add kbbi uvx kbbi-mcp
VS Code
Click the Install in VS Code badge at the top, or run:
code --add-mcp '{"name":"kbbi","command":"uvx","args":["kbbi-mcp"]}'
Cursor
Click the Install in Cursor badge at the top, or add the standard config to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
Claude Desktop
Open Settings → Developer → Edit Config and add the standard config to claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Other clients
Use the standard config above. Without uv, install the package with pip install kbbi-mcp and use kbbi-mcp (or python -m kbbi_mcp) as the command.
Tools
kbbi_lookup: Look up an Indonesian word or phrase in KBBI. Returns each headword with its homograph number, pronunciation, root words, and senses (labels such as the word class, the definition, and examples with their meanings). Read-only.
query (string, required): a word or phrase, e.g. makan or rumah sakit
An empty query or a failed lookup (e.g. KBBI unreachable) is returned as a tool error. The full result structure is published as the tool’s outputSchema (kbbi_mcp.types in Python).
Resources
kbbi://{query}: the same result as kbbi_lookup, as JSON (e.g. kbbi://makan).
Configuration
Optional environment variables:
KBBI_TIMEOUT_SECONDS (default: 10.0): timeout for each request to KBBI
KBBI_LOG_LEVEL (default: INFO): level of the server’s logs, written to stderr
KBBI_BASE_URL (default: https://kbbi.kemendikdasmen.go.id): the KBBI site to query
For example, with Claude Code: claude mcp add kbbi -e KBBI_TIMEOUT_SECONDS=20 -- uvx kbbi-mcp. In the standard config, add an "env": {"KBBI_TIMEOUT_SECONDS": "20"} object next to "args".
Limitations
Lookups are anonymous. KBBI shows etymology, related entries, and suggestions for missing words only to signed-in users, so they are not returned. When nothing is found, try the base word or another spelling.
Each lookup fetches https://kbbi.kemendikdasmen.go.id/entri/{query}. KBBI limits anonymous searches, so avoid rapid bulk lookups. Results are cached in memory while the server runs.
The result depends on KBBI’s page markup; if KBBI changes it, parsing may break until this package is updated.
Debugging
Use the MCP Inspector:
npx @modelcontextprotocol/inspector uvx kbbi-mcp
Development
With uv installed, run the server over stdio from a checkout:
uv run kbbi-mcp
To point an MCP client at the checkout, use uv with --directory (an absolute path to your clone):
{
"mcpServers": {
"kbbi-dev": {
"command": "uv",
"args": ["--directory", "/path/to/kbbi-mcp", "run", "kbbi-mcp"]
}
}
}
Checks (see AGENTS.md):
uv sync --frozen --group dev
uv run ruff format .
uv run ruff check .
uv run ty check
uv run pytest
Tests use saved KBBI pages in tests/fixtures and make no network requests. Set KBBI_MCP_RUN_NETWORK_TESTS=1 to also run a live smoke test.
Disclaimer
This project is unofficial and is not affiliated with or endorsed by the Language Development and Cultivation Agency (Badan Bahasa) or KBBI Daring. Dictionary content belongs to its copyright holders; see KBBI’s legal notice. This server is meant for personal, non-commercial lookups. You are responsible for how you use the results.
License
Metadata
Release files for kbbi-mcp 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| kbbi_mcp-0.3.0.tar.gz | 10.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kbbi_mcp-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.8 kB
Release files / kbbi_mcp-0.3.0.tar.gz
| Download URL | kbbi_mcp-0.3.0.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7807ed2e73985202209fba66b0cf0f991966dc40bc3b8921b12cade8836355bd
|
|
BLAKE2b-256 checksum How to use checksums |
77bf8fbf05e4b4ef280558b30724e8d7b1af35efb08c27627c7e75a6e4575394
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / kbbi_mcp-0.3.0-py3-none-any.whl
| Download URL | kbbi_mcp-0.3.0-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8cf1318ee2f3b2c93aafdc595fde73adb6cb6f76dc1743daf11ddbac8330023a
|
|
BLAKE2b-256 checksum How to use checksums |
fea7257fb8b567b42306a3d8a159b27f2a832168959b0aed25bf25152da147da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for kbbi-mcp 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.