Skip to main content
Glama
vedantparmar12

Azure Omni-Tool MCP Server

get_azure_context

Retrieve Azure environment data including subscriptions, resource groups, or custom KQL queries to analyze resources, with configurable caching for performance.

Instructions

Retrieves Azure environment context.

TYPES: subscriptions, resource_groups, resources, custom (KQL)

CACHING: 5min default, bypass_cache=true for fresh data

EXAMPLES:

  • Find VMs: custom_query = "Resources | where type == 'microsoft.compute/virtualmachines'"

  • Find by tag: custom_query = "Resources | where tags.env == 'prod'"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
query_typeYes
subscription_idNoOptional subscription scope
resource_groupNoOptional resource group filter
custom_queryNoKQL query for Resource Graph
bypass_cacheNoForce fresh data

Implementation Reference

  • Main handler function for get_azure_context tool. Dispatches to specific query handlers (subscriptions, resource_groups, resources, custom) based on input.query_type, handles caching, logging, auditing, and returns ContextResponse.
    export async function handleGetAzureContext(input: GetAzureContextInput): Promise<ContextResponse> {
        const { query_type } = input;
        const operator = getOperatorInfo();
        const audit = createAuditContext(`context:${query_type}`, 'low', 'query');
    
        logger.debug('Context query', { query_type, subscription: input.subscription_id, rg: input.resource_group });
    
        const handler = queryHandlers.get(query_type);
        if (!handler) {
            return { query_type, success: false, error: `Unknown query type: ${query_type}` };
        }
    
        const response = await handler(input);
        response.correlation_id = audit.correlationId;
        response.operator = operator;
    
        if (response.success) {
            await audit.logSuccess();
            logger.info('Context query succeeded', { query_type, count: response.count, cached: response.cached });
        } else {
            await audit.logFailure(response.error || 'Unknown');
            logger.warn('Context query failed', { query_type, error: response.error });
        }
    
        return response;
    }
  • Zod schema defining input validation for get_azure_context tool, including query_type (required), optional filters, custom_query for KQL, and cache bypass.
    export const GetAzureContextSchema = z.object({
        query_type: z.enum(['subscriptions', 'resource_groups', 'resources', 'custom']).describe('Type of context query'),
        subscription_id: z.string().optional().describe('Subscription to scope query'),
        resource_group: z.string().optional().describe('Resource group filter'),
        custom_query: z.string().optional().describe('KQL query for Resource Graph'),
        bypass_cache: z.boolean().optional().default(false).describe('Force fresh data'),
    });
  • src/index.ts:28-32 (registration)
    Tool registration in the toolRegistry Map, linking name 'get_azure_context' to its tool metadata, schema, and handler wrapper.
    ['get_azure_context', {
        tool: getAzureContextTool,
        schema: GetAzureContextSchema,
        handler: args => handleGetAzureContext(GetAzureContextSchema.parse(args))
    }],
  • Tool metadata object with name, detailed description, and JSON schema for MCP tool listing.
    export const getAzureContextTool = {
        name: 'get_azure_context',
        description: `Retrieves Azure environment context.
    
    TYPES: subscriptions, resource_groups, resources, custom (KQL)
    
    CACHING: 5min default, bypass_cache=true for fresh data
    
    EXAMPLES: 
    - Find VMs: custom_query = "Resources | where type == 'microsoft.compute/virtualmachines'"
    - Find by tag: custom_query = "Resources | where tags.env == 'prod'"`,
        inputSchema: {
            type: 'object',
            properties: {
                query_type: { type: 'string', enum: ['subscriptions', 'resource_groups', 'resources', 'custom'] },
                subscription_id: { type: 'string', description: 'Optional subscription scope' },
                resource_group: { type: 'string', description: 'Optional resource group filter' },
                custom_query: { type: 'string', description: 'KQL query for Resource Graph' },
                bypass_cache: { type: 'boolean', description: 'Force fresh data', default: false },
            },
            required: ['query_type'],
        },
    };

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other 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/vedantparmar12/Azure-_MCP'

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