SAP MCP Server for Purchase Order Modifications using ODATA API
Critical gaps across naming, descriptions, and schemas. Tool names lack clear action verbs (e.g., 'handleQuery', 'handleGeneration' use vague 'handle' prefix). Most parameter descriptions are minimal (1-5 words). Input schemas present but lack depth, many parameters typed as generic 'object' without nested field documentation. No output schemas documented. Error handling absent. Composition issues: tools mix concerns (e.g., createContext + handleQuery blur data management and execution). No pagination support despite tools returning lists. Security: no evidence of permission gates or audit logging despite WRITE/DESTRUCTIVE operations.
Create a new MCP context for model interaction
Create a new purchase order
Delete a context by its ID
Delete a purchase order
Generate a completion from Ollama
Get a context by its ID
Get capabilities for a specific model
Get available AI models and their capabilities
Vague action verbs in tool names: 'handleQuery', 'handleGeneration' use generic 'handle' prefix. LLMs cannot infer intent from these names alone. Should be 'query_purchase_orders', 'generate_text', etc.
Parameter 'purchaseOrderData' and 'updateData' typed as generic 'object' with no nested schema. LLMs cannot validate structure or know required fields. Must document nested properties (e.g., vendor, amount, date).
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Must specify return type structure (e.g., getPurchaseOrders returns array of {id, vendor, amount, status}).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
Get purchase order by ID
Get all purchase orders
Handle text generation with optional streaming
Process a query through SAP adapter or model query
Check if Ollama service is available
Process a purchase order query using Ollama with AI insights
Update a context with operation and content
Update a purchase order
Destructive operations (deletePurchaseOrder, deleteContext) lack confirmation/dry-run support and error recovery guidance. No indication of what happens on failure or how to undo.
No pagination support for list operations (getPurchaseOrders, getModels). Large result sets will exhaust context window. Must add limit, offset/cursor, and total_count to responses.