A Model Context Protocol server that provides tools for interacting with multiple external services including Bugzilla, GitLab, Google Calendar, Google Docs, Google Drive, and Gmail through a plugin architecture
wtmcp provides 10 Bugzilla tools with consistent naming (verb_noun pattern: bugzilla_search, bugzilla_get_*, bugzilla_create_*, bugzilla_update_*, bugzilla_add_*). All tools have descriptions (avg ~60 chars, within baseline 34-392). Input schemas are present with typed parameters and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for chaining. Parameter descriptions lack format constraints (e.g., date format for 'new_since', enum values for 'status'). Error handling and recovery guidance are absent. No dry-run confirmation for destructive ops (create_bug, update_bug, add_attachment) despite dry_run params existing. Composition is sound: tools are single-responsibility and chainable via IDs.
Add an attachment to a Bugzilla bug
Add a comment to a Bugzilla bug
Create a new Bugzilla bug
Download a Bugzilla attachment and save to file
Get attachments for a Bugzilla bug
Get one or more Bugzilla bugs by ID
Get comments for a Bugzilla bug
Get change history for a Bugzilla bug
Output schemas not documented. LLMs cannot predict response structure, breaking tool chaining and forcing exploratory calls.
Parameter descriptions lack format constraints. 'new_since' accepts string but format (ISO 8601? Unix timestamp?) is unspecified. 'status' and 'priority' lack enum values.
No error recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps when operations fail.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Search Bugzilla bugs using various filters
Update an existing Bugzilla bug
Dry-run parameters exist but are not documented as confirmation steps. LLMs may not understand that dry_run=true prevents actual execution.
Pagination not documented. bugzilla_search accepts max_results and offset but no total_count or next_cursor guidance in description.