MCP server for querying a SLiMS (Senayan Library Management System) library database. Provides tools for searching books, checking availability, retrieving statistics, and discovering popular subjects.
Server defines 6 tools with complete schemas and descriptions in Indonesian. All tools are READ_ONLY and properly registered via mcp-go framework. Naming follows verb_noun pattern (search_*, get_*, check_*). Descriptions are present (avg ~80 chars) but lack actionable context for LLM selection. Parameters have types and descriptions, but lack constraints (enums, ranges, format specs). No output schemas documented. Error handling not visible in provided code. Missing idempotent/readonly hints despite all tools being safe.
Memeriksa status ketersediaan buku berdasarkan ID bibliografi
Mendapatkan daftar subjek/topik paling populer
Mendapatkan jumlah total buku dan eksemplar
Mencari buku berdasarkan judul, pengarang, atau subjek dengan dukungan paginasi
Mendapatkan daftar buku terbaru
Mendapatkan daftar buku paling populer berdasarkan riwayat peminjaman
No output schemas documented. LLMs cannot predict response structure or plan downstream calls. Tools return unstructured data requiring parsing.
Numeric parameters (limit, page, biblio_id) lack constraints. No min/max bounds specified. LLMs can pass invalid values (negative page, limit > 50 despite description saying 'maks: 50').
Descriptions lack actionable context. No guidance on WHEN to use each tool vs alternatives. 'Mendapatkan daftar buku terbaru' does not explain when to call this vs search_books with year filter.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, idempotentHint) despite all 6 tools being read-only and safe to retry. Missing hints prevent LLM from optimizing retry logic.
Error handling not visible in tool handlers (internal/tools/*.go truncated). Cannot verify recovery guidance, error classification, or actionable error messages.