Servidor MCP
Permita que um assistente de IA consulte sua frota de dispositivos e políticas e, opcionalmente, envie comandos para um dispositivo por vez, usando o Sign in with Nomid ou uma chave de API da Nomid.
O que o servidor MCP faz
O Model Context Protocol (MCP) é um padrão aberto que permite que assistentes de IA chamem ferramentas em outros sistemas. O servidor MCP da Nomid permite que um assistente como claude.ai, ChatGPT, Claude Code, Codex ou Cursor responda a perguntas sobre sua frota em linguagem natural — por exemplo, quantos dispositivos usam uma política ou quais dispositivos não são vistos desde uma determinada data —, sem que ninguém precise abrir o portal. Ele também pode diagnosticar por que um dispositivo não pode ser acessado remotamente, fornecer links para um dispositivo, política ou aplicativo no portal e consultar os planos públicos e a tabela de preços da Nomid. Com uma permissão adicional, ele pode enviar comandos para um dispositivo por vez, como bloquear, reiniciar ou alterar sua política, ou criar códigos QR de provisionamento. Uma permissão separada autoriza comandos destrutivos, como wipe (limpeza remota).
Endpoint e transporte
POST https://api.nomid.tech/emm/api/mcp O servidor usa MCP Streamable HTTP no modo stateless. Cada chamada JSON-RPC é uma requisição HTTPS independente, portanto não há sessão para manter ativa nem fluxo de eventos para manter aberto.
Conecte-se com o Sign in with Nomid (OAuth) ou com uma chave de API. Envie uma chave de API como um bearer token ou no cabeçalho X-API-Key. A maioria dos clientes MCP suporta apenas o formato bearer. Uma chave ou token ausente, inválido ou expirado retorna 401.
A chave de API ou a conexão do Sign in with Nomid define a empresa. Nenhuma ferramenta aceita um argumento de tenant ou empresa, e uma conexão só pode visualizar os dispositivos e políticas da sua própria empresa.
Sign in with Nomid
Sign in with Nomid é o OAuth para clientes MCP, aberto a todas as empresas. Em vez de usar uma chave, o usuário faz login no Nomid no navegador e aprova o que o assistente pode fazer. O assistente então atua como esse usuário nessa empresa e visualiza apenas os dispositivos e políticas que a função do usuário e o acesso a políticas permitem.
O claude.ai, o ChatGPT e o Claude Code conectam-se com Sign in with Nomid: adicione o URL do endpoint acima como um conector personalizado ou servidor MCP, sem chave, e faça login quando o cliente solicitar. Os exemplos do Codex e do Cursor abaixo usam uma chave de API.
No Claude Code, adicione o servidor sem um cabeçalho, depois execute /mcp no Claude Code e selecione o servidor para fazer login.
claude mcp add --transport http nomid-mdm https://api.nomid.tech/emm/api/mcp Uma conexão carrega escopos OAuth, que substituem as permissões da chave de API.
| Escopo | O que permite |
|---|---|
| mcp:read | As ferramentas de leitura. A função do usuário precisa de permissão para visualizar dispositivos, políticas ou a biblioteca; cada ferramenta ainda precisa da sua própria. |
| mcp:devices:command | As ferramentas de comando. Requer a configuração de comandos de dispositivo da empresa e um usuário que tenha permissão para enviar comandos de dispositivo. |
| mcp:devices:destructive | As ferramentas de comando destrutivo. Requer a configuração de comandos destrutivos da empresa e um usuário que tenha permissão para enviar comandos de dispositivo. |
| mcp:provisioning | create_provisioning_qr_code. Requer a configuração de provisionamento da empresa e um usuário que tenha permissão para provisionar dispositivos e visualizar políticas. |
| mcp:policies:write | As ferramentas de alteração de políticas. Requer a configuração de alterações de políticas da empresa e um usuário que tenha permissão para editar e visualizar políticas. A concessão dele também concede mcp:read. |
Os clientes solicitam mcp:read, mcp:devices:command e mcp:provisioning por padrão. mcp:devices:destructive e mcp:policies:write nunca são solicitados automaticamente: o cliente precisa solicitá-los explicitamente.
Na página de consentimento, o usuário pode desmarcar escopos, e o Nomid descarta qualquer escopo que a função do usuário ou as configurações de acesso do agente de IA da empresa não permitam. Aprovar um escopo de comando, destrutivo ou de alteração de política exige um login recente.
Cada solicitação verifica a conexão novamente. Se o usuário perder o acesso à empresa ou às permissões de função necessárias para uma ferramenta, ou se a empresa desativar o acesso do agente de IA, as solicitações serão recusadas enquanto durar essa condição.
Criar uma chave de API
O servidor MCP usa as mesmas chaves de API que a API REST. Crie uma chave dedicada para cada assistente para poder revogá-la sem afetar outras integrações.
- 1
No portal da Nomid, abra Configurações e selecione a aba API.
- 2
Clique em Criar chave de API e insira um nome que identifique o assistente, por exemplo, Claude Code somente leitura.
- 3
Escolha as permissões descritas abaixo. Se quiser que a chave pare de funcionar em uma data específica, defina uma data de expiração.
- 4
Copie a chave quando ela for exibida. Ela é mostrada apenas uma vez.
Chave somente leitura
Habilite as permissões de leitura de dispositivos e políticas (DEVICES_READ e POLICIES_READ). Isso é suficiente para todas as ferramentas de leitura e é o ponto de partida recomendado.
Chave de comando
Para permitir que o assistente envie comandos para dispositivos, habilite também a permissão de comando de dispositivo (DEVICES_COMMAND). Uma chave de comando também deve ter DEVICES_READ, e a alteração da política de um dispositivo também exige POLICIES_READ. Apenas um usuário do portal autorizado a enviar comandos para dispositivos e com acesso a todas as políticas pode criar uma chave com essa permissão.
Chave de comando destrutivo
Para permitir que o assistente limpe um dispositivo, redefina ou altere o bloqueio de tela ou renuncie à propriedade, habilite a permissão de comando de dispositivo destrutivo (DEVICES_COMMAND_DESTRUCTIVE) com DEVICES_READ. A empresa também deve ativar comandos destrutivos em acesso do agente de IA no portal. As mesmas regras de usuário do portal se aplicam a uma chave de comando.
Chave de provisionamento
Para permitir que o assistente crie códigos QR de provisionamento, habilite a permissão de provisionamento (PROVISIONING) com POLICIES_READ. Apenas um usuário do portal que tenha permissão para provisionar dispositivos e acesso a todas as políticas pode criar uma chave com essa permissão.
Conecte seu assistente
Armazene a chave em uma variável de ambiente chamada NOMID_API_KEY e nunca faça commit dela em um repositório. A URL em cada exemplo é o endpoint de produção.
Claude Code
Execute isto uma vez no seu shell. Seu shell expande a variável quando você executa o comando, e o Claude Code armazena a chave resultante em texto simples em seu próprio arquivo de configuração. Use uma chave dedicada somente leitura para isso.
claude mcp add --transport http nomid-mdm https://api.nomid.tech/emm/api/mcp \
--header "Authorization: Bearer ${NOMID_API_KEY}" Codex
Adicione isto ao ~/.codex/config.toml. O Codex lê o token a partir da variável de ambiente nomeada. Ele não expande variáveis escritas dentro do arquivo.
[mcp_servers.nomid]
url = "https://api.nomid.tech/emm/api/mcp"
bearer_token_env_var = "NOMID_API_KEY" Cursor
Adicione isto ao .cursor/mcp.json. O Cursor expande variáveis de ambiente no valor do cabeçalho, como mostrado.
{
"mcpServers": {
"nomid-mdm": {
"url": "https://api.nomid.tech/emm/api/mcp",
"headers": {
"Authorization": "Bearer ${env:NOMID_API_KEY}"
}
}
}
} Outros clientes
Qualquer cliente MCP que ofereça suporte a servidores HTTP Streamable com cabeçalhos personalizados pode se conectar com a URL do endpoint e um cabeçalho Authorization: Bearer.
Ferramentas disponíveis
Cada ferramenta é limitada ao escopo da empresa da chave ou conexão. Um dispositivo é identificado pelo seu assetId, que é o pathName retornado por search_devices e get_device. Uma política é identificada pelo seu policyId, que é o pathName retornado por list_policies.
Ferramentas de leitura
Ferramentas de leitura nunca alteram nada. A maioria retorna os mesmos dados que os endpoints REST correspondentes. diagnose_device, get_portal_link, search_nomid_site e o argumento query de search_devices não têm equivalente REST.
| Ferramenta | Permissão necessária | O que faz |
|---|---|---|
| search_devices | DEVICES_READ | Pesquisa dispositivos com filtros opcionais de status, policy e lastSeenBefore. Os resultados são paginados: page começa em 0 e size tem como padrão 10, com um máximo de 25. Para encontrar um dispositivo que o usuário nomear, passe apenas query (2 a 100 caracteres), que faz a correspondência com nome, número de série, IMEI, modelo ou tag. Não pode ser combinado com status, policy, lastSeenBefore ou page. Retorna até size melhores correspondências, cada uma com seu pathName e matchedField, e truncated informa se houve mais correspondências. |
| count_devices | DEVICES_READ | Conta dispositivos com os mesmos filtros opcionais de status, policy e lastSeenBefore. |
| get_device | DEVICES_READ | Detalhes completos de um dispositivo, incluindo nível de bateria, totais de memória e armazenamento de hardware e motivos de não conformidade com a política. |
| get_fleet_summary | DEVICES_READ | Números agregados da frota: total de dispositivos, um detalhamento por status e um resumo da postura de segurança. Nunca retorna uma lista de dispositivos. |
| list_device_commands | DEVICES_READ | Os comandos mais recentes enviados para um dispositivo, os mais recentes primeiro, com type, status, carimbos de data/hora e um código de resultado curto. limit tem como padrão 20 e é limitado a 50. Cargas úteis de comando (payloads) nunca são retornadas. |
| list_policies | POLICIES_READ | Lista políticas. Retorna apenas uma visão geral, sem detalhes de configuração. |
| get_policy | POLICIES_READ | Visão geral de uma política. |
| diagnose_device | DEVICES_READ | Diagnostica uma área com problemas em um dispositivo, considerando assetId e area. A única área hoje é remote_access: por que o dispositivo não pode ser acessado ou controlado remotamente, a partir de sua sincronização e status, se sua política inclui o NomidRemote, se o NomidRemote está instalado, atualizado e se comunicando, e suas solicitações e sessões recentes de acesso remoto. Retorna findings (causas prováveis, com as mais prováveis primeiro, cada uma com evidências e uma próxima etapa) e unknowns (o que não pôde ser determinado, para perguntar ao usuário). Nunca retorna credenciais, chaves ou IDs de acesso remoto. |
| get_portal_link | DEVICES_READ / POLICIES_READ | O URL do portal Nomid de um dispositivo (kind asset, por assetId), uma política (kind policy, por policyId) ou um app da biblioteca (kind app, por nome do pacote). Um dispositivo precisa de DEVICES_READ; uma política ou app precisa de POLICIES_READ. Um objeto que não existe na empresa retorna um erro de ferramenta. O link apenas abre a página: o portal continua aplicando as permissões do próprio usuário autenticado. |
| search_nomid_site | DEVICES_READ / POLICIES_READ | Pesquise no site público do Nomid sobre planos e preços: os planos e seus limites de dispositivos, preços de tabela por dispositivo Android e VR em USD, EUR e BRL, o que cada plano inclui e as perguntas frequentes sobre preços. locale é opcional: en, es ou pt. Retorna até 5 trechos com o URL da página correspondente. Estes são preços públicos de tabela, não o contrato ou fatura da própria empresa. Qualquer permissão de leitura é suficiente. |
Ferramentas de comando
Ferramentas de comando atuam em exatamente um dispositivo físico por chamada. Não há opção em lote. Cada ferramenta precisa de DEVICES_COMMAND, e change_device_policy também precisa de POLICIES_READ.
| Ferramenta | Permissão necessária | O que faz |
|---|---|---|
| lock_device | DEVICES_COMMAND + DEVICES_READ | Bloqueie a tela do dispositivo imediatamente. O usuário pode desbloqueá-la normalmente. |
| start_lost_mode | DEVICES_COMMAND + DEVICES_READ | Bloqueie o dispositivo e exiba uma mensagem, com detalhes de contato opcionais, na tela de bloqueio. message é obrigatório e pode ter até 4096 caracteres. phoneNumber, email, streetAddress e organization são opcionais. |
| stop_lost_mode | DEVICES_COMMAND + DEVICES_READ | Encerre o modo perdido. Nada acontece e nenhum erro é retornado se o dispositivo não estiver no modo perdido. |
| send_device_message | DEVICES_COMMAND + DEVICES_READ | Exiba uma notificação push de texto simples no dispositivo. title (até 60 caracteres) e body (até 500 caracteres) são obrigatórios. Enviar a mesma mensagem novamente exibe uma segunda notificação. |
| request_status_report | DEVICES_COMMAND + DEVICES_READ | Solicite ao dispositivo o envio de um novo relatório de status agora. O relatório chega mais tarde: leia-o com get_device. |
| force_location_update | DEVICES_COMMAND + DEVICES_READ | Solicite ao dispositivo que informe sua localização atual agora. A localização chega mais tarde: leia-a com get_device. |
| sync_policy | DEVICES_COMMAND + DEVICES_READ | Envie ao dispositivo sua política atual novamente. Apenas dispositivos gerenciados pelo agente Nomid (AOSP). Dispositivos Android Management recebem alterações de política automaticamente. |
| reboot_device | DEVICES_COMMAND + DEVICES_READ | Reinicie o dispositivo agora. Quem o estiver usando será interrompido, e o trabalho não salvo poderá ser perdido. |
| shutdown_device | DEVICES_COMMAND + DEVICES_READ | Desligue o dispositivo agora. Ele não pode ser ligado novamente de forma remota. Apenas dispositivos gerenciados pelo agente Nomid (AOSP). |
| launch_app | DEVICES_COMMAND + DEVICES_READ | Abra um app instalado no dispositivo pelo packageName. Apenas dispositivos gerenciados pelo agente Nomid (AOSP). |
| clear_app_data | DEVICES_COMMAND + DEVICES_READ | Exclua todos os dados dos apps em packageNames (1 a 20 nomes de pacote), como se tivessem acabado de ser instalados. Isso não pode ser desfeito. Apenas dispositivos Android Management. |
| change_device_policy | DEVICES_COMMAND + DEVICES_READ + POLICIES_READ | Mova o dispositivo para outra política da empresa, indicada por policyId. Tudo o que apenas a política atual tinha é removido. Falha se o dispositivo já usar essa política. Também precisa de POLICIES_READ. |
Ferramentas de comando destrutivo
| Ferramenta | Permissão necessária | O que faz |
|---|---|---|
| wipe_device | DEVICES_COMMAND_DESTRUCTIVE + DEVICES_READ | Remova o dispositivo do gerenciamento e apague seus dados gerenciados. Um dispositivo de propriedade da empresa é restaurado para as configurações de fábrica: todos os aplicativos e dados nele são apagados. Em um dispositivo de propriedade pessoal com perfil de trabalho, apenas o perfil de trabalho e seus aplicativos e dados são removidos; os aplicativos e dados pessoais permanecem. Irreversível. |
| reset_screen_lock | DEVICES_COMMAND_DESTRUCTIVE + DEVICES_READ | Remova o bloqueio de tela do dispositivo (PIN, padrão ou senha), para que ele possa ser desbloqueado sem um. Apenas dispositivos Android Management. |
| change_screen_lock_password | DEVICES_COMMAND_DESTRUCTIVE + DEVICES_READ | Defina uma nova senha de bloqueio de tela, informada como newPassword (4 a 128 caracteres, sem espaços no início ou no fim). O dispositivo é bloqueado e apenas a nova senha o desbloqueia. A senha nunca é armazenada, retornada ou registrada. Apenas dispositivos Android Management. |
| relinquish_ownership | DEVICES_COMMAND_DESTRUCTIVE + DEVICES_READ | Libere um dispositivo de propriedade da empresa para o seu usuário. O perfil de trabalho e seus dados são removidos, e o dispositivo não é mais gerenciado. Irreversível. |
Clientes MCP que se conectam com o Sign in with Nomid em vez de uma chave de API precisam do escopo mcp:devices:destructive para essas ferramentas, e mcp:devices:command para as ferramentas de comando.
Quais dispositivos podem receber comandos
- Apenas dispositivos inscritos podem receber comandos (status ACTIVE, INACTIVE ou SYNCHRONIZING). Ativos excluídos, reprovisionados e desinscritos são rejeitados.
- Alguns comandos funcionam apenas em um tipo de dispositivo. Lock, lost mode, clear_app_data, reset_screen_lock e change_screen_lock_password precisam de um dispositivo Android Management (gerenciado pelo Google). sync_policy, shutdown_device e launch_app precisam de um dispositivo gerenciado pelo agente Nomid (AOSP). Outros dispositivos recebem um erro de ferramenta.
- Uma mensagem é uma notificação push para o agente Nomid no dispositivo, portanto o dispositivo precisa de um token push registrado.
- Um ativo que pertence a outra empresa se comporta exatamente como um ativo que não existe.
Não disponível via MCP ou API REST: iniciar sessões de acesso remoto e listar ou revogar tokens de inscrição. Um código QR de provisionamento cria seu próprio token de inscrição. As alterações de política têm seu próprio fluxo de propor e aplicar.
Ferramenta de provisionamento
Cada chamada cria um novo token de registro, portanto o assistente deve criar um código QR apenas quando o usuário solicitar um, e nunca reutilizar um antigo.
| Ferramenta | Permissão necessária | O que faz |
|---|---|---|
| create_provisioning_qr_code | PROVISIONING + POLICIES_READ | Cria um código QR que registra um dispositivo Android novo ou restaurado de fábrica na empresa com a política informada por policyId. personalUsage e uma rede Wi-Fi para configuração (wifiSsid, wifiPassword, wifiSecurity, wifiHidden) são opcionais. O código para de funcionar 24 horas após ser criado. Políticas exclusivas para VR não podem ser provisionadas com um código QR. |
O código QR é retornado como um bloco de imagem MCP ao lado do resultado em texto, para que o cliente possa mostrá-lo ao usuário. O resultado em texto informa policyId, policyName, personalUsage, expiresAt e, quando uma rede tiver sido informada, wifiSsid. Ele nunca contém o token de registro ou a senha do Wi-Fi.
As conexões do Sign in with Nomid precisam do escopo mcp:provisioning e da configuração de provisionamento da empresa em acesso do agente de IA. Uma chave de API com PROVISIONING não precisa dessa configuração.
API de códigos QR de provisionamento
Alterações de política
Cada alteração requer duas etapas. Primeiro, você a propõe: a API registra uma proposta e retorna sua lista de alterações, com o valor atual e o novo de cada configuração, o impacto e quando a proposta expira. Nada muda na política ainda. Em seguida, você aplica a proposta por meio do proposalId dela, depois que a pessoa responsável tiver revisado a lista de alterações.
| Ferramenta | Permissão necessária | O que faz |
|---|---|---|
| get_policy_settings | POLICIES_READ | Ler as configurações editáveis de uma política com seus valores atuais e permitidos. |
| list_policy_revisions | POLICIES_READ | Listar as revisões salvas de uma política, da mais recente para a mais antiga. |
| get_policy_proposal | POLICIES_READ | Ler uma proposta feita pela mesma chave ou conexão, com seu status. |
| update_policy_settings | POLICIES_WRITE + POLICIES_READ | Propor alterações de configuração para uma política existente. |
| create_policy | POLICIES_WRITE + POLICIES_READ | Propor uma nova política como uma cópia de uma existente, com alterações de configuração opcionais. |
| rollback_policy | POLICIES_WRITE + POLICIES_READ | Propor a restauração de uma política para uma revisão anterior. |
| apply_policy_proposal | POLICIES_WRITE + POLICIES_READ | Aplicar uma proposta pendente por seu proposalId, com confirmação quando for de impacto HIGH. |
Um assistente deve mostrar ao usuário a lista de alterações e obter sua aprovação explícita na conversa antes de chamar apply_policy_proposal. Para uma proposta de impacto HIGH, ele deve pedir que o usuário digite o nome da política e passar exatamente o que ele digitou.
Segurança e auditoria
Um comando altera algo que uma pessoa está segurando. Trate cada um como uma ação que precisa de uma decisão humana.
- Sempre confirme com o usuário antes de qualquer comando. As descrições das ferramentas pedem ao modelo para fazer isso, mas nada no servidor força essa ação. Mantenha a aprovação por ferramenta do seu cliente ativada para ferramentas de comando em vez de aprová-las automaticamente.
- Nunca reenvie um comando após um resultado não confirmado. Se o resultado for desconhecido, verifique list_device_commands depois que o dispositivo tiver tido tempo de responder e pergunte ao usuário antes de enviar novamente. Um reenvio pode duplicar um comando que já foi entregue, e uma mensagem exibe uma segunda notificação.
- Um resultado que diz que o comando não foi enviado é seguro para tentar novamente. O comando nunca saiu do Nomid.
- Cada comando é registrado no histórico de comandos do dispositivo no portal Nomid. Um comando enviado com uma chave de API é atribuído à chave, não a uma pessoa: a entrada mostra api-key, o ID da chave e o prefixo da chave. Um comando enviado por meio de uma conexão Sign in with Nomid é atribuído ao usuário que fez login. O histórico retornado por list_device_commands contém apenas tipo, status, carimbos de data/hora e resultado, não quem enviou o comando.
- Se um computador ou arquivo de configuração for comprometido, revogue a chave em Configurações, API. Chaves revogadas não podem ser restauradas. Para encerrar uma conexão Sign in with Nomid, revogue-a na lista de conexões da página de agentes de IA no portal ou desconecte-a em um cliente que revoga seus tokens ao desconectar. De qualquer forma, a conexão e todos os seus tokens param de funcionar de imediato. Cada usuário pode revogar suas próprias conexões, e um usuário que pode gerenciar chaves de API pode revogar qualquer conexão da empresa.
Limites de taxa
Os limites são calculados por chave de API ou por conexão Sign in with Nomid, em janelas fixas de um minuto. Quando você excede o limite de solicitações MCP, o servidor responde com HTTP 429 Too Many Requests com um cabeçalho Retry-After que informa os segundos até a janela ser redefinida.
| Limite | Permitido |
|---|---|
| Todas as solicitações MCP, todas as ferramentas | 60 por minuto por chave ou conexão |
| Comandos de dispositivo, alterações de política e códigos QR de provisionamento, REST e MCP combinados | 10 por minuto por chave ou conexão |
Uma chamada de ferramenta de comando, cada chamada de proposta ou aplicação de uma ferramenta de alteração de política e cada chamada de create_provisioning_qr_code contam para ambos os limites. Quando essa chamada excede o limite compartilhado de gravação, o servidor retorna um erro de ferramenta em vez de um HTTP 429. É uma resposta normal sinalizada como erro, e seu texto informa quantos segundos aguardar. Os endpoints de leitura REST não usam o limite de MCP.
Solução de problemas
| Sintoma | Causa provável e correção |
|---|---|
| 401 Unauthorized com uma chave de API | A chave está ausente, inválida, expirada ou revogada. Verifique se o cliente envia Authorization: Bearer seguido da chave e se a variável de ambiente foi definida quando você executou o comando de configuração. |
| 401 Unauthorized, ou o cliente solicita que você faça login novamente, com o Sign in with Nomid | O token de acesso expirou e não pôde ser atualizado, ou a conexão foi revogada. As solicitações também são recusadas quando o usuário não é mais membro da empresa, sua função não permite mais nenhum dos escopos concedidos ou a empresa desativou o acesso do agente de IA; a conexão de um usuário desativado é revogada. Faça login novamente ou reconecte o conector. Se ainda assim falhar, peça a um administrador da empresa para verificar sua associação, sua função e o acesso do agente de IA no portal. |
| Erro de ferramenta informando que a chave não possui a permissão necessária ou que a empresa não a habilitou (HTTP 403 na API REST) | A chave foi criada sem a permissão de que esta ferramenta precisa, ou a configuração da empresa está desativada. As ferramentas de comando precisam de DEVICES_COMMAND e DEVICES_READ, e change_device_policy também precisa de POLICIES_READ. As ferramentas destrutivas precisam de DEVICES_COMMAND_DESTRUCTIVE e DEVICES_READ, além de a configuração de comandos destrutivos da empresa estar ativada. As ferramentas de alteração de política precisam de POLICIES_WRITE e POLICIES_READ, além de a configuração de alterações de política da empresa estar ativada. create_provisioning_qr_code precisa de PROVISIONING e POLICIES_READ. |
| Erro de ferramenta informando que você não tem a permissão necessária, ou que um administrador não ativou o acesso do agente de IA para ela (Sign in with Nomid) | A conexão não possui o escopo necessário para a ferramenta, sua função não tem a permissão correspondente ou a configuração da empresa para isso em acesso do agente de IA está desativada. Reconecte e aprove o escopo na página de consentimento; mcp:devices:destructive e mcp:policies:write aparecem apenas se o cliente solicitar. Caso a configuração esteja desativada, peça a um administrador da empresa para ativá-la. |
| HTTP 429 Too Many Requests, ou um erro de ferramenta informando que o limite de taxa foi excedido | Você excedeu um limite de taxa. Para um HTTP 429, aguarde o número de segundos no cabeçalho Retry-After. Para um erro de ferramenta, aguarde o número de segundos informado na mensagem. |
| Erro de ferramenta sobre um dispositivo que não foi encontrado ou não pode receber o comando | Use o pathName de search_devices como assetId. Verifique se o dispositivo está inscrito e se o comando oferece suporte ao seu tipo de dispositivo (consulte Quais dispositivos podem receber comandos). |
| Erro de ferramenta informando que o resultado é desconhecido | Não reenvie. Verifique list_device_commands assim que o dispositivo tiver tempo para responder e pergunte ao usuário antes de enviar novamente. |
| O assistente não lista nenhuma ferramenta Nomid | Com uma chave de API, confirme se o seu cliente é compatível com servidores HTTP de streaming (Streamable HTTP) com cabeçalhos personalizados e se a URL corresponde exatamente ao endpoint acima. Com o recurso Sign in with Nomid, conclua o login ou desconecte o conector e conecte-o novamente. Uma conexão conectada lista todas as ferramentas, portanto, um escopo ausente aparece como um erro de ferramenta, e não como uma ferramenta ausente. |