mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-09-07 18:45:26 +03:00
Added a focused, concise memory document about MCP tool description location. Simplified from 180 lines to 45 lines to capture only the essential information needed for future conversations. Key points documented: - MCP tool descriptions are defined in @mcp.tool() functions in __init__.py - NOT in *_TOOLS arrays in individual module files - Must restart GNS3 server to see description updates - Description requirements: explicit formats, ranges, and examples This replaces the verbose 180-line version with a practical 45-line guide focused on answering: 'Where should I write tool descriptions so the AI can see them?'
1.3 KiB
1.3 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| mcp-tool-description-location | Where to define MCP tool descriptions so AI can see them |
|
MCP Tool Description Location
Key Point
MCP tool descriptions are defined in @mcp.tool() decorator functions in __init__.py, NOT in the *_TOOLS arrays in individual module files.
Correct Location
File: gns3server/api/routes/mcp/__init__.py
Example:
@mcp.tool()
async def update_link(
project_id: Annotated[str, Field(description="UUID of the project")],
link_id: Annotated[str, Field(description="UUID of the link to update")],
**kwargs: Any,
) -> list[dict[str, Any]]:
"""Update a link's properties.
Put detailed descriptions here, especially for complex parameters.
Include format requirements, ranges, and examples.
"""
# implementation
Wrong Location
- ❌
LINK_TOOLSingns3server/api/routes/mcp/links.py - ❌
TEMPLATE_TOOLSingns3server/api/routes/mcp/templates.py
Activation
Must restart GNS3 server for description updates to take effect.
Description Requirements
- Be explicit about data formats (arrays vs single values)
- Include parameter ranges and constraints
- Provide usage examples
- Prevent common errors in the description itself