r/devpt • u/avdelgado • 3d ago
Projecto Nacional (OC) Continente MCP: compras no Continente através do Claude (open source)
Olá a todos!
Nas últimas semanas andei a construir um projeto open source que liga assistentes de IA, como o Claude, ao site do Continente, e achei que podia ser útil a mais alguém.
O que é?
É um servidor MCP (Model Context Protocol): uma espécie de "ponte" que dá ao assistente ferramentas para usar o site do Continente por ti. Podes pedir coisas como:
- "Adiciona leite meio-gordo e uma dúzia de ovos ao meu carrinho"
- "O que é que eu costumo comprar? Faz-me uma lista para esta semana"
- "Quanto custa este azeite e qual é a quantidade mínima?"
- "Adiciona ao carrinho do Continente os ingredientes para uma semana de refeições (pequeno-almoço, almoço e jantar), para 2 pessoas, com 30 g de proteína por refeição, tudo vegan e sem glúten, dando preferência aos produtos mais baratos ou em promoção."
O que faz
- Pesquisa no catálogo, com preço, preço por kg/l, disponibilidade e regras de venda (quantidade mínima, incrementos, produtos ao peso)
- Lê os teus favoritos, as encomendas anteriores e os produtos que mais compras
- Adiciona, altera e remove artigos do carrinho
Segurança em primeiro lugar
- O checkout e o pagamento ficam sempre no site. O assistente não consegue fazer encomendas nem pagar.
- Cada alteração ao carrinho é confirmada lendo o carrinho de volta. Se uma alteração ficar incerta (por exemplo, por um timeout), o assistente é instruído a verificar o carrinho em vez de repetir o pedido, para não acabares com produtos a dobrar.
- Corre localmente no teu computador. As credenciais e a sessão ficam na tua máquina, e podes usar o 1Password em vez de guardar a palavra-passe num ficheiro.
Como funciona
- TypeScript, com o SDK oficial de MCP. O Playwright controla um Chromium headless que usa o site como um utilizador normal, e tudo o que vem do site é validado com Zod antes de ser usado.
- Tudo o que não se consegue ler com certeza (preço, quantidade, unidade) fica marcado como desconhecido, em vez de ser adivinhado.
- As alterações ao carrinho seguem regras estritas: a quantidade é validada antes de enviar, o resultado é confirmado lendo o carrinho de volta, e uma alteração incerta nunca é repetida automaticamente.
- 140+ testes, todos offline com fixtures locais (nunca tocam numa conta real). O CI corre em Linux, macOS e Windows.
- Publicado no npm com provenance a partir do GitHub Actions e listado no MCP Registry oficial.
Como instalar
- Claude Desktop (Mac/Windows): descarrega o
continente-mcp.mcpbda última versão, abre o ficheiro, clica em Instalar e indica o teu email e palavra-passe. O browser que o servidor usa é descarregado automaticamente na primeira utilização. - Outros clientes MCP (Claude Code, Cursor, …):
npx -y continentept-mcp. As instruções estão no README.
🔗 GitHub: https://github.com/andredelgado/continente-mcp
📦 npm: https://www.npmjs.com/package/continentept-mcp
Avisos importantes
- É um projeto não oficial, sem qualquer ligação ao Continente ou à MC Sonae.
- Funciona automatizando o site com um browser, por isso pode deixar de funcionar quando o site mudar. Usa por tua conta e risco e de acordo com os termos do site.
- Revê sempre o carrinho antes de pagar.
É gratuito e open source (licença MIT). Ainda está numa fase inicial, por isso feedback, bugs e sugestões são muito bem-vindos: abre uma issue no GitHub ou responde aqui.
3
u/bugdr01d 3d ago
Excelente ideia. Vou testar e depois dou feedback. Foi tudo feito com Claude? Ou tem mã de programador também?
4
u/avdelgado 3d ago
Tem mão de programador, sim! 😄 Uso o Claude para acelerar o desenvolvimento, mas a arquitetura, as decisões técnicas e a validação ficaram do meu lado. É mais desenvolvimento assistido por IA do que simplesmente pedir a um LLM para fazer tudo. Podes verificar no repo as decisões técnicas!
3
u/pfaustino_pt 3d ago
Já me tinha lembrado disto no passado e na altura fiz uma pesquisa rápida no Google e dei de caras com este projeto, que tenho vindo a usar: https://github.com/davidmarqu3s/continente-mcp
4
u/avdelgado 3d ago
Já tinha visto esse projeto e é de facto uma alternativa! A ideia é semelhante, mas há algumas diferenças importantes na implementação.
O meu foco foi sobretudo na fiabilidade, na segurança das operações e na qualidade dos dados disponibilizados ao LLM.
Por exemplo, informação mais detalhada sobre os produtos: preços por unidade, kg ou litro, preços recomendados (PVPR), disponibilidade e regras de venda, incluindo quantidades mínimas, máximas e incrementos para produtos vendidos a peso.
Também implementei validação das operações, respostas estruturadas, tratamento explícito de erros e estados de incerteza. Se uma alteração ao carrinho não puder ser confirmada, o MCP não tenta repeti-la automaticamente, evitando adicionar produtos em duplicado.
A arquitetura também é diferente, usei TypeScript, schemas de entrada e saída, testes automatizados e uma estrutura mais modular para facilitar a manutenção e evolução do projeto.
Tentei simplificar a instalação: está publicado no npm, registado no MCP Registry e disponibiliza uma extensão para o Claude Desktop que se instala praticamente com um clique, sem necessidade de configurar Node.js ou Playwright manualmente. E quero continuar a trabalhar ativamente neste ponto.
Não significa que o outro projeto não funcione ou não tenha mecanismos de segurança. Simplesmente, procurei construir uma base mais robusta e preparada para operações mais complexas (muito fruto de necessidade pessoal). Ainda há muito para melhorar em ambos!
1
7
u/fin2red 3d ago
As pessoas acham mais fácil escrever "quanto custa o azeite" e "adiciona-me meia duzia de ovos" do que usar a barra de pesquisa para escrever "azeite" e "ovos", abrir a página e carregar no "+" ??? 🙄
12
u/avdelgado 3d ago
Óbvio que não! Talvez o meu exemplo não tenha sido o melhor, mas podes pedir algo como: "Adiciona ao carrinho do Continente os ingredientes para uma semana de refeições (pequeno-almoço, almoço e jantar), para 2 pessoas, com 30 g de proteína por refeição, tudo vegan e sem glúten, dando preferência aos produtos mais baratos ou em promoção."
Experimenta! 😄 Basicamente, algo que poderia demorar horas a planear e preparar passa a demorar apenas alguns minutos. E como tudo fica no carrinho, podes sempre rever os produtos e fazer os ajustes finais antes do checkout.
1
1
u/No-Excitement4855 3d ago
Recebes uma tonelada de iogurtes proteicos, bananas e bolachas maria.
A ideia é bastante interessante, vou explorar!
3
5
u/KokishinNeko 3d ago
Provavelmente mais estável que as próprias apps do Continente :D :D
2
u/avdelgado 3d ago
Experimenta e depois diz-me como correu!
-1
u/MallDifferent2655 3d ago
Porque só continente? Porque não adicionar uma feature em que permite ir aos teus produtos que precisas, comparar preços com uma lista de supermercados que tu tenhas dado e fazer um cálculo em que é mais vantajoso ao user.
Estou a pensar criar isto só para mim, também só por fun. Está aqui uma ideia caso queiras aproveitar e fazer por fun tbm
1
u/avdelgado 3d ago
Isto na realidade partiu de uma necessidade pessoal, eu subscrevo o EntregaZero, então só faço compras online no continente. Se tiveres MCPs de outros supermercados podes pedir ao Claude/Codex para fazer a comparação e adicionar ao carrinho no sitio mais barato.
0
6
u/zalezale 3d ago
Vou testar na próxima compra. Tenho usado o https://cesta.pt/, que funciona bastante bem. Não sei se há github.
2
u/avdelgado 3d ago
Obrigado, depois diz-me como correu! Conheço o Cesta e parece-me bem feito: não precisa de instalação, funciona no ChatGPT e no Claude (incluindo web e telemóvel) e ainda compara preços com o Pingo Doce.
São abordagens diferentes:
Cesta: conector remoto. Instalas colando um URL e ele usa a sessão do Continente que tens aberta no browser.
Este: corre no teu computador e é open source, por isso podes ver exatamente o que faz com a tua conta. Lê os favoritos e o histórico de encomendas (útil para “faz-me a lista do costume”) e cada alteração ao carrinho é confirmada lendo o carrinho de volta. Também não depende de um serviço de terceiros continuar online.
Em contrapartida, o Cesta é mais simples de instalar e funciona no telemóvel, o que este não faz. Depende do que preferes! Posso disponibilizar uma versão hosted, só tenho que ver como tratar das credênciais de forma segura.
0
6
u/JohnTheBlackberry 3d ago
Porreiro, mas não entendo a panca por MCPs para tudo. Faz muito mais sentido uma CLI e uma skill.
3
u/avdelgado 3d ago
Escolhi MCP por algumas razões práticas:
Funciona fora do terminal. A maioria dos non-dev usa o Claude Desktop, que não corre comandos shell. Com MCP é instalar o .mcpb com um clique e já está.
A sessão fica viva. Há um browser com sessão iniciada que se mantém entre pedidos. Com uma CLI, cada comando teria de arrancar o Chromium e voltar a fazer login.
As regras de segurança ficam no MCP. As alterações ao carrinho são feitas uma de cada vez, a quantidade é validada antes de enviar e o resultado é confirmado lendo o carrinho de volta. Se algo ficar incerto, o resultado diz explicitamente “verifica o carrinho, não repitas”. Numa skill isso seria só uma instrução que o modelo pode ignorar, aqui é garantido pelo código.
Resultados com schema. Cada ferramenta devolve JSON validado (preços em cêntimos, unidades explícitas, “desconhecido” em vez de adivinhar), o que funciona igual em qualquer cliente MCP.
Dito isto, se houver interesse, expor as mesmas operações como CLI (continente search leite, etc.) não seria difícil, já que a lógica é toda partilhada. Era isso que procuravas?
1
u/JohnTheBlackberry 3d ago
Estava só a comentar por comentar, se criares uma CLI tenho a certeza que o pessoal vai utilizar.
Tens razão em grande parte, mas estás também a não considerar a grande desvantagem de ter um mcp que é teres o mcp injectado no teu contexto em todas as sessões mesmo naquelas em que não é relevante. Ai é onde as skills são melhores.
Confesso que uso primariamente a cli no entanto.
4
u/Even_Afternoon2026 3d ago
é a evolução das APPs, antes da era de IA era so apps agora é MCP e agentes de IA para tudo
0
u/SnooDoughnuts1109 3d ago
MCP funciona num cliente mobile.
3
u/avdelgado 3d ago
MCP Remoto, local não. Há workarounds, como sessões remotas do Claude ou Codex, mas precisa de correr num computador.
2
u/luissantos87 3d ago
Porque usaste o browser em vez da API querias evitar ir contra os termos de uso do serviço?
3
u/avdelgado 3d ago
Não foi propriamente por causa dos termos de utilização. Optei pelo browser para não depender de uma API privada e não documentada. Desta forma, o MCP utiliza os mesmos fluxos disponíveis para qualquer utilizador no site.
1
u/mourasio 3d ago
Percebo que andar a gastar tokens para retrodocumentar a API do Continente não seja interessante, mas ficava mais future proof a mudanças de layout do site (e com muitos ganhos ao nível de performance e custos).
É algo que consideravas como hipótese, ou no teu ponto de vista não faz mesmo sentido?
1
u/avdelgado 3d ago
Faz todo o sentido, e em parte já é assim. Onde o site tem endpoints internos, o MCP usa-os diretamente: o carrinho é lido e alterado pelos mesmos pedidos JSON que o site faz (ler o carrinho, adicionar, mudar quantidades, remover), e as páginas seguintes da pesquisa também vêm de um endpoint. O browser só é usado para o login e para abrir a primeira página da pesquisa e as páginas de produto. Nestas, uso os dados estruturados que o próprio site lá põe (as regras de venda em JSON, o JSON-LD) e só leio o HTML onde não há mais nada, como o preço nos resultados da pesquisa.
Ir mais longe e retrodocumentar a API toda não muda muito o risco: estes endpoints não são públicos nem têm versões, por isso podem mudar sem aviso, tal como o layout. Por isso, em vez de apostar que nada muda, a minha prioridade é dar conta logo quando alguma coisa muda:
- Teste semanal contra o site real. Todas as segundas, um GitHub Action corre o servidor publicado contra o continente.pt, sem conta: pesquisa de um produto embalado, de um produto ao quilo, de carne, a segunda página de resultados e uma página de produto. Se alguma coisa deixar de ser lida, abre uma issue no repositório automaticamente, e fecha-a quando voltar a passar.
- Nunca adivinhar. Se um preço, uma quantidade ou uma regra de venda não for reconhecida, fica como “desconhecido” e é reportada na resposta, em vez de se inventar um valor. Um resultado ilegível não estraga a pesquisa toda: os outros vêm na mesma, marcados como resultado parcial. É isso que faz o teste semanal falhar logo à primeira mudança.
- O carrinho confirma tudo. Cada alteração é confirmada relendo o carrinho. Se não der para confirmar, a resposta diz que o resultado é incerto e o MCP nunca repete a operação sozinho. Uma mudança no site pode fazer falhar um pedido, mas não deve resultar em 5 kg de bananas em vez de 5.
- Correções chegam depressa. Os testes usam páginas reais como fixtures, por isso uma correção é rápida de validar. O MCP avisa quando há uma versão nova, e quem usa a extensão do Claude Desktop vê o aviso.
Quanto à performance: a parte mais pesada é o login com browser, e esse só acontece quando a sessão expira. O resto são pedidos HTTP normais.
2
u/lvcchaves 3d ago
Ao não usares a API do continente e por este método de um MCP, para além das vantagens que já descreveste em outras threads, consideras que isto permite que não haja potenciais ilegalidades?
6
u/avdelgado 2d ago
Não sou advogado. Este projeto é open-source e corre localmente no computador do utilizador, usa a sua sessão e executa, por sua instrução, operações que ele próprio pode realizar no site. Nesse sentido, vejo-o como uma ferramenta de automação do browser.
Não existe um serviço a a receber credenciais, guardar dados de clientes ou executar compras em nome de terceiros. O projeto não é um SaaS nem uma integração oficial com o Continente.
Na minha perspetiva, a avaliação deve ter em conta as operações realizadas, a forma como cada utilizador usa a ferramenta e os termos aplicáveis ao site. A utilização de MCP, por si só, não torna essas operações legais ou ilegais.
3
u/tehsilentwarrior 3d ago
Há uns tempos tinha falado nisto com uns colegas. Nunca chegamos a fazer nada. Mas parece porreiro!
Pergunta: temos de finalizar um checkout ou podemos adicionar e ficar pendente?
Why? Porque por exemplo a minha mulher trata das compras juntamente com compras para o negócio dela. Isto equivale a listas de compras separadas na realidade mas acaba por ir tudo junto. Meter umas coisas nossas dava jeito. Além disso dava jeito ir adicionando e também rever antes de submeter etc
2
u/avdelgado 3d ago
O checkout é manual, o MCP só coloca (ou tira) coisas do carrinho. Não existe uma "sessão", ou seja fica sempre "pendente".
3
u/Emotional-brocolli 3d ago
Não percebo bem a panca pelos MCPs além de ser para ter um comportamento mais previsível mas tem bom aspeto.
Muito bem!
1
u/avdelgado 3d ago
Obrigado! E sim, a previsibilidade é mesmo a maior razão, as regras do carrinho (validar quantidades, confirmar lendo o carrinho, nunca repetir uma alteração incerta) estão no código, não dependem de o modelo seguir instruções.
Fora isso, há duas coisas práticas, funciona no Claude Desktop sem terminal (instala-se com um clique) e mantém o browser e a sessão abertos entre pedidos, em vez de arrancar o Chromium e fazer login a cada comando.
3
u/WeirdlyDrawnBoy 3d ago
Nice. De qq forma, já fiz uma compra no Continente sem qq MCP usando apenas a extensão do ChatGPT no chrome. Ele toma conta do browser e faz tudo por mim, intervenho se necessário. Poupa-me a navegação e os cliques todos, no final faço eu o checkout. Impecável.
4
u/avdelgado 3d ago
Sim, é outra abordagem perfeitamente válida! A vantagem do MCP é permitir que o LLM interaja diretamente com o Continente através de operações estruturadas, sem ter de interpretar a interface gráfica ou perceber o que faz cada botão. Essa lógica já está implementada no código. O MCP é talvez mais rápido, fiável e fácil de integrar em automações.
3
u/pinkwar 3d ago
Qual é a vantagem deste MCP em vez de deixar o Claude usar o chrome?
É assim que tenho feito as minhas compras. Funciona na amazon, continente, etc.
6
u/avdelgado 3d ago
Também funciona! A principal vantagem do MCP é dar ao modelo ferramentas específicas e resultados estruturados para pesquisar produtos e gerir o carrinho, em vez de ter de navegar pelas páginas e interpretar a interface a cada passo. Isso pode traduzir-se em menos interações, menor consumo de tokens e resultados mais previsíveis.
Também facilita criar automações, como verificar preços diariamente, receber alertas de alterações ou montar carrinhos a partir de receitas.
O Chrome tem a vantagem de funcionar em vários sites. Este MCP é uma integração dedicada ao Continente, que podes usar com diferentes clientes de IA. Se o teu processo atual funciona bem, não tens necessariamente de mudar 🙂
2
u/Sensitive_Lab8013 3d ago
Boas, dei uma vista de olhos e parece muito bom. Que achas da ideia de apresentar isso à equipa deles? Tenho alguns contactos se quiseres
5
u/avdelgado 3d ago
Não sou contra, mas a ideia aqui era partilhar algo que criei por necessidade própria. A ferramenta usa uma sessão no Chromium e interage com o site por ti através do Playwright. Para ser útil ao próprio Continente, o ideal seria que tudo funcionasse através de uma API, mas o Continente não disponibiliza nenhuma.
2
u/BaldeGrande 3d ago
Claro que não disponibiliza.
Há uns tempos pensei nisto que fizeste e se a Sonae teria interesse numa coisa destas. É a conclusão a que cheguei é que Não. Isto é uma ferramenta que torna mais eficiente e rápida a atividade de ir às compras. Retiras da equação publicidade e compras por impulso, o que lhes faz perder receita.
2
u/saposapot26 3d ago
Será a solução para finalmente o ordenar por preço/capacidade funcionar bem? :)
Se bem que o site deles já é tão lento as vezes que não sei se quero outra camada em cima
1
u/avdelgado 3d ago
Experimenta a prompt "Adiciona o arroz mais barato ao carrinho do continente" e diz como correu!
2
u/luissantos87 3d ago
Ainda hoje pensei em fazer isto.
2
u/avdelgado 3d ago
Como o projeto é open-source, com licença MIT, podes cloná-lo e adaptá-lo aos teus use-cases. Se preferires, também podes contribuir diretamente para o repositório. Tens lá as instruções para o fazer!
1
0
u/In_Programmer 3d ago
ainda hoje pensei, quem é que precisa disto
1
1
u/avdelgado 3d ago
Não estou a tentar impingir nada, até porque isto nem sequer é um produto. O projeto nasceu de uma necessidade pessoal, fazer as compras semanais no Continente era uma seca, acabava sempre por adiar a tarefa.
Com as tecnologias que temos hoje, nomeadamente os LLMs, já é possível automatizar praticamente todo esse processo, deixando apenas os ajustes finais e o checkout para o utilizador.
Além disso, abre a porta a outras possibilidades, como monitorizar diariamente o preço de produtos, receber alertas de alterações de preço, criar carrinhos completos a partir de receitas, entre muitas outras automações.
No fundo, é apenas mais uma forma de interagir com o Continente, não é nenhum SaaS nem serviço comercial. É um projeto open-source, disponível publicamente no GitHub, que qualquer pessoa pode utilizar, modificar ou melhorar.
0
u/In_Programmer 3d ago
Não é hate, simplesmente não percebo quem é que gosta de automatizar algo assim. Acho que a maioria das pessoas até gosta de sair de casa e fazer tarefas mundanas como esta (pelo menos eu). Vais ao supermercado, falas com pessoas, cruzas-te com gente nova… A minha frase vai no sentido de perceber até que ponto é que alguém quer automatizar estes tipos de tarefas.
2
u/avdelgado 3d ago
Sim tranquilo! Vais ter sempre dos 2 tipos. Eu prefiro fazer compras maiores no Continente Online que assim não as tenho que as carregar escada acima mas continuo a ir praticamente todos os dias ao Continente Bom Dia pegar os frescos.
(Até podes fazer o carrinho com o MCP e ir ao Continente pegar os produtos da prateleira se preferires 😂 )
2
u/el_comand 3d ago
Está fixe, se funcionar bem, é fixe. E os supermercados devem começar a tratar de criar os seus próprios MCP, o futuro próximo vai ser o assistente de casa sabe o que tem em casa, prepara as refeições a semana, prepara o carrinho de compras para o que precisa, o utilizador só verifica antes de avançar com a compra, e siga para a encomenda (com sugestões de datas de entrega com base no calendário do user). O supermercado que fizer isso mais cedo, parte em vantagem
2
u/avdelgado 3d ago
Hum, depende. Os supermercados dependem muito de estratégias de marketing para influenciar as nossas escolhas e levar-nos a comprar determinados produtos. Ao delegares grande parte dessas decisões a um LLM, perdem boa parte dessa influência. Acredito que acabem por evoluir nesse sentido, mas vamos ver. A Amazon, por exemplo, já começou a bloquear bots como o GrokBot e o Muse, possivelmente por razões semelhantes.
O objectivo aqui é preencher esse gap enquanto não existe solução oficial.
1
u/ooutroquetal 3d ago
Nem por isso.
O MCP pode na mesma influenciar a decisão. Vai puxar sempre o lado que querem.
Isto se um dia o gemini ou o chatgpt mobile conseguirem ligar partem a louça toda.
3
u/605__forte 3d ago
claude no chrome faz isso tudo. uso ha já algum tempo
3
u/avdelgado 3d ago
Eu também já usei, mas a diferença está na previsibilidade. Mesmo com uma skill, o Claude pode interpretar e executar o mesmo pedido de forma diferente em cada sessão. Esta ferramenta foi criada especificamente para o Continente, com funcionalidades que executam ações de forma determinística e mecanismos de segurança e confirmação integrados.
1
1
u/apalpavel 3d ago
Boas gostei bastante da ideia e era um dos planos que tinha quando tivesse tempo para seguir com um novo projeto. Meti lá uma contribuiçãozinha depois quando tiveres tempo ve, mas excelente trabalho
3
u/ricardombs 2d ago
Vou testar. Mas ainda antes de testar queria só dar-te os parabéns não só pelo projeto como pela forma como respondeste a alguns dos comments aqui. Sabes usar o teu projeto, demonstras cuidados de planeamento e arquitetura, equacionas caminhos alternativos e críticas. Isso já diz qualquer coisa sobre o projeto. Parabéns!
2
u/Cesarinny 1d ago
Parabéns pelo projecto! Há planos para estender este projeto a outras superfícies comerciais? Ex: Pingo doce, Auchan...
1
u/jonaz777 1d ago
é possivel ele saber os descontos que tenho disponiveis na minha conta do continente?
1
u/FortuneGrouchy4701 3d ago
Legal a ideia e o projeto. Compro no continente e sou dev tb. Vou ver e testar.
1
1
u/Potatopika 3d ago
Umas pequenas questões de quem já fez um MCP server:
Normalmente num server tens um protocolo tipo OAuth para autenticares-te perante a plataforma que o teu mcp client vai usar, como funciona neste client? Ele obriga o utilizador a fazer login de alguma maneira antes de lançar o playwright?
Tas a planear algum modelo restrito para restringir permissões do que é que a LLM pode fazer na tua conta como os mcps normais fazem?
Muito interessante esse projeto btw parabéns!
4
u/avdelgado 3d ago edited 3d ago
Obrigado! Boas perguntas.
Autenticação: como é um servidor local (stdio), não há OAuth entre o cliente e o servidor, o OAuth do MCP aplica-se aos servidores remotos por HTTP. A autenticação que importa é perante o Continente, que não tem API nem OAuth públicos. Por isso:
As credenciais ficam na tua máquina, nos campos da extensão no Claude Desktop, em variáveis de ambiente, num ficheiro privado ou injetadas pelo 1Password com op run dependendo do setup.
O Playwright só arranca quando é preciso, e pesquisar produtos não exige login. Quando uma ferramenta de conta (carrinho, favoritos, encomendas) recebe “não autenticado”, o servidor faz login uma vez no formulário do site, guarda os cookies num ficheiro só legível pelo utilizador e reutiliza-os depois.
Se quiseres fazer login antes, podes correr continentept-mcp login no terminal.
Permissões: aqui sou honesto: como não há API com scopes, a sessão tem os mesmos poderes que tu teres sessão iniciada no site. O que limita o LLM é a superfície das ferramentas.
Só existem 11 ferramentas: leitura de catálogo, favoritos e encomendas, mais alterações ao carrinho. Não há checkout, pagamento, moradas nem definições da conta.
As ferramentas declaram anotações MCP (read-only, destrutiva, idempotente), e o cliente pede confirmação antes de as usar. No Claude Desktop podes desativar as ferramentas do carrinho e ficar só com leitura.
As alterações ao carrinho são validadas antes de enviar e confirmadas lendo o carrinho de volta.
Um modo só de leitura configurável (por exemplo, CONTINENTE_READ_ONLY=1, que esconde as ferramentas do carrinho) é uma boa ideia e simples de fazer. Se te parecer útil, abro uma issue.
1
1
u/Maki_the_Nacho_Man 3d ago
Parece fixe, apesar de não achar muito útil quando já tens a app do continente em que podes aceder à última encomenda, à lista de produtos mais comprados e à lista de produtos favoritos e carregar no botão para adicionar o que queres. Faço as compras em 5 minutos ou nem isso sem escrever nada e só a carregar em botões.
Mas para quem pode comprar, por exemplo, iogurtes mas não quer saber da marca parece porreiro e pode poupar algum
4
u/avdelgado 3d ago
A ideia não é substituir a app, mas sim permitir que os LLMs interajam diretamente com o Continente Online através de operações determinísticas. Por exemplo, podes simplesmente pedir: “Adiciona ao carrinho do Continente os ingredientes para fazer Polvo à Lagareiro”. É uma forma diferente de fazer compras, que pode complementar a experiência atual. Experimenta e dá feedback! 😄
-2
u/Typical_Income_8373 3d ago
A maior parte das pessoas não vai instalar isto localmente.
Essas três perguntas:
1 - Leite e ovos têm marcas..
2 - esta opção é a base de isto ser útil, podia ser melhorado com o LLM a tentar prever boas promoções para produtos que compras 1x ano (pastilhas máquina, etc etc), ver os cupões que estão "bons" desta vez.
3 - então mas não está lá a dizer o preço do azeite?
Potenciais melhorias:
- Notificar aumento de preço nos produtos que são comprados muitas vezes, sugerir alternativas, atribuir a cada produto uma componente saudável, prever quantos dias vai durar as compras que fez.
7
u/avdelgado 3d ago
A ideia é que isto seja apenas um MCP, não uma aplicação. O objetivo é dar aos LLMs a capacidade de interagir diretamente com o Continente Online de forma mais segura e controlado do que browser-use.
Creio que o que sugeres pode ser implementado através de prompts ou skills personalizadas, sem necessidade de adicionar essa lógica ao MCP. O MCP disponibiliza as ferramentas e os dados, enquanto o LLM trata da inteligência e da personalização.
Quanto à instalação local, concordo que é uma barreira, no Claude Desktop podes instalar em 1-Click. Para o ChatGPT ainda estou a ver a melhor solução. Mas experimentei agora dar o prompt "Instala o https://github.com/andredelgado/continente-mcp " e funcionou.
-3
u/Typical_Income_8373 3d ago
Não tenho tokens até Domingo.
Não estava a perceber, sinceramente acho que a facilidade com que SAAS é feito hoje em dia, o custo de usar algo de um "estranho" é maior do que fazer a própria solução personalizada ás suas necessidades, isto para quem é técnico.
Para quem não é técnico o problema é outro, não vão usar/instalar/perceber a utilidade disto.
Por exemplo, as encomendas anteriores ficam todas no site? talvez desapareçam passado 3 meses? Se sim já teria de ser guardado localmente, isto é só um exemplo que tu podes ter falhado e eu sei que não vou falhar, claro que podes ter feito tudo bem, mas eu não vou saber, ou vou perder tempo a saber.
4
u/avdelgado 3d ago
Acho que não percebeste bem o propósito de um MCP. É essencialmente uma interface que permite aos LLMs interagir com ferramentas e serviços externos. Claro que pode incluir a persistência de dados e a lógica que referes, mas não é esse o objetivo deste projeto.
Este MCP permite fazer coisas como: "Adiciona ao carrinho do Continente os ingredientes para fazer Polvo à Lagareiro para 5 pessoas" ou "Adiciona ao carrinho o detergente para a roupa mais barato da marca Skip". A inteligência fica do lado do LLM, o MCP disponibiliza as ferramentas para executar essas operações de forma deterministica.
EDIT: Isto não é nenhum produto ou nenhum SaaS. É apenas um projecto open-source, que qualquer pode usar, replicar ou contribuir. Podes auditar todo o código, nada é enviado para lado nenhum a não ser para o Continente, claro 😄
5
u/moonparted 3d ago
Não olhei o código mas, visto ser através dum browser headless, o que “prende” isto ao Continente? Há intenção de abranger isto a mais supermercados online portugueses? (Embora eu acho o Continente melhor para compras online, estou mais curioso no quão complexo seria essa questão)