Python版 kintone用 MCP Server - Unofficial kintone MCP Server for managing kintone applications, records, and files
Server has 20 tools with consistent Pydantic schema definitions and Japanese descriptions. However, descriptions are uniformly brief (10-30 chars), falling below the 50-200 char LLM-optimized baseline. Schemas are present but lack output documentation. No tool annotations (readOnlyHint/destructiveHint) despite risk classifications. Error handling returns generic exception text rather than actionable recovery guidance. Tool names follow verb_noun pattern (get_, add_, update_, delete_) but descriptions do not explain WHEN to use each tool or dependencies between them.
新しいkintoneアプリを作成します
kintoneアプリにフォームフィールドを追加します
kintoneアプリにレコードを追加します(最大100件まで)
kintoneアプリのフォームフィールドを削除します
kintoneアプリからレコードを削除します(最大100件まで)
kintoneアプリをデプロイします
kintoneからファイルをダウンロードしてローカルに保存します
Descriptions uniformly 10-30 characters, far below 50-200 char LLM-optimized baseline. Examples: 'kintoneアプリの情報を取得します' (18 chars), 'kintoneアプリの一覧を取得します' (18 chars). LLMs cannot determine WHEN to use each tool or distinguish similar operations (get-app vs get-apps, get-form-fields vs get-general-settings).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
kintoneアプリの情報を取得します
kintoneアプリのデプロイ状況を取得します
kintoneアプリの一覧を取得します
kintoneアプリのフォームフィールド設定を取得します
kintoneアプリのフォームレイアウト設定を取得します
kintoneアプリの一般設定を取得します
kintoneアプリのプロセス管理設定を取得します
kintoneアプリからレコードを取得します。フィルタやソートの指定も可能です。
kintoneアプリのフォームフィールド設定を更新します
kintoneアプリのフォームレイアウト設定を更新します
kintoneアプリの一般設定を更新します
kintoneアプリのレコードを更新します(最大100件まで)
kintoneアプリのレコードステータスを更新します(最大100件まで)
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite explicit risk classifications (READ_ONLY, WRITE, DESTRUCTIVE). Agents cannot distinguish safe retry operations from destructive ones without annotations.
Error handling returns generic exception text ('エラー: {error}') without actionable recovery guidance. No error classification (retryable vs user-fixable vs fatal). Example: _create_error_response() in app_tools.py line ~30 returns raw exception, not 'Try search_users() first' or 'Invalid app_id format'.
Output schemas not documented. Tools return JSON via _create_json_response() but LLMs cannot see what fields to expect. Example: kintone-get-records returns records array, but structure (field names, types, nested objects) is undocumented.
Parameter descriptions lack format/constraint details. Example: 'limit' in kintone-get-apps states 'default:100' but does not specify min/max range. 'query' in kintone-get-records lacks syntax documentation (is it KQL? SQL? Free text?). LLMs cannot validate inputs without explicit constraints.