Baseline MCP server for DriftCore - provides tools for Drupal project inspection, composer management, and workflow operations
DriftCore exhibits significant definition quality gaps. Tool names lack action verbs (drift.composer_info, drift.drush_status, drift.scaffold_plan are noun-heavy; should be get_composer_info, check_drush_status, generate_scaffold_plan). Descriptions are present but generic (avg ~80 chars, below 194-char baseline). Only 2 of 10 tools have documented input schemas; 8 tools have empty input objects {} with no parameter descriptions. Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible in tool definitions. No tool annotations (readOnlyHint/destructiveHint) despite clear WRITE vs READ_ONLY risk classification in metadata.
Previews, applies, and verifies a cache rebuild using a short-lived preview token.
Reads composer.json/lock and returns manifest + lock summaries.
Runs `composer outdated --format=json` and normalizes package update metadata.
Inspects config sync layout and Drush config status to report pending configuration drift.
Previews, applies, and verifies a Drupal config export into the sync directory.
Runs `drush pm:list --format=json` to list all modules and themes with status/type metadata.
Runs `drush status --format=json` from the configured Drupal root and returns normalized status metadata.
8 of 10 tools have empty input schemas ({}). No parameter descriptions, types, or constraints visible.
Tool names lack action verbs. 'drift.composer_info' should be 'drift.get_composer_info'; 'drift.drush_status' should be 'drift.check_drush_status'. LLMs infer intent from verb-first names. Current names are noun-heavy and ambiguous.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
Previews, applies, and verifies a minimal custom Drupal module scaffold.
Builds a read-only scaffold plan for a new custom Drupal module or theme.
Inspects composer and Drupal manifest state and returns a structured upgrade assessment.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite explicit WRITE vs READ_ONLY risk classification in metadata. Agents cannot distinguish safe from destructive operations without annotations.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure. No evidence of documented return types in tool definitions.
Error handling lacks recovery guidance. Code shows error objects with code/message but no actionable next steps (e.g., 'Try search_users() first'). Agents cannot self-correct without guidance.