Brainstorm · solcom · 2026-05-02
mcp_server → mcp_tools Replace & Eigen-Tools
Kontext
Das aktive
drupal/mcp_server 2.x-dev-Setup liefert null Tools nach
tools/list.
drupal/mcp_tools 1.0.0-beta7 bietet 234 fertige Drupal-Tools.
Cherry-Pick via Bridge ist durch Composer-Konflikt blockiert
(
mcp/sdk: ^0.2.2 vs.
^0.5.0). Drei Architektur-Optionen.
Supersedet Server-Modul-Wahl in
ADR-0010 .
A Replace: mcp_tools + solcom_mcp_tools
mcp_server komplett entfernen, mcp_tools 1.0.0-beta7
mit 28 Submodulen installieren, parallel eigenes Modul
solcom_mcp_tools mit drei #[Tool]-Plugins bauen.
Beide im dev-Config-Split.
# Migrations-Sequenz
ddev drush pm:uninstall \
mcp_server_ui mcp_server_tool_bridge \
mcp_server
ddev composer remove drupal/mcp_server
ddev composer require \
drupal/mcp_tools:^1.0@beta
ddev drush pm:enable --yes \
mcp_tools mcp_tools_stdio \
mcp_tools_content mcp_tools_cache \
mcp_tools_config mcp_tools_structure \
# … 23 weitere Submodule …
# Eigen-Tools: #[Tool]-Plugins
namespace Drupal\solcom_mcp_tools\Plugin\tool\Tool ;
#[Tool(
id: 'list_sdc_components' ,
label: 'List SDC Components' ,
operation: ToolOperation::Read ,
)]
class ListSdcComponents extends ToolBase { }
234 Tools sofort — kein Eigen-Aufwand pro Tool
Beta-Status, kein Drupal-Security-Coverage
Composer-Konflikt gelöst, sauberer Lockfile
Maintainer-Wechsel: Acquia → CodeWheel
Eigen-Tools nutzen selbe drupal/tool-Plattform
~200 Tools im tools/list erhöhen Token-Last
Dev-Split bleibt, Stage/Prod sicher abgeschirmt
Submodul-Bump-Fragility bei Beta-Updates
Tools: 234 + 3
Composer-Konflikt: gelöst
Dev-Split: ja
Aufwand: mittel
# Kein Composer-Switch
# mcp_server + mcp_server_tool_bridge
# bleiben aktiv
# Tool-Plugins selbst schreiben:
namespace Drupal\solcom_mcp_tools\Plugin\Tool ;
# Benötigte Tools (Aufwandsschätzung):
# - node:create/read/update/delete → 1 Woche
# - cache:rebuild, config:status → 2 Tage
# - views:inspect → 3 Tage
# - structure:field/content-type → 1 Woche
# - theme:list/inspect → 2 Tage
# …
# Summe: ~4-6 Wochen nur für
# mcp_tools-Parität
Keine Drittpartei-Abhängigkeit für Tool-Inventar
4-6 Wochen Aufwand für Basis-Parität mit mcp_tools
Maximale Kontrolle über Tool-Semantik
Composer-Konflikt bleibt — kein mcp_tools cherry-pick
Kein Maintainer-Risiko für Core-Tools
Jedes neue Tool ist Eigenentwicklungs-Aufwand
mcp_server-SDK stabil (kein Beta-Risiko)
Kosten-Nutzen-Verhältnis ungünstig vs. mcp_tools
Tools: 0 → selbst bauen
Composer-Konflikt: bleibt
Dev-Split: ja
Aufwand: sehr hoch
# Theoretisch gewünschte Sequenz:
ddev composer require \
drupal/mcp_server \
drupal/mcp_tools \
# ↑ Konflikt!
# mcp_tools verlangt: mcp/sdk: ^0.2.2
# mcp_server verlangt: mcp/sdk: ^0.5.0
# → disjunkte Constraints
# → kein gemeinsamer Schnitt
# Composer-Error:
Your requirements could not be resolved
to an installable set of packages.
# Forced override:
# bricht entweder mcp_server oder
# mcp_tools zur Laufzeit — unsupported
Würde beste beider Welten kombinieren
Technisch blockiert — Composer-Konflikt unauflösbar
Kein Maintainer-Wechsel bei Core-Funktionalität
SDK-Override bricht entweder Modul zur Laufzeit
Schrittweiser Umstieg möglich
Upstream-Konvergenz hat keinen Zeitplan (drupal.org)
Optionaler Pfad wenn SDK-Constraints konvergieren
Kein sicherer Hybrid-Betrieb ohne SDK-Freeze
Status: blockiert
Composer-Konflikt: unlösbar (V1)
Aufwand: nicht umsetzbar
Zukunft: wenn SDK konvergiert
Empfehlung: Approach A
mcp_server durch mcp_tools 1.0.0-beta7 ersetzen (28 Submodule,
Dev-Preset, STDIO-Transport) und parallel solcom_mcp_tools-Modul mit drei
Eigen-Tools bauen: list_sdc_components, get_brand_tokens,
find_component_usages. Beide Module im dev-Config-Split.
Approach B verschiebt 4–6 Wochen Aufwand für mcp_tools-Parität auf Eigenentwicklung —
Kosten-Nutzen ungünstig. Approach C ist technisch blockiert durch den
mcp/sdk-Versions-Konflikt; als Future-State-Option bleibt das Bridge-Submodul
mcp_tools_mcp_server im Repo, wenn Upstream-Constraints konvergieren.
Der dev-Config-Split aus ADR-0010 bleibt strukturell unverändert; nur der Inhalt
wechselt. ADR-0011 dokumentiert den Replace. Beta-Risiko ist mitigiert durch
Submodul-Granularität und Composer-Lockfile-Pin.