Skip to main content
Glama
dhippley

Azure Topology Graph MCP Server

by dhippley

search_resources

Search Azure resources by name, type, resource group, location, or tags to quickly find and identify infrastructure components within your Azure environment.

Instructions

Search Azure resources by name, type, or other properties

Input Schema

NameRequiredDescriptionDefault
queryYesSearch query (searches name, type, resource group, location, tags)
resourceTypeNoOptional filter by resource type

Input Schema (JSON Schema)

{ "properties": { "query": { "description": "Search query (searches name, type, resource group, location, tags)", "type": "string" }, "resourceType": { "description": "Optional filter by resource type", "type": "string" } }, "required": [ "query" ], "type": "object" }

Implementation Reference

  • Core implementation of the search_resources tool. Filters the cached topology graph nodes by matching query against name, type, resourceGroup, location, and tags. Supports optional resourceType filter.
    async function searchResources(query: string, resourceType?: string): Promise<GraphNode[]> { const topology = await buildTopology(); const searchLower = query.toLowerCase(); return topology.nodes.filter(node => { const matchesQuery = node.name.toLowerCase().includes(searchLower) || node.type.toLowerCase().includes(searchLower) || node.resourceGroup.toLowerCase().includes(searchLower) || node.location.toLowerCase().includes(searchLower) || (node.tags && Object.values(node.tags).some(tag => tag.toLowerCase().includes(searchLower) )); const matchesType = !resourceType || node.type.toLowerCase().includes(resourceType.toLowerCase()); return matchesQuery && matchesType; }); }
  • Input schema definition for the search_resources tool, specifying query as required string and optional resourceType.
    inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query (searches name, type, resource group, location, tags)', }, resourceType: { type: 'string', description: 'Optional filter by resource type', }, }, required: ['query'], }, },
  • src/server.ts:339-356 (registration)
    Registration of the search_resources tool in the ListTools response, including name, description, and input schema.
    { name: 'search_resources', description: 'Search Azure resources by name, type, or other properties', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query (searches name, type, resource group, location, tags)', }, resourceType: { type: 'string', description: 'Optional filter by resource type', }, }, required: ['query'], }, },
  • src/server.ts:436-450 (registration)
    Dispatch handler in CallToolRequest that matches tool name, parses arguments, calls searchResources, and formats the text response.
    case 'search_resources': { const { query, resourceType } = args as { query: string; resourceType?: string }; const results = await searchResources(query, resourceType); return { content: [ { type: 'text', text: `Found ${results.length} resources matching "${query}":\n\n` + results.map(r => `• ${r.name} (${r.type})\n Resource Group: ${r.resourceGroup}\n Location: ${r.location}\n ID: ${r.id}` ).join('\n\n'), }, ], }; }

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/dhippley/azure_mcp_graph'

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