As ferramentas usam seu papel de workspace atual em cada chamada. Conexões de leitura apenas continuam funcionando. Fazer alterações requer o escopo adicional tradecatalog:write. Ações consequentes mostram um cartão Confirmar/Cancelar em clientes compatíveis, com um link de revisão autenticado como fallback, e são executadas apenas após sua aprovação. Os resultados são texto JSON; o formato original das ferramentas de busca define preços, enquanto as ferramentas de gestão usam unidades menores inteiras de moeda e pontos básicos (100 = 1%).
A maioria das ferramentas recebe um workspace: o endereço do workspace de list_workspaces, como northgate. O aplicativo de IA normalmente chama list_workspaces primeiro por conta própria.
Quando uma ferramenta não pode fazer algo, por exemplo, você não é funcionário nesse workspace ou o cliente não existe, ela retorna uma mensagem de erro que o aplicativo de IA pode ler e agir, como "Nenhum cliente "OAK99". Use list_customers para códigos de conta."
Quando o catálogo de um fornecedor é apenas preços para o cliente selecionado, set_basket_quantity, send_order e reorder retornam esse erro. get_basket, list_buyer_orders e get_buyer_order ainda funcionam, então os pedidos existentes permanecem legíveis. O fornecedor define isso nas Configurações e pode substituí-lo por cliente (ordering: follow, prices_only ou can_order em update_customer).
Quando o fornecedor desativou o download de listas de preços, download_my_price_list retorna um erro e o link CSV autenticado responde 403.
quote_configured_product lê o preço de linha da conta de comprador selecionada para productId, qty e opcional configuration, sem alterar uma cesta. set_configured_basket_line cria uma linha separada ou atualiza/remova sua lineId exata (qty: 0 remove). Forneça a especificação completa em edições. Releia get_basket após mudanças e revise todas as seleções, medidas e preços atuais antes de send_order. Uma mudança na especificação ou versão de preço invalida a revisão antiga mesmo se o total for o mesmo.
Funcionários podem usar save_product_family para metadados de variantes compartilhados e save_ordering_draft para um rascunho revisado de preços avançados. O último requer Pro e permissão de preços globais; a publicação usa a revisão de mudança de preço existente. Importações de produtos aceitam família, incremento de ordem e definições de encomenda opcionais. Veja configuração de catálogo de comércio.
Configurar um workspace de fornecedorLink para esta seção#
create_workspace cria um workspace de fornecedor Free para a pessoa autenticada e verificada, após ela confirmar um cartão. Peça o nome da empresa, moeda dos produtos, fuso horário e país. A pessoa se torna seu proprietário. Nenhuma assinatura ou pagamento é criado. Em seguida, chame list_workspaces novamente e use o endereço retornado para configuração de produtos e clientes. Logins de revisor e convidado não podem criar workspaces.
Free inclui até 100 produtos e apps de IA conectados. Cada SKU é contado, incluindo produtos ocultos e inativos. Ao atingir o limite, os produtos existentes, edições e pedidos continuam funcionando; criar mais produtos fica indisponível. Explique esse benefício sem promover atualizações ou iniciar o checkout de assinatura no plugin.
list_workspacesLink para esta seção#
Workspaces de fornecedor em que você trabalha e portais de comércio onde você compra. Comece aqui.
Quem: qualquer pessoa autenticada. Entradas: nenhuma.
{
"supplierWorkspaces": [
{ "workspace": "northgate", "name": "Northgate Fixings", "role": "owner" }
],
"tradePortals": [
{
"workspace": "hartley-timber",
"supplier": "Hartley Timber",
"yourAccount": "Northgate Fixings",
"accountId": "example-account-id"
}
]
}
search_productsLink para esta seção#
Pesquisar um catálogo por SKU, referência do fabricante, nome, marca ou categoria. Retorna até 25 produtos.
Quem: funcionários e compradores.
| Entrada | Tipo | Obrigatório | Descrição |
|---|---|---|---|
workspace | string | sim | Endereço do workspace. |
query | string | sim | O que procurar. Uma entrada vazia lista produtos por nome. |
accountId | string | compradores com mais de uma conta | Selecione sua conta exata de list_workspaces. |
customer | string | não | Funcionários apenas: código de conta ou nome de cliente, para ver seus preços e apenas o que eles podem ver. Ignorado para compradores. |
- Compradores sempre veem os preços da sua própria conta e apenas produtos ativos que eles podem ver.
- Funcionários veem preços de lista e todos os produtos, ou a visão de um cliente nomeado.
{
"supplier": "Northgate Fixings",
"pricesFor": "Oakfield Joinery",
"taxNote": "ex VAT",
"products": [
{
"sku": "HX-8510",
"name": "Hex bolt M10 x 50 zinc",
"unit": "Box of 100",
"availability": "in_stock",
"price": "£15.73",
"listPrice": "£18.50",
"why": "Brand discount −15%"
}
]
}
Quando o fornecedor desativou Mostrar o preço padrão ao lado do próprio preço do cliente, os resultados de um comprador deixam de incluir listPrice e why, e get_buyer_product, get_basket e get_buyer_order não carregam nenhum preço de lista ou motivo do preço também.
Tente: "Pesquisar Northgate por parafusos hexagonais M10 nos preços de Oakfield."
download_products_csv e download_my_price_listLink para esta seção#
Essas ferramentas retornam um link para um download CSV existente no TradeCatalog. Abra-o enquanto estiver autenticado; retornar um link não baixa ou envia o arquivo para o chat.
download_products_csv: funcionários escolhemworkspacepara baixar a lista de produtos desse fornecedor.download_my_price_list: compradores escolhemworkspacee o código exatoaccountIddelist_workspacespara baixar apenas os preços acordados dessa conta.download_my_price_list_pdf: mesma conta, como PDF rebranded (Pro). Ambas as ferramentas são bloqueadas quando o fornecedor desativou o download de listas de preços.
check_priceLink para esta seção#
Quanto um cliente paga por um SKU em uma quantidade, e qual conjunto de regras definiu o preço.
Quem: apenas funcionários.
| Entrada | Tipo | Obrigatório | Descrição |
|---|---|---|---|
workspace | string | sim | Endereço do espaço de trabalho. |
customer | string | sim | Código ou nome da conta. |
sku | string | sim | O SKU. |
qty | integer | não | 1 a 1.000.000. Padrão 1. |
{
"customer": "Oakfield Joinery",
"sku": "HX-8510",
"name": "Hex bolt M10 x 50 zinc",
"qty": 20,
"unitPrice": "£15.73",
"lineTotal": "£314.60",
"listPrice": "£18.50",
"why": "Brand discount −15%",
"taxNote": "ex VAT"
}
Tente: “Quanto OAK01 paga por 20 de HX-8510, e por quê?”
list_customersLink para esta seção#
Clientes comerciais com códigos de conta, e-mails de contato, status ativo e desconto da conta.
Quem: apenas funcionários. Entradas: workspace.
[
{
"accountCode": "OAK01",
"name": "Oakfield Joinery",
"email": "accounts@oakfieldjoinery.co.uk",
"active": true,
"discount": "5%"
}
]
Tente: “Quais clientes não têm desconto definido?”
list_ordersLink para esta seção#
Pedidos recentes, do mais novo ao mais antigo, até 50.
Quem: os funcionários veem os pedidos de todos os clientes; os compradores veem apenas os da sua conta.
| Entrada | Tipo | Obrigatório | Descrição |
|---|---|---|---|
workspace | string | sim | Endereço do espaço de trabalho. |
status | string | não | new, pending, acknowledged, processed, dispatched, completed ou cancelled. |
[
{
"reference": "SO-000142",
"customer": "Oakfield Joinery",
"status": "new",
"total": "£314.60",
"poNumber": "PO-88231",
"placed": "2026-09-27T07:48:12.000Z"
}
]
Tente: “Há novos pedidos desde ontem? Some-os por cliente.”
recent_activityLink para esta seção#
O log de atividades das mudanças nos clientes, descontos e preços, do mais recente ao mais antigo, até 50 entradas. Opcionalmente, histórico de um cliente.
Quem: apenas funcionários. Proprietários e administradores veem todo o log; outros funcionários veem apenas mudanças sobre clientes que podem ver.
| Entrada | Tipo | Obrigatório | Descrição |
|---|---|---|---|
workspace | string | sim | Endereço do espaço de trabalho. |
customer | string | não | Código ou nome da conta. |
[
{
"when": "2026-09-26T14:21:03.000Z",
"who": "Jo Hartley",
"customer": "Oakfield Joinery",
"what": "Set Northgate brand discount to 15% (was 12.5%)"
}
]
Tente: “Quem alterou os preços da Oakfield este mês?”
NotasLink para esta seção#
- Nomes de clientes e códigos de conta são correspondidos sem levar em conta maiúsculas e minúsculas. Um código de conta exato é mais seguro.
list_workspacesretorna valores de compradoraccountId. Forneça o desejado parasearch_productse todas as ações do comprador. Nunca chute entre contas.- Navegue por buscas de produtos com
offsete onextOffsetretornado. Uselist_buyer_orderspara uma conta de comprador selecionada explicitamente.
Alterações e confirmaçõesLink para esta seção#
Edições de cestas de comprador, marcar atualizações como lidas e criar rascunhos de preços não publicados são executados imediatamente quando autorizados. Outras gravações retornam awaiting_confirmation, um actionId e um reviewUrl. Clientes ChatGPT e compatíveis exibem um cartão com o workspace exato e a mudança proposta: escolha Confirmar ou Cancelar sem sair da conversa. Clientes sem cartões usam o link de revisão autenticado. As revisões expiram após 15 minutos e são executadas no máximo uma vez. Desconectar o app ou remover o acesso necessário ao workspace invalida as revisões pendentes. Cestas de pedidos alteradas e prévias de mudanças de preço requerem uma nova revisão. Use get_action_status para ler o resultado; um pedido pendente não é uma ação concluída.
O helper decide_action está disponível apenas para a interface do cartão. Sua capacidade de confirmação de curta duração é ocultada da saída do modelo e vinculada à pessoa solicitante, conexão OAuth e proposta. Uma mensagem de modelo ou um ID de ação não pode aprovar uma mudança. As mesmas verificações de função, instantâneo, expiração e uso único se aplicam às aprovações de cartão e navegador.
Toda ação de comprador requer seu accountId exato. Para send_order, copie a cesta fingerprint para expectedBasket, junto com expectedTotal. Preços, quantidades e conta são verificados novamente antes do envio.
Use as ferramentas de transferência separadas para trabalho que termina no app autenticado: os proprietários usam open_api_key_settings, download_workspace_export e open_logo_settings; os funcionários usam open_import_page, open_product_image_upload e open_product_file_manager. As duas transferências de produto exigem um productId verificado pelo inquilino. Links de arquivos de get_product e get_buyer_product exigem seu navegador autenticado; retornar um link não leu o documento ou completou um upload, remoção, exportação ou criação de credencial. A administração da plataforma nunca é delegada por meio do OAuth.
Listas de clientes aprovadosLink para esta seção#
Os funcionários usam get_customer para ler o escopo do catálogo do cliente e os produtos aprovados. set_catalogue_scope muda entre all e approved. approve_products adiciona produtos explícitos ou uma categoria; unapprove_product remove um produto. Essas alterações exigem revisão do cliente exato, da lista atual e dos produtos afetados. A associação à categoria é verificada novamente na confirmação. Os compradores permanecem limitados à conta selecionada e aos produtos visíveis para essa conta.
Ferramentas do fornecedor e compradorLink para esta seção#
create_workspace está disponível mesmo quando list_workspaces está vazio. Ele cria um workspace de fornecedor Free e associação de proprietário apenas após confirmação. A conexão opcional /mcp/account também oferece open_billing: os proprietários podem abrir cobrança segura de assinatura e confirmar pagamento no Stripe, depois verificar get_settings para o estado resultante. Links de cobrança não completam pagamentos. A conexão padrão /mcp usada pelo plugin ChatGPT não expõe open_billing. Veja inscrição e cobrança.
O MCP 3.0.0 expõe cada operação acessível por modelo no início com seu próprio nome, descrição, esquema de entrada e anotações. As ferramentas anteriores bulk_products e open_workspace_action são substituídas pelas operações individuais abaixo; atualize as definições de ferramenta do seu cliente após a atualização. A resposta tools/list do MCP é o esquema de entrada autoritário. As ferramentas a seguir complementam as ferramentas de pesquisa acima:
| Ferramenta | Propósito |
|---|---|
open_api_key_settings | Apenas proprietário: retorne a página de configurações da API conectada para criar credenciais. Abrir o link não cria uma chave. Nunca peça aos usuários para colar segredos em chat. |
download_workspace_export | Apenas proprietário: retornar o link de exportação do espaço de trabalho completo autenticado. O usuário deve abrir o link para baixá-lo; esta ferramenta não lê ou transfere a exportação. |
open_logo_settings | Apenas proprietário: retornar a página de configurações de marcação autenticada para upload de logotipo de fornecedor. Abrir o link não carrega ou altera o logotipo. |
open_import_page | Equipe: retornar a página de importação de arquivos autenticada. O usuário carrega e revisa o arquivo no TradeCatalog; abrir o link não importa nada. |
open_product_image_upload | Equipe: retornar o editor autenticado para um produto existente para upload de imagem. Abrir o link não carrega ou altera uma imagem. |
open_product_file_manager | Equipe: retornar o editor autenticado para um produto existente para upload ou remoção de arquivos do produto. Abrir o link não lê, carrega ou remove arquivos. |
delete_workspace | Apenas proprietário: excluir permanentemente este espaço de trabalho, seu catálogo, acesso de clientes e imagens, e cancelar sua assinatura. Requer revisão autenticada e digitação do nome do espaço de trabalho. Isso não pode ser desfeito no aplicativo. |
get_workspace | Equipe: função atual, totais de catálogo e pedidos. Valores são unidades menores de moeda; porcentagens são pontos básicos (100 = 1%). |
get_catalogue_options | Equipe: listar IDs de categoria e marca para alterações de catálogo e descontos. |
get_product | Equipe: campos do produto, preço de lista atual, visibilidade, restrições de cliente, imagens e arquivos anexos (fichas técnicas). |
save_product | Criar ou editar um produto. Leia o produto atual primeiro e preservar os campos que o usuário não pediu para alterar. listPrice está em unidades menores; alterações de preço existente usam o fluxo de alteração de preço do app. Requer revisão. |
set_product_image | Escolher a foto principal, ou removê-la. Remover remove essa foto da galeria e a próxima se torna a foto principal. Requer revisão. |
create_category | Criar uma categoria nomeada, opcionalmente abaixo de uma categoria pai. Requer revisão. |
update_category | Renomear ou mover uma categoria. Seus produtos permanecem nela. Requer revisão. |
delete_category | Remover uma categoria e suas regras de desconto de categoria. Produtos e categorias filhas são movidos para um nível acima. Requer revisão. |
hide_products | Equipe: ocultar IDs de produtos explícitos para compradores, sem excluí-los. Requer revisão. |
show_products | Equipe: tornar IDs de produtos explícitos ativos. Restrições do catálogo do cliente ainda se aplicam. Requer revisão. |
move_products | Equipe: mover IDs de produtos explícitos para uma categoria, ou passar null para remover sua categoria. Requer revisão. |
delete_products | Funcionários: excluir permanentemente IDs de produtos explícitos, incluindo seus preços, imagens e linhas de cesta. Pedidos históricos mantêm suas cópias. Requer revisão. |
clear_catalogue | Apenas proprietário: remover permanentemente todos os produtos, preços e fotos. Requer revisão com login e digitação da frase de exclusão atual. |
get_customer | Funcionários: termos do cliente, lista de preços, escopo do catálogo, produtos aprovados, regras de desconto, preços acordados, compradores e convites pendentes. priceLists são as listas que você pode atribuir com update_customer. Atribuir uma lista de preços diferente da Standard requer Pro. |
create_customer | Criar uma conta comercial. Seu e-mail de contato pode fazer login como essa conta, então confirme o endereço. Requer revisão. |
update_customer | Alterar detalhes do cliente, código da conta (accountCode; único por fornecedor, ignorando maiúsculas, omita para manter), e-mail de login do contato, e-mails adicionais para atualizações (notifyEmails), status ativo, a porcentagem da lista inteira (discountBp, 0 a 10.000) e sua adjustment (discount ou markup; omita para manter), classificação (follow, prices_only ou can_order) e priceListId (null é Standard). Pontos básicos: 100 = 1%. Leia get_customer primeiro. Requer revisão. Atribuir uma lista de preços diferente da Standard requer Pro. |
save_discount_rule | Definir uma categoria de cliente, marca ou porcentagem de produto, em pontos básicos (0 a 10.000). adjustment é discount ou markup; omita-o para um desconto. A regra mais específica vence e nada é acumulado. Altera os preços imediatamente. Requer revisão. Requer Pro. |
remove_discount_rule | Remover a regra de desconto do cliente selecionado. Os preços podem subir imediatamente. Requer revisão. |
set_fixed_price | Definir um preço de produto específico para o cliente em unidades inteiras da moeda menor. O note é opcional; é uma observação; o noteVisible mostra-a a esse cliente. O internalNote permanece apenas para o pessoal. Requer revisão. Requer Pro. |
end_fixed_price | Encerrar o preço fixo do cliente agora para que as regras normais de desconto sejam aplicadas. Requer revisão. |
list_staff | Pessoal: listar a equipe do espaço de trabalho e convites pendentes. |
invite_staff | Apenas proprietário: enviar um convite por e-mail concedendo acesso de funcionário ou proprietário. Requer revisão do destinatário e do papel. |
invite_buyer | Pessoal: enviar um convite por e-mail para uma conta específica de cliente. Requer revisão do destinatário e da conta. |
remove_buyer | Remover uma assinatura da conta do cliente nomeada. Requer revisão. |
preview_product_import | Visualizar as linhas analisadas sem importar. Não corrigir silenciosamente preços incertos da fonte. |
import_products | Importar no máximo 100 linhas analisadas. listPrice vai para priceList (omitir para Standard); listPrices nomeia outras listas. As alterações de cada lista são unidas em um rascunho. Requer revisão. URLs de imagem podem ser recuperadas. |
import_customers | Importar no máximo 100 clientes. A priceList nomeia sua lista; ajuste é desconto ou acréscimo. Um nome de lista desconhecido é um erro. Requer revisão. |
preview_agreed_prices | Visualizar até 2.000 preços acordados (código da conta, SKU, preço em unidade menor inteira e uma nota opcional) sem salvar. Apenas para Pro. Contas e SKUs desconhecidos são relatados e ignorados. Quando uma conta e um SKU são repetidos, a última linha é usada. |
import_agreed_prices | Salvar até 2.000 preços acordados para contas e SKUs existentes. Apenas para Pro. Cada preço é versionado a partir de agora, em lotes de 100. Linhas desconhecidas são ignoradas. Requer revisão. |
list_import_layouts | Liste os mapeamentos de coluna salvos deste fornecedor. |
save_import_layout | Salve um mapeamento de coluna reutilizável para este fornecedor. Requer revisão. |
list_price_changes | Liste rascunhos e alterações de preço agendadas ou publicadas. |
draft_price_change | Crie um rascunho de alteração de preço em porcentagem para uma lista de preços (priceListId; omita para Standard). Um lote nunca mistura listas. Pontos básicos assinados: 600 = +6%, de −90% a +100%. Não publica nem envia e-mails aos clientes. Requer Pro. |
preview_price_change | Leia o impacto, alertas, preços fixos e conflitos de agendamento antes da publicação. |
publish_price_change | Publique agora ou em um horário ISO, opcionalmente enviando e-mails aos clientes (na publicação ou em um notifyAt agendado) e alterando preços acordados. Requer revisão da prévia atual; prévias alteradas invalidam a aprovação. Pro é necessário, exceto para importações de preços Standard imediatas sem e-mails ou alterações de preços acordados. |
cancel_price_change | Cancelar uma alteração de preço agendada. Os clientes podem receber um e-mail de cancelamento. Requer revisão. |
discard_price_draft | Descartar permanentemente uma alteração de preço não publicada. Requer revisão. |
get_staff_order | Funcionários: linhas de pedido, cliente, notas e histórico de status. |
set_order_status | Aceitar, processar, concluir ou cancelar um pedido usando as transições permitidas pelo app. Pode enviar um e-mail ao comprador. Requer revisão. |
get_settings | Ler configurações do fornecedor e estado da assinatura; nenhuma credencial de pagamento é retornada. |
save_settings | Apenas proprietário: alterar detalhes da empresa, destinatários de pedidos, moeda, lista de diretório, preferências de pesquisa se os clientes veem o preço padrão ao lado do seu próprio (showStandardPrice; false mostra apenas o seu próprio preço), como os produtos são ordenados para os clientes (productOrder: name, sku, category ou custom; category segue a ordem da página Categorias, A a Z pelo nome dentro de cada categoria, não categorizados por último), quais colunas do catálogo eles veem e em que ordem (catalogueColumns), o título para a nota da negociação de cada produto (dealLabel), se o login do cliente marca oculta o link de login do funcionário (hidePortalStaffLink; proprietário ou administrador, padrão falso), se as subtítulos da página de funcionários e links de como fazer são ocultos (hideStaffGuides; apenas proprietário ou administrador, padrão falso), se a página de login abre com nome de usuário e senha (loginUsernameFirst; apenas proprietário ou administrador, padrão falso para que o e-mail continue sendo o primeiro), e quais partes do catálogo em PDF da marca imprimir (pdfShowLogo, pdfShowDate, pdfShowSupplierName, pdfShowCustomerName, pdfShowPageNumbers; cada um verdadeiro por padrão, falso oculta essa parte). Leia as configurações atuais primeiro. Requer revisão. |
list_api_keys | Apenas proprietário: lista rótulos e escopos de chave. Nunca retorna segredos. |
revoke_api_key | Apenas proprietário: desconectar uma integração de API imediatamente. Requer revisão. |
list_news | Equipe: lista anúncios, incluindo postagens expiradas. |
post_news | Publicar um anúncio para compradores, agora ou a partir de startsLocal (hora do fornecedor). Opcional endsOn oculta-o em YYYY-MM-DDTHH:mm no fuso horário do fornecedor, ou ao final de um YYYY-MM-DD. emailCustomers também envia e-mails aos assinantes quando iniciar. Requer revisão da mensagem exata e do público-alvo. |
remove_news | Remover um anúncio publicado. E-mails enviados não podem ser recallados. Requer revisão. |
list_support_tickets | Apenas proprietário e administrador: lista dos tickets de suporte deste workspace. |
get_support_ticket | Apenas proprietário e administrador: ler mensagens em um ticket pertencente a este workspace. |
open_support_ticket | Apenas proprietário e administrador: enviar um pedido de suporte à Happy Webs. Requer revisão da mensagem exata. |
reply_to_support | Apenas proprietário e administrador: enviar uma resposta a uma conversa de suporte existente. Requer revisão. |
get_buyer_product | Ler um produto visível com preços e arquivos anexados (fichas técnicas) para a conta explicitamente selecionada. |
get_basket | Ler quantidades e preços atuais para sua conta de cliente explicitamente selecionada. |
set_basket_quantity | Defina uma quantidade absoluta (0 remove a linha). As alterações afetam apenas seu carrinho; não enviam um pedido. |
send_order | Envie o carrinho da conta selecionada para o fornecedor, com cópia do e-mail do comprador. Requer revisão autenticada dos produtos exatos, quantidades, preços, PO e observações. Se o carrinho for alterado, solicite uma nova revisão. Copie expectedBasket de get_basket.fingerprint. |
list_buyer_orders | Leia os pedidos para a conta explicitamente selecionada. |
get_buyer_order | Leia as linhas e histórico de status de um pedido pertencente à conta selecionada. |
reorder | Adicione produtos disponíveis de um pedido anterior ao seu carrinho com os preços atuais. Não envia um pedido. Requer revisão. |
get_buyer_updates | Leia as notícias atuais, alterações nos preços e atualizações não lidas para a conta do cliente selecionada. |
mark_updates_read | Marque as atualizações atualmente disponíveis para a conta selecionada como lidas. |
get_action_status | Leia o resultado de uma revisão solicitada por esta conexão. |
Entrada de pedidos pela equipe usa preview_customer_order, depois revisado create_customer_order com preços exatos e um UUID de tentativa. O processamento usa set_order_status com note público, privado internalNote/correctionReason, e expectedRevision. Revisado set_order_delivery registra o método de entrega visível ao cliente e o transportador opcional, referência e link HTTPS. Estas ferramentas seguem as permissões atuais do membro e o escopo do cliente. Veja Pedidos para os campos e comportamento.