azure-mcp-pilot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MOCK_MODE | No | Whether to run in mock mode. Set to 'false' to audit real tenant data. Default is 'true' (mock). | true |
| SANITIZE_FOR_LLM | No | Whether to mask resource names, resource groups, subscription IDs, and IPs before content reaches the LLM. Set to 'false' to disable sanitization. | true |
| AZURE_SUBSCRIPTIONS | No | Comma-separated list of Azure subscription IDs to scope queries. If empty, the project automatically discovers enabled subscriptions for the authenticated identity. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_environment_summaryA | Get a read-only high-level snapshot of the accessible Azure environment. |
| get_subscriptions_countA | Retorna exclusivamente a quantidade de subscriptions Azure visíveis para a identidade autenticada. Use esta ferramenta para perguntas como:
NÃO use search_official_guidance para descobrir quantidade de subscriptions. |
| get_resource_groups_countA | Retorna a quantidade de Resource Groups visíveis no escopo autenticado. |
| list_resource_groupsC | Lista Resource Groups com filtros read-only por nome. |
| get_identity_access_summaryA | Retorna resumo de identidade e RBAC:
|
| list_usersC | Lista usuários do Entra ID visíveis para a identidade autenticada. |
| list_users_with_direct_permissionsC | Lista usuários com role assignments diretos no Azure RBAC. |
| list_disabled_users_with_active_rolesA | Lista usuários desabilitados no Entra ID que ainda possuem role assignments diretos ativos. |
| list_entra_usersB | Lista usuários do Microsoft Entra ID com nome, UPN e e-mail. |
| list_azure_role_assignmentsB | Lista role assignments Azure RBAC (User, Group, Service Principal e Managed Identity). |
| list_privileged_azure_role_assignmentsA | Lista role assignments privilegiados em Azure RBAC (Owner, User Access Administrator, Contributor). |
| get_role_risk_scoreC | Calcula score de risco (0-100) para uma role privilegiada de Entra ID ou Azure RBAC. |
| list_agent_identitiesC | Lista inventário de Agent Identities com owner, blueprint, permissões e risco. |
| get_agent_relationshipsB | Resolve Agent → Owners → Identity → Blueprint → Graph Permissions → Azure RBAC. |
| get_agents_by_ownerB | Lista Agents sob responsabilidade de um owner (UPN, nome ou objectId). |
| get_user_effective_azure_accessA | Resolve acesso efetivo Azure RBAC de um usuário (direto + herdado via grupos transitive). |
| list_orphan_azure_role_assignmentsA | Lista role assignments órfãos (principal não resolvido no tenant visível). |
| list_privilege_timeline_eventsC | Lista eventos de ganho/perda/ativação de privilégios no período informado. |
| get_identity_privilege_timelineA | Retorna timeline de privilégios para uma identidade específica (UPN, nome ou objectId). |
| summarize_privilege_timelineB | Resumo da timeline de privilégios (ganhos, revogações, ativações e anomalias). |
| export_privilege_timeline_reportC | Gera relatório de timeline com top grants/revokes por identidade, role e escopo. |
| timeline_natural_language_queryC | Interpreta perguntas de auditoria temporal de privilégios em linguagem natural. |
| agent_natural_language_queryC | Interpreta perguntas sobre Agent Identities em linguagem natural. |
| run_agent_assessmentA | Executa assessment específico de Agent Identities e retorna ranking de risco. |
| list_deny_assignmentsC | Lista deny assignments do Azure. |
| list_applications_without_ownersB | Lista aplicações sem owner definido no Entra ID. |
| list_application_secrets_expiringA | Lista secrets expirados ou próximos da expiração em aplicações do Entra ID. |
| list_graph_critical_application_permissionsB | Lista aplicações/service principals com Microsoft Graph Application Permissions críticas. |
| list_pim_role_statesB | Lista atribuições privilegiadas classificadas por estado: Active, Eligible e Permanent. |
| get_pim_state_summaryA | Retorna comparativo de estados PIM (Active vs Eligible vs Permanent). |
| get_license_postureA | Cruza as licenças assinadas do tenant com o uso real dos recursos de segurança que elas habilitam. Use para perguntas como:
Distingue explicitamente 'não licenciado', 'licenciado e não configurado' e 'licenciado mas não avaliado', porque as três levam a ações diferentes. |
| get_tenant_licensesA | Lista os SKUs licenciados do tenant, com unidades habilitadas, consumidas e ociosas, além dos planos de serviço ativos. |
| pim_natural_language_queryB | Interpreta perguntas de PIM em linguagem natural e retorna resposta com resumo e detalhes. |
| iam_natural_language_queryA | Interpreta uma pergunta de IAM em linguagem natural e responde com correlação Entra + Azure. Sempre retorna resumo e detalhes compreensíveis, sem depender de frase exata. |
| run_iam_assessmentB | Executa um IAM Assessment no ambiente e retorna riscos principais e plano de remediação. |
| run_enterprise_identity_auditA | Executa auditoria IAM enterprise consolidada (Entra + Azure + subscriptions + management groups). |
| get_management_group_inventoryB | Retorna inventário de Management Groups visíveis para auditoria de governança. |
| get_subscription_direct_access_summaryB | Resumo de role assignments diretos em escopo de subscription (inclui privilegiados). |
| list_resourcesB | List Azure resources using controlled read-only filters. Use full Azure resource type when filtering, e.g. microsoft.compute/virtualmachines. |
| list_public_ip_resourcesA | List Public IP resources. This does not prove that a workload is actually internet-exposed. |
| identity_360A | Identity 360: visão completa de uma identidade — quem é, a que possui acesso (Entra + Azure, direto/grupo/PIM), como recebeu, ownership e risco (blast radius, findings). Aceita UPN, displayName ou objectId. |
| get_user_authentication_methodsB | Retorna métodos de autenticação e status de MFA/passwordless de um usuário. |
| get_authentication_methods_summaryB | Resumo de registro de MFA e capacidade passwordless do tenant. |
| list_users_without_mfaC | Lista usuários sem MFA registrado. |
| assess_privileged_mfaA | Assessment de MFA para usuários privilegiados (sem MFA ou métodos fracos). |
| get_authentication_strength_summaryA | Resumo enterprise de força de autenticação (forte/misto/fraco) e adoção de passkey/FIDO2. |
| list_users_with_weak_authenticationB | Lista usuários com métodos fracos registrados (sms/voice/email/password), com evidência técnica. |
| list_users_with_passkeyA | Lista usuários com passkey/FIDO2 registrado. |
| get_owned_objectsC | Ownership 360: objetos (Groups, Applications, Service Principals, Agents, Blueprints) sob responsabilidade de um usuário. |
| list_objects_without_ownerB | Lista objetos sem owner (Groups, Applications, Service Principals, Agents, Blueprints). |
| detect_toxic_combinationsA | Detecta toxic combinations / violações de Separation of Duties com evidência. |
| compute_identity_blast_radiusB | Estima o blast radius (alcance) de uma identidade (subscriptions, management groups, capacidade de conceder acesso). |
| list_top_blast_radiusC | Ranking de identidades por maior blast radius. |
| search_official_guidanceA | Return curated official Microsoft Learn references relevant to an Azure topic or best-practice question. |
| graph_discover_capabilitiesA | Capability discovery de identidade. Use ANTES de consultar quando não souber qual domínio/endpoint atende a pergunta.
Fontes possíveis: microsoft_graph (identidade/diretório), azure_resource_graph / azure_management / azure_authorization (recursos e Azure RBAC). |
| graph_answer_identity_questionA | Interpreta uma pergunta de identidade em linguagem natural, escolhe a capability correta e executa a consulta de forma validada. Use para perguntas abertas como:
Respeita a separação de fontes: Microsoft Graph para identidade/diretório e APIs Azure para Azure RBAC/recursos. Retorna erro explícito quando a capability não existe ou quando falta permissão. Nunca inventa chamadas Graph. |
| graph_listA | Lista objetos de uma capability catalogada (operação 'list'). 'capability_id' precisa existir no registry (use graph_discover_capabilities). 'filter' aceita apenas campos declarados como suportados pela capability. Endpoints arbitrários são rejeitados. |
| graph_getB | Obtém um objeto específico de uma capability catalogada (operação 'get'). 'id' deve ser um GUID ou identificador simples; valores fora desse padrão são rejeitados. |
| graph_queryB | Executa consulta parametrizada em fontes que aceitam query (ex.: Azure Resource Graph). Somente leitura: operadores KQL de escrita ou de acesso externo são bloqueados. 'scope' é validado contra o formato de escopo Azure. |
| graph_relationshipB | Consulta relacionamentos de um objeto de diretório (membros, owners, membership transitiva, app role assignments de um principal). Exemplos de capability_id:
|
| graph_permissionsA | Retorna as permissões Microsoft Graph / Azure necessárias para uma consulta, incluindo suporte a delegated e application permission e requisito de licença. Não executa consulta: serve para validar viabilidade antes de consultar. |
| graph_role_assignmentsA | Consulta atribuições de privilégio mantendo as fontes separadas:
Não assume que Microsoft Graph cobre Azure RBAC. |
| graph_directory_objectsA | Coleta objetos de diretório de um ou mais domínios e correlaciona a mesma identidade entre eles, preservando a fonte de cada evidência. 'domains' aceita lista separada por vírgula (ex.: "users,service_principals,directory_roles"). Se vazio, os domínios são inferidos da pergunta. |
| list_application_provenanceA | Diferencia app registrations criadas por usuários no seu tenant das aplicações nativas da Microsoft (first-party) e de apps de terceiros consentidos. Classificação baseada em appOwnerOrganizationId (sinal autoritativo do diretório), não em heurística de nome. 'provenance' aceita: all, tenant (criadas no seu tenant), microsoft (nativas), thirdparty (terceiros), managedidentity. Use para perguntas como:
|
| summarize_application_provenanceA | Resumo executivo da procedência das aplicações do tenant: quantas estão sob sua governança (criadas no tenant) versus pré-provisionadas pela Microsoft, com percentuais e foco de governança. |
| graph_assessmentA | Executa assessment de identidade baseado no capability registry, declarando explicitamente cobertura EVALUATED / PARTIAL / NOT_EVALUATED por domínio. 'scope' aceita: identity, directory, privileged, workload, azure. Nunca reporta NOT_EVALUATED como zero. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 66 tools
Several tools have unclear boundaries, such as list_entra_users vs list_users, list_azure_role_assignments vs graph_role_assignments, and the multiple natural-language query and assessment tools. An agent could easily choose the wrong tool for user-listing, role-assignment, or timeline questions. A few tools like identity_360 and detect_toxic_combinations are distinct, but the overall set is highly ambiguous.
Most tools follow readable snake_case list_/get_/run_ naming, but the set mixes conventions with names like identity_360, graph_assessment, and noun-first NL query tools such as pim_natural_language_query and agent_natural_language_query. The graph_* prefix is inconsistently combined with verbs, making the pattern predictable only part of the time.
66 tools is an extreme number for an identity security audit server, and many tools are near-duplicates or could be consolidated into parameterized operations. This far exceeds the 25+ threshold and creates a heavy, unwieldy tool surface.
The surface is quite comprehensive for read-only identity governance: it covers users, RBAC, PIM, MFA, licenses, agent identities, blast radius, object ownership, provenance, and Graph/API access. Since this is an audit-focused server, missing create/update/delete is acceptable; minor gaps exist around detailed sign-in/audit log exploration and remediation actions.