From d0960812aa34a511a0117e2fa3acb6c7bda7ffe6 Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Thu, 11 Jun 2026 01:35:14 +0800 Subject: [PATCH] docs: Clarify symbol_delete limitations (built-in vs custom symbols) --- gns3server/api/routes/mcp/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gns3server/api/routes/mcp/__init__.py b/gns3server/api/routes/mcp/__init__.py index bb226c304..34b889483 100644 --- a/gns3server/api/routes/mcp/__init__.py +++ b/gns3server/api/routes/mcp/__init__.py @@ -1101,9 +1101,14 @@ async def symbol_upload( @mcp.tool() async def symbol_delete( - symbol_id: Annotated[str, Field(description="Symbol ID to delete")], + symbol_id: Annotated[str, Field(description="Symbol ID to delete (e.g. ':/symbols/my_custom_symbol.svg'). Use symbol_list to get existing IDs.")], ) -> list[dict[str, Any]]: - """Delete a custom symbol from the server.""" + """Delete a custom symbol from the server. + + NOTE: Only custom (user-uploaded) symbols can be deleted. + Built-in symbols (starting with ':/symbols/') will be rejected with 403. + Use symbol_list to see which symbols are available and their IDs. + """ return await asyncio.to_thread(_run_handler_sync, delete_symbol_handler, { "symbol_id": symbol_id, })