Skip to main content
Glama

Nautobot MCP Server

by gt732
start_mcp_server.py2.45 kB
from django.core.management.base import BaseCommand from mcp.server.fastmcp import FastMCP import os from django.conf import settings from nautobot_mcp.tools.registry import ( register_all_tools_with_mcp, discover_tools_from_directory, ) from nautobot_mcp.utilities.logger import get_logger logger = get_logger("management.commands.start_mcp_server") class Command(BaseCommand): help = "Start the MCP server in production mode" def add_arguments(self, parser): parser.add_argument( "--port", type=int, default=settings.PLUGINS_CONFIG.get("nautobot_mcp", {}).get( "MCP_PORT", 8005 ), help="Port to run the server on", ) def _get_custom_tools_dir(self): """Get the custom tools directory from Nautobot settings.""" plugin_settings = settings.PLUGINS_CONFIG.get("nautobot_mcp", {}) custom_tools_dir = plugin_settings.get("MCP_CUSTOM_TOOLS_DIR") if custom_tools_dir and os.path.isdir(custom_tools_dir): logger.info(f"Found valid custom tools directory: {custom_tools_dir}") return custom_tools_dir elif custom_tools_dir: logger.warning( f"Configured MCP_CUSTOM_TOOLS_DIR '{custom_tools_dir}' is not a valid directory" ) return None def handle(self, *args, **kwargs): host = kwargs.get( "host", settings.PLUGINS_CONFIG.get("nautobot_mcp", {}).get( "MCP_HOST", "127.0.0.1" ), ) port = kwargs.get( "port", settings.PLUGINS_CONFIG.get("nautobot_mcp", {}).get("MCP_PORT", 8005), ) load_core_tools = settings.PLUGINS_CONFIG.get("nautobot_mcp", {}).get( "MCP_LOAD_CORE_TOOLS", False ) custom_tools_dir = self._get_custom_tools_dir() mcp = FastMCP("Nautobot MCP Server", host=host, port=port) logger.info(f"Starting MCP server on http://{host}:{port}") if load_core_tools: logger.info("Registering core tools with MCP server") register_all_tools_with_mcp(mcp) if custom_tools_dir: logger.info(f"Registering custom tools from: {custom_tools_dir}") discover_tools_from_directory(mcp, custom_tools_dir) logger.info("MCP server initialized, starting transport") mcp.run(transport="sse")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gt732/nautobot-app-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server