type.com
Trabalhe com espaços compartilhados, tópicos, documentos, habilidades, aplicativos, automações e ferramentas conectadas.
Servidor MCP hospedado
npx add-mcp 'https://api.type.com/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Type MCP permite que clientes de IA compatíveis trabalhem com seu workspace Type por meio de um servidor Model Context Protocol hospedado e protegido por OAuth. Ele não requer o Type CLI, um processo local ou uma chave de API.
Por meio do Type MCP, um cliente pode ler seu workspace, gerenciar Spaces e Channels, criar e atualizar documentos e skills, criar e publicar Type Apps, executar automações e chamar suas integrações conectadas. Cada solicitação é executada como o usuário Type conectado na organização selecionada durante o login, com as mesmas permissões do aplicativo web e do CLI do Type.
Instalar o Type MCP
Para Claude, abra o instalador de um clique:
O Claude pedirá que você revise o conector, faça login no Type, selecione uma organização e aprove a conexão.
Para ChatGPT, abra o instalador do ChatGPT:
Faça login no Type e siga as etapas na página: ative o Developer mode nas configurações de Security and login do ChatGPT, abra Plugins, adicione uma conexão chamada Type com a URL do servidor mostrada na página, escolha OAuth e aprove o acesso do Type. A disponibilidade do Developer mode depende da sua conta ChatGPT e da política do workspace.
Para configurar manualmente outro cliente MCP compatível, use esta URL do servidor:
https://api.type.com/mcp
O cliente deve suportar servidores MCP remotos Streamable HTTP e OAuth. O servidor aceita apenas solicitações POST nessa URL e publica seus metadados OAuth em /.well-known/oauth-protected-resource/mcp.
O Type MCP publica instruções do servidor durante a inicialização. Clientes que respeitam as instruções do servidor MCP as mostram ao modelo como orientação permanente para criar automações, apps, integrações e skills no Type, em vez de scripts locais, cron jobs ou clientes de API ad-hoc, e para começar com type_whoami para confirmar o usuário conectado e a organização. Se você também usa o Type CLI, o instalador dele adiciona a mesma orientação aos seus arquivos de instruções globais do Claude Code e do Codex.
Ações disponíveis
As ferramentas do Type MCP são agrupadas por prefixo. As ferramentas de leitura são anotadas como somente leitura; todas as outras são ações de escrita que seu cliente MCP deve pedir que você aprove.
| Área | Ferramentas | O que fazem |
|---|---|---|
| Identidade | type_auth_status, type_whoami, type_orgs_list | Confirmam a autenticação, mostram o usuário conectado e a organização selecionada e listam suas associações de organização. |
| Spaces | type_spaces_list, type_spaces_get, type_spaces_create, type_spaces_update, type_spaces_archive, type_spaces_merge, type_spaces_members, type_spaces_add_member, type_spaces_remove_member, type_spaces_join, type_spaces_leave, type_spaces_set_autoreply | Descobrem e gerenciam Spaces, associações e autoreply. |
| Channels | type_channels_list, type_channels_create, type_channels_update, type_channels_archive, type_channels_merge, type_channels_set_autoreply | Descobrem e gerenciam Channels dentro de um Space. |
| Busca e threads | type_search_workspace, type_threads_recent, type_threads_list, type_thread_get, type_threads_batch, type_thread_reply | Buscam mensagens nativas do workspace, threads, Spaces, pessoas, arquivos, documentos e apps; listam e leem threads; respondem em uma thread e mencionam colegas. |
| Documentos | type_documents_list, type_documents_pull, type_documents_push | Listam, leem, criam e atualizam documentos Markdown, incluindo links públicos. |
| Skills | type_skills_list, type_skills_inspect, type_skills_push, type_skills_sync | Listam, inspecionam, criam e atualizam pacotes de skills para a organização ou um Space. |
| Apps | type_apps_list, type_apps_resolve, type_apps_scaffold, type_apps_checkout, type_apps_save_source, type_apps_deploy_development, type_apps_prepare, type_apps_publish_first, type_apps_get_publish_approval, type_apps_publish, type_apps_get_build, type_apps_logs, type_apps_resolve_session, type_apps_get_access, type_apps_set_access, type_apps_share | Criam, visualizam, publicam e compartilham Type Apps sem checkout local. |
| Automações | type_scheduled_actions_list, type_scheduled_actions_get, type_scheduled_actions_create, type_scheduled_actions_update, type_scheduled_actions_delete, type_synced_events_list, type_synced_events_get, type_synced_events_create, type_synced_events_update, type_synced_events_set_enabled, type_synced_events_delete, type_synced_events_poll, type_synced_events_send, type_automations_test, type_automations_status, type_automations_history, type_slack_channels | Criam, testam e inspecionam ações agendadas e eventos sincronizados. |
| Integrações | type_integrations_available, type_integrations_connections, type_integrations_list, type_integrations_tools, type_integrations_call, type_integrations_connect, type_integrations_connection_status, type_integrations_create, type_integrations_disconnect, type_integrations_save_custom_api, type_integrations_verify, type_integrations_request, type_integrations_permissions, type_integrations_set_grant, type_integrations_set_personal_mode, type_integrations_delete_grant | Descobrem, conectam, chamam e gerenciam permissões para serviços conectados e Custom APIs. |
O Type MCP pode responder em uma thread existente com type_thread_reply, mas não cria novas threads nem lê anexos de arquivos além dos resultados de busca. Use o próprio Type, type-cli threads create para iniciar uma nova tarefa de agente ou type-cli sessions push para importar uma transcrição local.
As respostas das ferramentas são JSON. Uma chamada com falha retorna isError: true com { "ok": false, "error": { "code", "message" } }, onde code é invalid_input, not_found, forbidden, conflict ou unexpected_error. Os esquemas de entrada são estritos: campos desconhecidos são rejeitados, então use os esquemas atuais que seu cliente descobre em vez de adivinhar nomes de campos.
Spaces, Channels e IDs estáveis
Use type_spaces_list para listar os Spaces visíveis para você. Ele expõe Spaces regulares de produto, não feeds de alertas, contêineres de mensagens diretas, Spaces arquivados ou Spaces dedicados do Sidekick. Cada resultado inclui um id estável do Space, sua visibilidade e um valor de isMember. Passe o ID exato como spaceId para as ferramentas de thread e skills; não derive um ID de um nome, slug ou URL de Space.
A lista pode incluir um Space público com isMember: false. Você pode ler as threads desse Space público, mas operações exclusivas de membros permanecem indisponíveis. Use type_channels_list apenas com o ID de um Space onde isMember: true para listar seus Channels. Cada resultado inclui o id estável do Channel, o spaceId proprietário, nome, slug, estado de isDefault, configuração de autoreply e fontes conectadas. Um ID de Channel só é válido com o ID do Space proprietário.
Todo Space tem um destino padrão mostrado como Threads. type_channels_list o retorna com name: "Threads" e isDefault: true preservando seu ID estável e slug persistido. Use isDefault, não o nome ou slug, para identificá-lo.
| Ferramenta | Entrada obrigatória | Resultado |
|---|---|---|
type_spaces_list | Nenhuma | Spaces regulares visíveis, IDs estáveis e estado de associação. |
type_channels_list | Space de membro spaceId | Channels ativos nesse Space, incluindo Threads. |
Gerenciar Spaces e Channels
As ferramentas de gerenciamento usam referências de space e channel em vez de spaceId e channelId. Uma referência pode ser um ID estável, um slug ou um nome exato; nomes ambíguos são rejeitados, então prefira IDs da descoberta.
type_spaces_createrecebename, umdescriptionopcional evisibility(publicpor padrão, ouprivate).type_spaces_updatealtera qualquer um desses em um Space existente.type_spaces_members,type_spaces_add_memberetype_spaces_remove_membergerenciam associações;memberaceita um e-mail, ID de usuário ou nome de exibição exato.type_spaces_joinetype_spaces_leaveagem no usuário conectado.type_spaces_set_autoreplyetype_channels_set_autoreplyrecebem um booleano explícito deenabled. O autoreply do Space controla respostas de webhook e o padrão para novas threads; o autoreply do Channel controla respostas a novas threads nesse Channel.type_channels_createetype_channels_updaterecebemspacemaisnamee umdescriptionopcional.type_spaces_archiveetype_channels_archiveocultam um Space ou Channel.type_spaces_mergerecebesource,targete umthreadsChannelNameanulável;type_channels_mergerecebespace,sourceetarget. Mesclagens movem o conteúdo para o destino e arquivam a origem, e são destrutivas. Mesclagens de Space exigem um administrador da organização, e o destino padrão Threads não pode ser arquivado ou mesclado.
Essas ferramentas aplicam as mesmas verificações de permissão que o Type CLI e sempre agem como o usuário autenticado na organização selecionada; elas nunca aceitam uma substituição de ator ou organização.
Encontrar e ler threads
Para recuperação no workspace, comece com type_search_workspace quando o usuário forneceu um tópico. Use type_threads_recent para perguntas sobre threads mais recentes ou recentemente ativas sem consulta; o padrão é ordem de criação. Em seguida, chame type_threads_batch para vários IDs de thread candidatos ou type_thread_get para um.
type_search_workspace recebe um query de 1–200 caracteres, uma lista opcional de types (messages, threads, spaces, users, files, docs, apps) e um limit opcional por tipo de até 50. Reduza types quando o tipo alvo for conhecido.
type_threads_list usa uma entrada plana com escopo de Space. Requer spaceId e aceita um channelId opcional, além de timestamps ISO opcionais de from / to, status (open, closed ou all), limit e cursor:
{ "spaceId": "space-id", "channelId": "channel-id" }
type_threads_recent usa um scope aninhado opcional. Omita scope para threads recentes em toda a organização. Passe apenas spaceId para cada Channel em um Space, ou inclua o channelId desse Space para restringir o resultado. Também aceita status, sort (created ou activity), limit e cursor:
{ "scope": { "spaceId": "space-id" } }
{ "scope": { "spaceId": "space-id", "channelId": "channel-id" } }
type_threads_recent não aceita spaceId ou channelId de nível superior. A forma aninhada garante que um Channel esteja sempre emparelhado com seu Space proprietário.
Para qualquer uma das ferramentas, omitir channelId significa todas as threads no escopo selecionado, não apenas Threads. Para selecionar apenas o destino padrão Threads, passe o ID estável do item isDefault: true retornado por type_channels_list. As ferramentas de listagem retornam 20 threads por padrão e no máximo 50 por página.
type_thread_get retorna 50 mensagens por página por padrão (no máximo 500) dentro de um orçamento de texto que padroniza para 12.000 caracteres (maxTextChars, no máximo 48.000). type_threads_batch lê até 10 threads com um orçamento compartilhado que padroniza para 24.000 caracteres (maxTotalChars, no máximo 48.000) e 25 mensagens por thread (perThreadLimit, no máximo 50). Se qualquer thread solicitada não for legível, todo o lote falha.
As leituras de thread seguem a visibilidade do Space. Você pode listar ou ler threads em um Space público mesmo quando seu resultado de type_spaces_list tem isMember: false. Threads de Spaces privados permanecem disponíveis apenas para membros.
Responder em uma thread
type_thread_reply publica uma resposta em uma thread existente como o usuário conectado. Recebe o threadId (o ID estável da thread retornado pelas ferramentas de busca e thread), o content da resposta como texto simples e um replyMode opcional:
{
"threadId": "thread_123",
"content": "@Fletcher Richman can you review this? cc <@user_01…>",
"replyMode": "chat"
}
Mencione um colega escrevendo @Display Name (sem diferenciar maiúsculas de minúsculas, comparado com membros da organização) ou <@user_id> (exato; encontre IDs com type_search_workspace e o tipo users). Menções resolvidas são renderizadas como chips de menção e notificam essa pessoa. #space-name vincula um Space. O resultado inclui as URLs da mensagem e da thread, mentions (quem foi resolvido e notificado) e unresolvedMentions (tokens que não corresponderam a ninguém). Uma entrada em unresolvedMentions significa que ninguém foi notificado para aquele nome, então procure a pessoa e tente novamente com <@user_id> quando a menção for importante.
Uma resposta é uma mensagem de equipe (replyMode: "chat"), que nunca inicia ou retoma uma resposta de IA, ou um prompt de IA (replyMode: "prompt"), que pede ao agente do tópico para responder. Quando replyMode é omitido, uma resposta que resolveu uma menção de usuário é enviada como mensagem de equipe e qualquer outra resposta é enviada como prompt de IA, então uma mensagem endereçada a um colega não ativa o agente. Responder exige acesso ao Espaço do tópico, tópicos fechados rejeitam respostas e tópicos de mensagens diretas não são suportados.
Resultados de tópicos e resultados de busca com localização usam uma localização normalizada:
{
"location": {
"space": { "id": "space-id", "name": "Product", "slug": "product" },
"placement": { "type": "threads" }
}
}
A colocação em Canal nomeado inclui a identidade estável do Canal:
{
"location": {
"space": { "id": "space-id", "name": "Product", "slug": "product" },
"placement": {
"type": "channel",
"channel": {
"id": "channel-id",
"name": "Launch",
"slug": "launch"
}
}
}
}
Resultados de busca e de tópicos recentes também incluem IDs de tópicos estáveis, URLs da web e metadados de paginação. Ferramentas de tópicos retornam URLs de citação e metadados de truncamento.
Trabalhar com documentos
type_documents_list lista documentos Markdown que você pode acessar, com um query opcional para busca por título ou conteúdo e paginação limit / offset. type_documents_pull retorna o Markdown de um documento e seu currentRevisionId.
type_documents_push cria ou atualiza um documento a partir de Markdown inline; MCP hospedado nunca lê arquivos da sua máquina.
- Para criar, passe
spaceId,titleecontentMarkdown. Você deve ser membro desse Espaço. - Para atualizar, passe
documentId,contentMarkdowne obaseRevisionIdque você recebeu detype_documents_pull. Se o documento mudou desde essa busca, a atualização é rejeitada com um erroconflict; busque novamente antes de tentar de novo. - Defina
public: truepara publicar um link público. Documentos são limitados ao Espaço, a menos que você peça isso explicitamente.
Guarde o ID do documento retornado para atualizações futuras. Se você quiser um arquivo local sincronizado com um documento Type, use o Type CLI, que registra esse mapeamento para você.
Trabalhar com habilidades
Habilidades podem ser da organização inteira ou anexadas a um Espaço. Elas não são anexadas a um Canal individual porque todo Canal compartilha as habilidades do seu Espaço. Um alvo limitado ao Espaço exige isMember: true para esse Espaço.
Use um destes alvos exatos com type_skills_list, type_skills_push ou type_skills_sync:
{ "scope": "global" }
{ "scope": "space", "spaceId": "space-id-returned-by-type_spaces_list" }
Um pacote de habilidade inclui um name, um handle, um description opcional e 1–100 files. Cada arquivo tem um filename relativo, um category de script, reference ou asset, seu texto content e, para scripts, valores opcionais de scriptEntrypoint e scriptLanguage (python, javascript, typescript ou shell).
type_skills_push cria uma nova habilidade. Se uma habilidade com o mesmo nome já existir para o alvo, falha a menos que você passe force: true, que atualiza essa habilidade quando é a única correspondência. type_skills_sync atualiza a habilidade nomeada por skillId, ou cria uma quando skillId é omitido. type_skills_inspect retorna uma habilidade e o conteúdo completo de seus arquivos empacotados.
Criação e atualização de habilidades são ações de escrita. Revise o pacote proposto e o alvo estável do Espaço no seu cliente MCP antes de aprová-los.
Criar e publicar aplicativos
O Type MCP expõe todo o ciclo de vida do App Type sem um checkout local. Hospedagem Vite local e observação de arquivos continuam sendo recursos do Type CLI.
- Descubra um aplicativo com
type_apps_listoutype_apps_resolve. - Crie um novo aplicativo em um Espaço com
type_apps_scaffold(spaceRefetitle), ou abra um existente comtype_apps_checkout. Ambos retornam a árvore de arquivos editável e umbuildId. - Envie a árvore completa autoral com
type_apps_save_source, passando oexpectedSourceGenerationque você recebeu para que um checkout desatualizado não possa sobrescrever código-fonte compartilhado mais novo. Guarde o checkpoint retornado e os hashes do código-fonte. Fontes são limitadas a 256 arquivos e 8 MiB no total. - Implante esse checkpoint no backend de desenvolvimento com
type_apps_deploy_developmente resolva o acesso de pré-visualização comtype_apps_resolve_session. - Crie um rascunho hospedado revisável com
type_apps_prepare. - Para um aplicativo novo, publique a primeira versão ao vivo com
type_apps_publish_first. Para um aplicativo já ao vivo, leiatype_apps_get_publish_approval, revise com o usuário e então passe os hashes aprovados paratype_apps_publish. - Inspecione o progresso com
type_apps_get_builde os logs do backend comtype_apps_logs(targetdedevelopmentouproduction). - Gerencie o acesso com
type_apps_get_access,type_apps_set_access(workspace,channelcom umspaceRef, oupublic) etype_apps_share, que cria um link público e opcionalmente permite escritas públicas de dados.
Publicar, mudar o acesso e compartilhar alteram o que outras pessoas podem ver. Aprove apenas depois de revisar o rascunho. Não há ferramenta de reversão; publique o código-fonte desejado como um novo rascunho em vez disso.
Executar automações
Ferramentas de automação recebem uma referência space e agem no agente desse Espaço.
Ações agendadas rodam em um cronograma. type_scheduled_actions_create recebe name, instructions e um schedule, além de opcionais description, channel, slackChannel e runConfig (substituições de modelo e esforço). Novas ações começam desabilitadas a menos que você passe isEnabled: true; habilite ou desabilite depois com type_scheduled_actions_update. Use type_scheduled_actions_list, type_scheduled_actions_get e type_scheduled_actions_delete para o resto do ciclo de vida.
Eventos sincronizados trazem atividade externa para um Espaço. type_synced_events_create recebe um source de new-thread, slack, github, linear, webhook, rss ou email com configurações específicas da fonte: webhook (service, opcionais secret e signatureHeader), rss (feedUrl e pollIntervalMinutes de 5 a 1440), email (username) e slack (channel e triggerMode). Fontes Slack, GitHub e Linear precisam de uma integração conectada passada como integrationId e usam type_slack_channels para descobrir destinos do Slack. Fontes webhook, RSS e novo tópico podem ser criadas desabilitadas e alternadas com type_synced_events_set_enabled; fontes Slack, email, GitHub e Linear devem ser criadas habilitadas e são excluídas para parar. type_synced_events_poll verifica um feed RSS agora.
type_synced_events_send entrega uma amostra JSON inline através de um webhook que você está autorizado a usar. Passe o secret de assinatura quando o webhook verificar assinaturas. Como usa o receptor de webhook real, pode criar mensagens e acionar respostas de IA.
type_automations_test executa uma ação agendada ou evento (kind de scheduled ou event) e retorna um ID de mensagem de resposta. Faça polling de type_automations_status com esse ID no cliente e revise execuções passadas com type_automations_history.
Usar integrações
O Type mantém tokens OAuth e credenciais no servidor. O cliente MCP recebe apenas metadados de ferramentas e resultados, e o Type aplica a mesma seleção de credenciais pessoais versus organizacionais e política de permissão que o resto do Type.
type_integrations_availablelista provedores que você pode conectar,type_integrations_connectionslista conexões pessoais e organizacionais instaladas etype_integrations_listlista os serviços que você pode chamar, cada um com seuorganizationIntegrationIdestável e modo de acesso efetivo.type_integrations_toolsretorna as ferramentas permitidas e esquemas exatos de argumentos para umserviceeorganizationIntegrationId.type_integrations_callexecuta um deles. Conexões somente leitura omitem ferramentas de escrita, e chamadas que enviam, publicam, editam ou excluem dados em outro produto são consequentes; seu cliente deve perguntar antes de executá-las, e escritas com falha não devem ser tentadas novamente até você verificar o provedor.type_integrations_connectinicia uma conexão para umproviderescope(organizationoupersonal) e retorna uma URL de configurações do Type. Termine a entrada OAuth ou de credenciais do provedor lá, então faça polling detype_integrations_connection_statuscom oattemptIdretornado.type_integrations_createhabilita uma integração nativa ou salva credenciais nativas diretamente.type_integrations_disconnectremove uma conta pessoal (userIntegrationIdda lista de conexões) ou, comdeleteForOrganization: true, uma conexão organizacional (integrationId).- Para APIs personalizadas, conecte com um
customApiDraftnão secreto, salve a credencial comtype_integrations_save_custom_api, valide comtype_integrations_verifye então chame comtype_integrations_request(path,query,headerse umbodyopcional). Nunca coloque uma credencial em um argumento de ferramenta ou mensagem de chat. type_integrations_permissionsmostra políticas de integração.type_integrations_set_grantdefine uma concessão de workspace, Espaço ou usuário pararead_onlyoufull;type_integrations_delete_grantremove uma;type_integrations_set_personal_modelimita sua própria credencial pessoal. Mudar concessões compartilhadas exige um proprietário/admin do workspace ou um gerente dessa integração.
Autenticação e acesso à organização
O Type MCP usa OAuth através do provedor de identidade do Type. A organização selecionada durante o login define o escopo do token do conector, e o Type não envia uma chave de API ao cliente MCP. Toda ferramenta roda como esse usuário nessa organização; nenhuma ferramenta aceita uma organização ou ator fornecido pelo chamador.
O Type MCP deve ser habilitado para seu workspace pelo Type. Se não for, o login é bem-sucedido, mas toda solicitação retorna Type organization access denied.
| Operação | Espaço público com isMember: false | Membro do Espaço |
|---|---|---|
| Descobrir o Espaço | Permitido | Permitido |
| Ler seus tópicos | Permitido | Permitido |
| Listar seus Canais | Não permitido | Permitido |
| Listar, criar ou atualizar habilidades limitadas ao Espaço | Não permitido | Permitido |
| Criar documentos, enviar amostras de webhook ou gerenciar o Espaço | Não permitido | Permitido, sujeito ao seu papel |
Espaços privados não são expostos a não membros.
type_orgs_list mostra toda organização à qual você pertence e à qual o conector está vinculado. Para usar uma organização diferente, desconecte o Type nas configurações do conector do cliente, adicione novamente e selecione a nova organização durante o login.
Para desconectar o Type, remova-o das configurações do conector do cliente. O cliente é dono da conexão OAuth salva.
Type MCP ou Type CLI?
Use o Type MCP quando quiser que um cliente de IA suportado trabalhe com o Type através de uma conexão hospedada sem instalação local. Ele cobre as mesmas operações de workspace, documento, habilidade, aplicativo, automação e integração que o CLI, com conteúdo passado inline em vez de caminhos locais.
O Type MCP também é a escolha certa quando um agente roda em um ambiente hospedado na nuvem, incluindo Claude Cowork em modo nuvem. Computação em nuvem não pode depender de um binário type-cli instalado na sua máquina.
Use o Type CLI quando o fluxo de trabalho depender da sua máquina local, incluindo:
- Sincronizar pastas locais de habilidades e arquivos Markdown com mapeamentos de arquivo persistentes e execuções de teste.
- Rodar o frontend de um App Type localmente com
type-cli app dev. - Iniciar uma nova tarefa de agente de Espaço com
type-cli threads create, ou mover uma sessão local de Claude ou Codex para um novo tópico Type comsessions push. Responder a um tópico existente funciona de qualquer interface (type_thread_replyoutype-cli threads reply). - Executar operações do Type a partir de scripts de shell.
Solução de problemas
- Autorização necessária ou Token de acesso inválido: O cliente não enviou um token de conector válido. Reconecte o Type nas configurações de conector do cliente.
- Acesso à organização Type negado: Sua associação está inativa, a organização selecionada está indisponível ou o Type MCP não foi habilitado para esse workspace. Pergunte a um administrador do workspace Type.
- Serviço de autenticação indisponível ou Workspace Type indisponível: Tente novamente após um breve intervalo. O Type não conseguiu verificar o token do conector ou acessar o workspace.
- Você deve entrar neste Space antes de listar seus Canais:
type_spaces_listpode retornar Spaces públicos comisMember: false. Entre no Space antes de listar seus Canais. Leituras de threads públicos não exigem associação. - Space não encontrado: Chame
type_spaces_liste passe o ID estável retornado sem alterá-lo. Alvos de skill com escopo de Space também retornam este erro quando você não é membro do Space. - Thread não encontrado ou Threads solicitados não encontrados: O thread não é legível por você, ou um ID em uma solicitação
type_threads_batché inválido. Leituras em lote falham como um todo. - Documento alterado; puxe sua revisão mais recente antes de atualizar: Outra edição foi feita após sua puxada. Chame
type_documents_pullnovamente e use o novobaseRevisionId. - Já existe uma skill chamada ”…” para este alvo: Use
type_skills_synccom oskillIdexistente, ou passeforce: trueparatype_skills_push. - Pacote de skill rejeitado: Use nomes e handles não vazios, caminhos de arquivo relativos únicos, e sem caminhos absolutos ou segmentos de caminho
./... - Campo desconhecido ou invalid_input: Os esquemas de entrada são estritos. Releia o esquema da ferramenta no seu cliente e remova campos que ele não lista.