Skip to main content

A simple MCP server for querying KBBI (Indonesian dictionary)

Project description

kbbi-mcp

CI PyPI Python License

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 as kbbi_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:

  • etimologi is always present (as an object or null)
  • 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_EMAIL
  • KBBI_PASSWORD
  • KBBI_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

kbbi_mcp-0.0.1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kbbi_mcp-0.0.1-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

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

Hashes for kbbi_mcp-0.0.1.tar.gz
Algorithm Hash digest
SHA256 27b77fe9d0e0912b4af91e9b4e32d431b75d8421426f9b97a5348967492b4f24
MD5 9e7e6852a05f6df6573c64206004f8e9
BLAKE2b-256 2d5e56dd33d82ce8ee347bde804591badbed54937c1effbc0a005f911e551c33

See more details on using hashes here.

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

Hashes for kbbi_mcp-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37a0625f451a0d3aed63ad6bb61581b4514a3c8f2daa9fa1706fab8b81db0f77
MD5 a6c5c5c724cdb979d3ced3a22a03addf
BLAKE2b-256 3e5687937caff87febbe7821ae251076641ad8276f93d94c025783abc9762a65

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