Next-Session-Prompt
Self-contained Briefing fuer eine neue Claude-Session zur Fortsetzung des mcp-hardening-pass-Projekts. Inhaltlich am 15.05. um ca. 17:30 abgebrochen mit offener Hypothesen-Verifikation.
Prompt (zum Reinkopieren)
Wir setzen ein laufendes Projekt fort: mcp-hardening-pass.
KONTEXT
Heute (15.05.2026) lief ein VF-WebUI-Vorfall mit Papierkram. Drei Patches sind live:
1. mcp-papierkram: PAPIERKRAM_EXPOSE_RAW-Env-Flag, _format_404_hint()-Wrapper, Docstring-Upgrade
2. mcp-vf-hosted: Whitelist-Fix in _SUB_MCP_ENV + neues Image (sha256:b3851cb...), Task-Rev 13 live
3. drei Aggregations-Tools (papierkram_monatsabschluss, _offene_posten, _kunde_uebersicht) — lokal getestet OK
4. tool-error-digest Lambda in agents-platform (Mo 7:00 UTC) — deployed + invoke-getestet
5. vf-sonnet System-Prompt v2.9: m365_* → sharepoint_* korrigiert + Anti-Halluzinations-Regel
Voller Projekt-Status: lies [[intern/projekte/mcp-hardening-pass/_index]]
Patterns aus dem Vorfall: [[intern/wissen/prozesse/mcp-best-practices]]
Audit-Sweep über 7 Eigenbau-MCPs: [[intern/runs/2026-05-15-mcp-audit-sweep]]
WO ES JETZT KLEMMT
Nach den Deploys: Marvin's Test-Aufrufe von papierkram_get_info im WebUI gehen nicht durch.
CloudWatch-Beweis: kein einziger CallToolRequest am MCP, nur ListToolsRequests + Session-
Terminate. Bedrock Sonnet 4.6 macht Tool-Use korrekt (direkt verifiziert via
bedrock-runtime invoke-model). Open-WebUI Container wurde restartet — keine Besserung.
Verdacht: 139 Tools insgesamt (96 papierkram + 28 sharepoint + 15 ticketpay) sprengt die
gesunde Tool-Anzahl. Anthropic-Benchmarks: Selection-Quality sinkt deutlich >30-50 Tools.
ZWEI-STUFEN-PLAN
Stufe 1 — Hypothese verifizieren (10 Min):
Open-WebUI `function_name_filter_list` auf den MCP-Server-Eintrag setzen auf nur
"papierkram_get_info". Marvin macht im frischen Chat einen Test. Du beobachtest live in
CloudWatch ob ein CallToolRequest mit tool=papierkram_get_info im Stream
vf-mono/vf-mono/* im /aws/ecs/default/mcp-vf-hosted Log-Group ankommt.
- Wenn ja: Tool-Anzahl war die Wurzel, weiter zu Stufe 2.
- Wenn nein: Lass die Whitelist drin, grab tiefer — LiteLLM-Stream-Tool-Use-Bug,
Bedrock-Inference-Profile-Issue, Tool-Schema-Validierungsfehler. Nicht Stufe 2 starten.
Stufe 2 — echte Lösung (~1 Tag, NUR wenn Stufe 1 bestätigt):
Hybrid: statische Whitelist (~15-20 Core-Tools) + ein neues Meta-Tool
`search_tools(query, namespace=None, detail="schema")` im mcp-vf-hosted.
- Core-Tools-Liste: papierkram_get_info, papierkram_list_invoices, papierkram_list_vouchers,
papierkram_list_companies, papierkram_monatsabschluss, papierkram_offene_posten,
papierkram_kunde_uebersicht, ticketpay_list_events, ticketpay_event_bilanz,
sharepoint_list_sites, sharepoint_search_files, sharepoint_list_messages,
sharepoint_search_messages, sharepoint_create_draft, sharepoint_send_mail
- Modell sieht 16 Tools statt 139. search_tools liefert auf Anfrage die Schemas der
anderen 123 — semantische Suche über Name+Description.
- Pattern-Source: Anthropic's progressive disclosure
(https://www.anthropic.com/engineering/code-execution-with-mcp) + Synaptic Labs
meta-tool pattern. Token-Saving ~85-95%.
- BEWUSST NICHT: Code Execution Mode (Cloudflare/FastMCP 3.1) — V8-Isolate-Sandbox
überdimensioniert für KMU-Setup.
WICHTIGE FILES & ENDPOINTS
- ~/source/mcps/mcp-papierkram/src/mcp_papierkram/server.py — drei Aggregations-Tools,
RAW_ENABLED-Gating, _format_404_hint()
- ~/source/mcps/mcp-vf-hosted/src/mcp_vf_hosted/main.py — _SUB_MCP_ENV-Whitelist +
_SUB_MCP_COMMANDS (Namespaces: papierkram, ticketpay, sharepoint)
- ~/source/mcps/mcp-vf-hosted/infra/lib/mcp-vf-hosted-stack.ts — Image-Pin,
PAPIERKRAM_EXPOSE_RAW Env
- ~/source/apps/open-webui-vf/prompts/vf-sonnet.txt — System-Prompt v2.9
- ~/source/agents-platform/lambdas/tool-error-digest/ — der Mo-7:00-Wochenreport
- Hosted MCP: https://mcp-vf.agenticventures.de/mcp (auth: Scalekit OAuth EU)
- WebUI: https://vf-chat.agenticventures.de
- CloudWatch Log-Group: /aws/ecs/default/mcp-vf-hosted (Stream vf-mono/vf-mono/<task>)
- Open-WebUI Admin-API-Key: aws secretsmanager get-secret-value --profile av-production
--region eu-central-1 --secret-id tmp/owui-admin-key
- Open-WebUI MCP-Server-Config-Endpoint: $BASE/configs/tool_servers (GET/POST)
OFFENE FOLGE-ITEMS (NICHT in dieser Session — gehören in spätere Sweeps):
- 3 weitere MCPs brauchen Raw-Gate + Error-Hints: mcp-ticketpay, mcp-calcom, mcp-whatsapp
(siehe Audit-Sweep-Run, jeder ~45 Min nach Papierkram-Pattern)
- Strukturierter Audit-Log auf mcp-calcom + mcp-whatsapp (damit tool-error-digest
dort auch funktioniert)
- Vollaudit gegen alle 17 Best-Practices-Regeln für alle 8 MCPs
START
Erst Stufe 1 ausführen — function_name_filter_list setzen via Open-WebUI API.
Nicht stillschweigend Code bauen. Marvin testet, du verifizierst in CloudWatch.
Related
- _index — Projekt-Doku
- mcp-best-practices — Patterns + Audit-Checkliste
- 2026-05-15-mcp-audit-sweep — was bei den anderen MCPs ansteht