diff --git a/docs/modules/erp/lager/konzepte/erp_lager_hermes_mcp_api.md b/docs/modules/erp/lager/konzepte/erp_lager_hermes_mcp_api.md index 90dc25c..ec11b0f 100644 --- a/docs/modules/erp/lager/konzepte/erp_lager_hermes_mcp_api.md +++ b/docs/modules/erp/lager/konzepte/erp_lager_hermes_mcp_api.md @@ -27,3 +27,5 @@ Das Interface ist ausschließlich lesend. Es gibt keine Lager-MCP-Tools zum Anle ## JSON-RPC Das Interface unterstützt `initialize`, `notifications/initialized`, `tools/list` und `tools/call` gemäß dem bestehenden Marktmanagement-MCP-Transport. + +Bei `tools/list` ist `inputSchema.properties` für jedes Werkzeug immer ein JSON-Objekt; beim parameterlosen `erp_lager.list_products` ist es `{}`. diff --git a/modules/erp/lager/mcp.php b/modules/erp/lager/mcp.php index d10fc30..cbcfa29 100644 --- a/modules/erp/lager/mcp.php +++ b/modules/erp/lager/mcp.php @@ -34,7 +34,7 @@ function erp_lager_mcp_tools(): array [ 'name' => 'erp_lager.list_products', 'description' => 'Aktive ERP-Lagerprodukte zur Ermittlung der Produkt-IDs lesen', - 'inputSchema' => ['type' => 'object', 'properties' => []], + 'inputSchema' => ['type' => 'object', 'properties' => (object) []], ], [ 'name' => 'erp_lager.get_product', diff --git a/scripts/tests/erp_lager_mcp_tools_list_test.php b/scripts/tests/erp_lager_mcp_tools_list_test.php index a3e5154..22f57eb 100644 --- a/scripts/tests/erp_lager_mcp_tools_list_test.php +++ b/scripts/tests/erp_lager_mcp_tools_list_test.php @@ -20,4 +20,5 @@ assert_test($names === ['erp_lager.list_products', 'erp_lager.get_product'], 'Un $productTool = $tools[1]; assert_test($productTool['inputSchema']['required'] === ['product_id'], 'Product detail tool must require product_id'); assert_test($productTool['inputSchema']['properties']['product_id']['type'] === 'integer', 'Product ID must be an integer'); +assert_test(is_object($tools[0]['inputSchema']['properties']), 'List products properties must serialize as a JSON object'); fwrite(STDOUT, "erp_lager_mcp_tools_list_test: OK\n");