Android MCP server integration for LLM System Service with human-in-the-loop consent management, session persistence, and tool invocation framework. Includes reference implementation for Contacts MCP tool provider.
Three tools with minimal schema documentation and generic descriptions. All tools lack input parameter descriptions, critical gap per pattern:tool-description. Schemas present but severely underdocumented: search_contacts and get_contact have single string params with no type validation, range, or format guidance. list_favorites has empty input schema. Descriptions are 10-30 chars, below the 50-200 char baseline for LLM-optimized tools. No output schemas documented. No error handling guidance. No parameter constraints (enums, patterns, ranges). Tools are read-only (low risk) but lack the structure needed for reliable agent composition.
get full details for a contact by name
list starred contacts
search by name, phone, or email
All parameter descriptions missing. 'query' and 'name' params lack guidance on format, length, case sensitivity, or matching behavior (substring vs exact).
Tool descriptions are 10-30 characters, far below 50-200 char baseline. 'search by name, phone, or email' and 'get full details for a contact by name' lack context on when to use each tool, what they return, and dependencies.
No output schemas documented. Agents cannot plan downstream calls or extract required fields (e.g., does search_contacts return contact_id, phone, email? What structure?). Breaks tool chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | <=2025-11-25 | v2 |
No error handling guidance. If search_contacts finds zero results, or get_contact fails to find a name, what does the tool return? How should the agent recover?
Input schemas lack type constraints. 'query' and 'name' are strings with no length limits, regex patterns, or case-sensitivity rules. Agents may pass empty strings, 1000-char queries, or special characters without guidance.