A multi-server MCP agent that integrates math calculations, Google Slides presentation management, and Gmail email operations through an agentic interface powered by Google Gemini
26 tools with highly inconsistent quality. Math tools (add, subtract, etc.) have minimal descriptions (10-30 chars, well below 50-200 char baseline) and lack output schema documentation. Image/slides/Gmail tools have better descriptions but still lack structured output schemas and error handling guidance. No tool uses enums for constrained inputs. Parameter descriptions are sparse or missing entirely. No tool declares permissions or security scopes. Composition is poor: 'create_image_with_rectangle_and_text_tool' violates single-responsibility (combines rectangle + text in one tool). Gmail tools expose file paths as parameters without validation or sanitization guidance. Overall: definitions are skeletal, descriptions are too brief, schemas are incomplete, and error recovery is absent.
Add two numbers
Add all numbers in a list
Adds text to the current slide. Parameters: text (string) - The text to add, use_secondary_screen (boolean) - If True, use the secondary screen
Cube root of a number
Cos of a number
Create an image with a rectangle and text
Creates a new Google Slides presentation in the browser
Math tool descriptions are critically short (10-30 chars, well below 50-200 char baseline). 'Add two numbers' and 'Sin of a number' lack context for LLM selection and do not explain when to use each tool vs alternatives.
Tool 'create_image_with_rectangle_and_text_tool' violates single-responsibility principle by combining rectangle drawing and text rendering. Should split into 'create_image_with_rectangle' and 'add_text_to_image'.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., send_email should document return structure (success boolean, message_id, timestamp).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Create a thumbnail of an image
Divide two numbers with validation
Factorial of a number
Return the first n Fibonacci Numbers
Retrieves unread messages from mailbox. Returns list of message IDs in key 'id'
Return sum of exponentials of numbers in a list
Log of a number
Multiply two numbers
Opens email in browser given ID
Power of two numbers
Retrieves email contents including to, from, subject, and contents
Remainder of two numbers division
Saves the current slide as a PNG image and moves it to PROJECT_ROOT/content/slide.png
Send an email to a recipient with optional attachments
Sin of a number
Square root of a number
Return the ASCII values of the characters in a word
Subtract two numbers
Tan of a number
Gmail tools (send_email, read_email) accept file paths as parameters without validation, sanitization, or path traversal guards. Code shows debug prints but no input validation. Vulnerable to prompt injection attacks.
No error handling guidance. Tools lack recovery hints (e.g., 'If email not found, try get_unread_emails() first'). No categorization of errors as retryable vs fatal. LLMs cannot self-correct on failures.