mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 14:01:15 +02:00
refactor: move MCP service from api/routes to agent package
MCP is an optional AI feature that already depends on agent.gns3_copilot (Gns3Connector, nornir/netmiko tools) and whose MCP_AVAILABLE feature flag lives in gns3server/agent. Moving it there collocates all AI features under one tree and removes AI code from the core REST routes. - git mv gns3server/api/routes/mcp -> gns3server/agent/mcp (no content changes) - api/server.py, core/tasks.py: update import paths - tests: tests/api/routes/mcp -> tests/agent/mcp, rewrite patch BASE and handler imports; fix MCP_DIR depth in test_tool_params.py - agent/__init__.py: probe the SDK via importlib.import_module so the top-level name "mcp" is not bound in the agent namespace (it would shadow the new gns3server.agent.mcp subpackage and break 'from gns3server.agent import mcp') - docs: update source file paths Verified: full suite 1567 passed; 82 MCP tools registered, SSE mounted at /v3/mcp/transport.
This commit is contained in:
21 files changed
+65
-62
No files matched your search
@@ -85,7 +85,10 @@ MCP_AVAILABLE = False
|
||||
|
||||
# Try to import MCP dependencies
|
||||
try:
|
||||
import mcp.server.fastmcp # noqa: F401 — test import only
|
||||
# Use importlib so the top-level SDK name "mcp" is not bound in this
|
||||
# namespace — it would shadow the gns3server.agent.mcp subpackage.
|
||||
import importlib
|
||||
importlib.import_module("mcp.server.fastmcp")
|
||||
MCP_AVAILABLE = True
|
||||
except ImportError:
|
||||
# MCP dependencies not installed, disable MCP feature
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -51,7 +51,7 @@ from gns3server.core import tasks
|
||||
from gns3server.agent import MCP_AVAILABLE
|
||||
|
||||
if MCP_AVAILABLE:
|
||||
from gns3server.api.routes import mcp
|
||||
from gns3server.agent import mcp
|
||||
_mcp_router = mcp.router
|
||||
else:
|
||||
from fastapi import APIRouter
|
||||
|
||||
@@ -97,7 +97,7 @@ async def startup(app: FastAPI) -> None:
|
||||
from gns3server.agent import MCP_AVAILABLE
|
||||
|
||||
if MCP_AVAILABLE:
|
||||
from gns3server.api.routes.mcp import set_mcp_server_ready
|
||||
from gns3server.agent.mcp import set_mcp_server_ready
|
||||
set_mcp_server_ready(True)
|
||||
log.info("GNS3 server startup completed")
|
||||
|
||||
|
||||
Reference in new issue
Block a user