Multi-service MCP server providing tools for Xero accounting, Metabase analytics, MySQL workshops database, and Meta/metadata services with Auth0 OAuth2 integration
This server exhibits pervasive quality gaps across naming, descriptions, and schemas. Of 17 tools, only 5 have complete schemas with typed parameters. Many tools (especially Xero tools) have NO visible parameter documentation in the input schemas, only empty property sets. Descriptions vary from adequate (Metabase tools) to completely missing (Xero and Workshops tools lack any description). The codebase shows HTTP transport with FastAPI, proper OAuth2 setup, and reasonable logging, but the tool definitions themselves do not meet production standards. Average per-tool score is 38, pulled down by systematic gaps in Xero (9-11) and Workshops tools (15-25).
Create a new card (saved question)
Execute a saved card (question) and get results
Execute a raw SQL query against a database
Get dashboard details including ordered cards
List all cards (saved questions)
List all dashboards
List all databases connected to Metabase
Xero tool input schemas are completely empty, all four Xero tools declare input with no properties, no parameter names, no descriptions. Per HARD SCORING RULE, schema score must be 0 for these tools.
Xero tools have NO descriptions. Four tools (xero_list_contacts, xero_list_invoices, xero_get_invoice, xero_create_invoice) have descriptions that are either empty or missing in the provided schema. Per HARD SCORING RULE, description score must be 0 when descriptions are absent or under 20 chars.
Workshops tools lack required parameter descriptions. workshops_create and workshops_update have empty input schemas with no visible parameter details. This violates the pattern that EVERY parameter must have a description and type.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 33 | 2024-11-05+ | v1 |
Update an existing card
Create a new workshop
Delete a workshop
Get a specific workshop
List workshops from the database
Update an existing workshop
Create a new invoice in Xero
Get a specific invoice from Xero
List contacts from Xero accounting
List invoices from Xero
No output schemas documented. The provided tool definitions show input schemas only; there is no documented output structure for any tool. LLMs cannot plan downstream tool calls or extract required fields without knowing what each tool returns.
No pagination guidance. Tools like metabase_list_dashboards, metabase_list_cards, xero_list_contacts, xero_list_invoices, and workshops_list have no documented limit, offset, or next_cursor parameters. Large result sets will blow context windows.
No error handling guidance. No tool description explains what to do if the tool fails, what errors are retryable, or how to recover. Agents receive raw HTTP errors with no recovery path.
Destructive operations lack confirmation pattern. workshops_delete and metabase_update_card (and other write tools) have no dry-run or confirmation step. An agent mistakenly invoking delete will destroy data irreversibly.
Tool descriptions for Metabase are generic. 'List all dashboards', 'List all cards', 'List all databases' do not explain WHEN to use these tools or what they return. Descriptions should be 50-200 chars and include context for LLM selection.
metabase_execute_sql has no input validation guidance. The description does not explain what SQL syntax is allowed, what databases are accessible, or what injection protections exist. Agents may pass malicious queries.
Parameter descriptions missing for nested/complex types. metabase_execute_card accepts 'parameters' (array of objects) and metabase_create_card accepts 'dataset_query' (object), but neither has documentation explaining the structure, required fields, or expected format.