Kudosity MCP server — send SMS, MMS and WhatsApp, manage contacts and webhooks, and research the Kudosity API from AI agents
Kudosity MCP demonstrates solid definition quality with consistent naming, comprehensive parameter descriptions, and proper schema definitions using Zod. All 13 tools follow verb_noun patterns and include input schemas with type constraints and descriptions. Tool annotations are present and correct (readOnlyHint, destructiveHint, openWorldHint). However, output schemas are not formally documented, responses are returned as generic JSON text without structured schema declarations. Error handling is basic (minimal recovery guidance). Parameter descriptions are strong but some tools lack mention of rate limits or prerequisite setup.
Create a new contact list. Requires KUDOSITY_API_SECRET (v1 auth).
Register a webhook (HTTPS URL) to receive event callbacks — delivery status, inbound messages, link hits, opt-outs.
Delete a webhook by its ID.
Get your Kudosity account balance. Requires KUDOSITY_API_SECRET (v1 Basic auth).
Get full details of a specific Kudosity API endpoint from the OpenAPI spec — description, request/response schemas, security, servers, and code examples.
List all contact lists on your account. Requires KUDOSITY_API_SECRET (v1 auth).
Output schemas not formally documented. All tools return responses via asText() helper as generic JSON text without declared structured schemas. LLMs cannot plan downstream tool chaining because they don't know what fields to expect in responses.
Error handling lacks recovery guidance. Tools throw generic errors or return raw API responses without actionable next steps. Example: 'Invalid recipient' should suggest 'Check E.164 format (e.g. +61438333061)' or offer to validate the format.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Retrieve a previously sent message and its current status by channel and ID.
Retrieve the Kudosity API OpenAPI specs (Transmit Message API v2 and Transmit SMS API v1) fetched live from the developer portal.
List all webhooks configured on your account.
Search the Kudosity API spec(s) by keyword — endpoint path, method, summary, description, or parameters.
Send an MMS (media) message to a recipient via Kudosity.
Send an SMS text message to a single recipient via Kudosity.
Send a WhatsApp message via Kudosity — either free-form text (only within an open 24h customer-service window) or a pre-approved template (sendable anytime).
Destructive operations (delete_webhook) lack confirmation/dry-run pattern. Agents could accidentally delete webhooks without user approval.
send_whatsapp has undocumented parameter interdependencies. 'text' is required when content_type='text', and 'template_name' is required when content_type='template', but these constraints are only checked at runtime. The error message in the handler is good, but the inputSchema itself does not declare these constraints (e.g., via conditional schemas or clear parameter descriptions).
list_specs, list_webhooks, get_lists, get_balance have generic descriptions (under 85 chars) that don't explain when to call them or what the LLM should do with the results. 'List all contact lists on your account' is functional but lacks context.
Response result limiting not documented. Tools like list_webhooks and get_lists do not declare pagination or limits. If there are hundreds of webhooks, the response could exhaust the LLM context window.
Credentials (KUDOSITY_API_KEY, KUDOSITY_API_SECRET) are handled via environment variables on the server side, which is correct. However, the tool descriptions do not clarify that these must be configured before running the server, and error messages could be clearer if credentials are missing.