Eclipse ADT MCP server for writing and activating ABAP source code objects
Two tools with complete input schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Both tools have Portuguese descriptions that are detailed but exceed recommended length (194 chars baseline). Schemas are properly formatted JSON Schema with required fields and type declarations. However, parameter descriptions lack actionable constraints (e.g., no enum for destination, no format spec for objectUri). Output schemas are not documented, LLMs cannot predict response structure. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite both tools being WRITE operations.
Ativa um objeto ABAP ja gravado em um destino ADT, sem alterar o fonte. Devolve as mensagens do checklist de ativacao: HTTP 200 nao garante objeto ativo, confira o campo activated. Recusa objeto fora do namespace de cliente (Z*, Y*, /NAMESPACE/) e destino marcado como produtivo.
Substitui o fonte completo de um objeto ABAP existente (classe, programa, include, function group, DDL source) em um destino ADT e ativa em seguida. Executa LOCK, PUT do fonte, ativacao e UNLOCK numa unica sessao stateful, sempre desbloqueando o objeto no fim. Recusa objeto fora do namespace de cliente (Z*, Y*, /NAMESPACE/) e destino marcado como produtivo. O conteudo enviado substitui o fonte inteiro: leia o fonte atual antes e mande o texto completo, nunca um trecho. HTTP 200 na ativacao nao garante objeto ativo - confira o campo activated e as mensagens devolvidas.
Output schemas not documented. LLMs cannot predict response structure (activated boolean, messages array, etc.). Agents cannot plan downstream calls or extract required fields reliably.
Missing tool annotations despite WRITE risk classification. Both tools modify state (lock, put source, activate, unlock) but lack destructiveHint or idempotentHint annotations. Agents cannot reason about retry safety or side effects.
Parameter descriptions lack actionable constraints. 'destination' accepts free-form strings with no enum or validation hint. 'objectUri' has no format spec or pattern. 'source' has no length limits. LLMs cannot validate inputs before calling.
Error responses lack recovery guidance. Code catches exceptions and returns Results.error(e), but source does not show actionable error messages. LLMs receive raw exceptions with no 'try this next' guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Descriptions exceed recommended length (194 char baseline). adt_write_source description is ~380 chars; adt_activate is ~280 chars. Verbose descriptions waste tokens and bury key details. Recommend: lead with action, add constraints separately.