Multi-agent MCP server system for lead assessment with Finance, Legal, and Salesforce agents using Gemini AI and Salesforce integration
Server has 12 tools with basic schemas and descriptions, but significant quality gaps. All tools have input schemas with type definitions and required fields, which is positive. However, descriptions are generic and lack actionable context for LLM selection. Parameter descriptions are minimal (e.g., 'The SOQL query to execute' provides no guidance on format or constraints). No output schemas documented. Error handling is absent, tools return raw exceptions without recovery guidance. Salesforce tools expose complex API semantics (SOQL, SOSL, Tooling API) without abstracting to user intent. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Missing idempotency guarantees and pagination for list-returning tools.
Executes an Apex REST request
Assesses the financial viability of a lead based on its description.
Assesses the legal acceptability of a lead based on its description.
Creates a new record
Deletes a record
Retrieves field Names, labels and types for a specific Salesforce object
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. E.g., run_soql_query returns raw Salesforce response structure without documenting field names, types, or pagination.
Parameter descriptions lack actionable constraints. 'The SOQL query to execute' does not explain format, valid syntax, or common errors. 'The data for the new record' does not specify required vs optional fields or valid field names. LLMs cannot self-correct invalid input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Retrieves a specific record by ID
Makes a direct REST API call to Salesforce
Executes a SOQL query against Salesforce
Executes a SOSL search against Salesforce
Executes a Tooling API request
Updates an existing record
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. delete_record is marked DESTRUCTIVE but tool definition lacks annotation. Agents cannot reason about side effects or retry safety.
Generic, low-value descriptions. 'Executes a SOQL query against Salesforce' and 'Executes a SOSL search against Salesforce' do not explain WHEN to use each tool, what they return, or how they differ. LLMs cannot distinguish between similar tools.
No error handling or recovery guidance. Tools return raw exceptions (e.g., 'Error during Gemini call') without telling LLM what to do next. No categorization of retryable vs fatal errors. Agents cannot self-correct or escalate intelligently.