MCP Plugin for SAP CAP (Model Context Protocol server from CDS models)
CAP MCP Plugin provides 12 well-structured tools for SAP CAP entity operations with consistent naming (verb_noun pattern: query, get, create, update, delete, draft-*). All tools have descriptions and input schemas with typed parameters. However, output schemas are not documented in the visible code, parameter descriptions lack detail on constraints/formats, and error handling guidance is minimal. Tool names are clear but some descriptions are generic. The plugin demonstrates solid foundational quality but lacks the depth needed for A-grade (80+).
Create a new entity instance
Delete an entity instance
Activate a draft entity, promoting it to active status
Discard a draft entity, removing it without activation
Create a draft copy of an active entity for editing
Create a new draft entity instance for editing
Update a draft entity instance
Output schemas not documented. No visible return type definitions for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Parameter descriptions lack constraint details. 'OData $filter expression' and 'OData $orderby expression' are vague; no examples of valid syntax, format restrictions, or length limits provided. LLMs cannot validate inputs without explicit constraints.
Error handling not visible in tool definitions. No guidance on retryability, user-fixable vs fatal errors, or recovery steps. Agents cannot determine next action on failure.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2025-06-18+ | v2 |
Create or update a draft entity in a single operation
Retrieve a single entity instance by its key(s)
Query/list results for an entity with OData filtering, ordering, pagination, and field selection
Read multiple related entities in a single request using OData $expand
Update an existing entity instance
Destructive operations (delete, draft-discard) lack confirmation/dry-run support. No evidence of confirmation-request pattern to prevent accidental data loss.
create/update/draft-* tools accept generic 'type: object' input with no field-level schema. Code comment mentions filtering DRAFT_INTERNAL_FIELDS, but input schema does not reflect this filtering. LLMs cannot know which fields are writable.