MCP server for Ileti Merkezi — bulk SMS, OTP messaging (Turkey)
Server has 8 tools with complete Zod schemas and descriptions. Naming follows verb_noun convention (send_sms, get_balance, list_senders). Descriptions are present but brief (10-50 chars), below the 50-200 char LLM-optimized baseline. Parameters are typed and described, but lack constraints (enums, ranges, patterns). Output schemas are not documented, responses are raw JSON stringified without field documentation. Error handling is minimal; no recovery guidance or categorization. Security: credentials injected via environment variables (correct), but no permission gates or audit logging. Composition is reasonable, tools are single-purpose, but some lack chaining IDs (e.g., create_contact_group returns group_id but add_contacts requires it; unclear if returned). Missing idempotency hints and dry-run patterns for destructive operations (send_sms, send_bulk_sms).
Add contacts to a group
Create a new contact group
Get account balance and SMS credits
Get blacklisted phone numbers
Get delivery report for a sent SMS
List approved sender names
Send SMS to multiple recipients
Output schemas not documented. Tools return raw JSON without field descriptions. LLMs cannot plan downstream calls or extract required data (e.g., group_id from create_contact_group).
Descriptions are too brief (10-50 chars, below 50-200 char baseline). Missing WHEN to use, prerequisites, and state-modification warnings for send_sms/send_bulk_sms.
No parameter constraints (enums, ranges, patterns). 'sender' is free-form string (should document pre-approved list). 'page' and 'per_page' lack min/max bounds. 'schedule_at' lacks ISO 8601 format validation hint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Send a single SMS message
No error handling guidance. Responses are raw JSON; no recovery hints (e.g., 'Invalid phone number. Ensure format is +<country_code><number>'). No categorization of retryable vs fatal errors.
Destructive operations (send_sms, send_bulk_sms) lack dry-run or confirmation step. No idempotency hints. Agents cannot safely retry without risking duplicate SMS sends.