A simple MCP server for querying KBBI (Indonesian dictionary)
Project description
kbbi-mcp
An MCP server for querying KBBI (Kamus Besar Bahasa Indonesia / KBBI Daring).
This project exposes a single, stable JSON tool output so LLM clients can decide how to format, translate, or summarize results.
Relationship to KBBI Daring
This project is unofficial and is not affiliated with or endorsed by the official KBBI Daring service.
Features
- MCP tool:
kbbi_lookup(query: str) - MCP resource:
kbbi://{query}(same payload askbbi_lookup) - Works without credentials (anonymous mode)
- Optional authenticated mode via environment variables
Configure in an MCP client (JSON)
Most MCP clients (including Claude Desktop) use a JSON config with a top-level mcpServers object.
Claude Desktop (recommended: uvx)
This matches the convention used by many Python MCP servers.
{
"mcpServers": {
"kbbi": {
"command": "uvx",
"args": ["kbbi-mcp"]
}
}
}
Claude Desktop (optional: authenticated mode)
If you have KBBI Daring credentials, you can pass them via env. If you don't, you can omit env entirely.
{
"mcpServers": {
"kbbi": {
"command": "uvx",
"args": ["kbbi-mcp"],
"env": {
"KBBI_EMAIL": "<YOUR_EMAIL>",
"KBBI_PASSWORD": "<YOUR_PASSWORD>",
"KBBI_COOKIE_PATH": "<OPTIONAL_PATH>"
}
}
}
}
Local development (run from this repo)
If you want to test a local checkout (no install step), run uv in the repository directory:
{
"mcpServers": {
"kbbi-local": {
"command": "uv",
"args": ["--directory", "/ABS/PATH/TO/kbbi-mcp", "run", "kbbi-mcp"]
}
}
}
Tool: kbbi_lookup
Input
query(string): a word or phrase
Example tool arguments:
{
"query": "makan"
}
Output
Returns a JSON object:
found(bool)query(string)url(string | null)entries(list)suggestions(list)error(string, optional): present only when the request is invalid (e.g. empty query) or an unexpected error occurs
entries is based on KBBI's serialisasi() shape from the underlying kbbi library, with a small normalization:
etimologiis always present (as an object ornull)- related-word lists are always present (as arrays, possibly empty)
This keeps the tool output stable across anonymous/authenticated mode.
Example tool output:
{
"found": true,
"query": "makan",
"url": "https://kbbi.kemdikbud.go.id/entri/makan",
"entries": [
{
"nama": "makan",
"nomor": "",
"kata_dasar": [],
"pelafalan": "",
"bentuk_tidak_baku": [],
"varian": [],
"makna": [],
"etimologi": null,
"kata_turunan": [],
"gabungan_kata": [],
"peribahasa": [],
"idiom": []
}
],
"suggestions": []
}
Resource: kbbi://{query}
This server also exposes the same payload as a read-only MCP resource.
kbbi://makan
For low-level debugging, a client would read it using resources/read with {"uri": "kbbi://makan"}.
Authentication (optional)
Anonymous mode works out of the box.
If you have KBBI Daring credentials, some additional fields may become available.
Set the following environment variables:
KBBI_EMAILKBBI_PASSWORDKBBI_COOKIE_PATH(optional)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kbbi_mcp-0.0.1.tar.gz.
File metadata
- Download URL: kbbi_mcp-0.0.1.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27b77fe9d0e0912b4af91e9b4e32d431b75d8421426f9b97a5348967492b4f24
|
|
| MD5 |
9e7e6852a05f6df6573c64206004f8e9
|
|
| BLAKE2b-256 |
2d5e56dd33d82ce8ee347bde804591badbed54937c1effbc0a005f911e551c33
|
File details
Details for the file kbbi_mcp-0.0.1-py3-none-any.whl.
File metadata
- Download URL: kbbi_mcp-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37a0625f451a0d3aed63ad6bb61581b4514a3c8f2daa9fa1706fab8b81db0f77
|
|
| MD5 |
a6c5c5c724cdb979d3ced3a22a03addf
|
|
| BLAKE2b-256 |
3e5687937caff87febbe7821ae251076641ad8276f93d94c025783abc9762a65
|