Skip to main content
Glama
aiopnet

MCP Nautobot Server

by aiopnet

search_ip_addresses

Search and retrieve IP addresses and related details from the MCP Nautobot Server using customizable query strings. Specify search criteria and limit results for efficient network data management.

Instructions

Search IP addresses using a general query string

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 50, max: 500)
queryYesSearch query (can match IP address, description, etc.)

Implementation Reference

  • MCP tool handler for 'search_ip_addresses': extracts query and limit args, calls NautobotClient.search_ip_addresses(), formats and returns JSON results.
    elif name == "search_ip_addresses": query = args.get("query") if not query: raise ValueError("query is required") limit = min(args.get("limit", 50), 500) # Cap at 500 for search logger.info(f"Searching IP addresses with query: {query}") # Search IP addresses ip_addresses = await client.search_ip_addresses(query, limit) # Format results result = { "query": query, "count": len(ip_addresses), "results": [ip.model_dump() for ip in ip_addresses] } return [ types.TextContent( type="text", text=f"Found {len(ip_addresses)} IP addresses matching '{query}':\n\n" f"```json\n{result}\n```" ) ]
  • Registers the 'search_ip_addresses' tool with MCP server in list_tools(), including name, description, and input schema.
    name="search_ip_addresses", description="Search IP addresses using a general query string", inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "Search query (can match IP address, description, etc.)" }, "limit": { "type": "integer", "description": "Maximum number of results to return (default: 50, max: 500)", "default": 50, "minimum": 1, "maximum": 500 } }, "required": ["query"], "additionalProperties": False }, ),
  • Input schema definition for the tool: requires 'query' string, optional 'limit' integer (1-500, default 50).
    inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "Search query (can match IP address, description, etc.)" }, "limit": { "type": "integer", "description": "Maximum number of results to return (default: 50, max: 500)", "default": 50, "minimum": 1, "maximum": 500 } }, "required": ["query"], "additionalProperties": False },
  • Core implementation: performs GET request to Nautobot /ipam/ip-addresses/ with q=query and limit params, parses results into IPAddress models.
    async def search_ip_addresses( self, query: str, limit: int = 50 ) -> List[IPAddress]: """ Search IP addresses using a general query. Args: query: Search query (can be IP, description, etc.) limit: Maximum number of results Returns: List of matching IPAddress objects """ params: Dict[str, Any] = { "q": query, "limit": limit, } try: response = await self._make_request("GET", "/ipam/ip-addresses/", params) ip_addresses = [] for item in response.get("results", []): try: ip_addresses.append(IPAddress(**item)) except Exception as e: logger.warning(f"Failed to parse IP address data: {e}") continue logger.info(f"Found {len(ip_addresses)} IP addresses matching '{query}'") return ip_addresses except Exception as e: logger.error(f"Failed to search IP addresses: {e}") raise

Other Tools

Related Tools

Latest Blog Posts

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/aiopnet/mcp-nautobot'

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