anycubic-slicer-next-control
Provides control of Anycubic Slicer Next and Anycubic printers, enabling model loading, profile selection, slicing, G-code export, and management of print jobs over LAN and Anycubic cloud.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@anycubic-slicer-next-controlSlice this STL with the standard profile and export the G-code"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Anycubic Slicer Next Control
PoC de plugin local para o Codex/ChatGPT controlar com segurança o Anycubic Slicer Next no Windows através de tools MCP estruturadas.
O projeto abre o app, carrega STL/3MF, descobre perfis locais, aplica overrides básicos de slicing, inicia o slice e exporta G-code e/ou .gcode.3mf. Suporta também remote print LAN (MQTT + FTP) para impressoras Anycubic compatíveis, com envio do ficheiro para o SD card e início/controlo do trabalho a partir da máquina local.
Estado do PoC
Detecta automaticamente
C:\Program Files\AnycubicSlicerNext\AnycubicSlicerNext.exee aceita override por variável de ambiente.Usa a CLI nativa herdada do OrcaSlicer (
--load-settings,--load-filaments,--slice,--outputdir,--export-3mf) apenas para slice local de G-code.Orquestra o app GUI para export compatível com o firmware:
slice_via_appabre o app, carrega o modelo e usa os controlos visuais do próprio app (Slice all / Export G-code) via UI Automation, porque a CLI não gera os metadados que a impressora exige (thumbnails,print_sequence,paint_info).Inspeciona a janela via Windows UI Automation e expõe um conjunto pequeno e seguro de ações (
uia_tree,uia_read,uia_click,uia_type,uia_key) com allowlists fixas — nunca coordenadas nem teclas arbitrárias.Controla impressoras na LAN via MQTT/TLS (porta 8883) e FTP/TLS (porta 990), com o access code nunca registado em logs.
Leitura da conta Anycubic via cloud workbench API (
account_login,account_devices,account_files), com token JWT capturado do app em memória e guardado DPAPI-encrypted. O envio poraccount_printestá bloqueado para repetição de ficheiros históricos até corrigir o contrato cloud documentado no incidente de 2026-09-07.Cria um plano temporário antes de executar e grava cada resultado numa pasta nova, evitando sobrescrita.
Valida extensões, tamanho, caminhos canónicos, perfis e roots permitidos.
Regista apenas metadados mínimos num audit log local; não guarda prompts nem tokens.
Related MCP server: OrcaSlicer MCP
Arquitetura
ChatGPT / Codex
|
| MCP stdio; schemas estritos; aprovação do host
v
Servidor local TypeScript
|
+-- Policy: allowlists, limites, plano -> confirmação, audit log
|
+-- Orquestração do app GUI (via de export compatível)
| +-- slice_via_app: abrir app, carregar modelo,
| | Slice all + Export G-code (UIA allowlist)
| +-- export-scan: localizar ficheiro novo e validar
| estrutura (thumbnail / print_sequence) antes de usar
|
+-- Adaptador CLI (secundário: G-code local)
| +-- carregar perfis JSON
| +-- overrides básicos
| +-- slice local
| +-- G-code / G-code.3MF
|
+-- Ponte Windows UIA/Win32 (inspeção + ações seguras)
| +-- detetar/inspecionar janela
| +-- ações allowlist (Slice all, Save Project, Export G-code, ...)
|
+-- Remote print LAN (MQTT/FTP) e Cloud (workbench API)O MCP orquestra o app em vez de replicar o slicer: o firmware rejeita ficheiros .gcode.3mf produzidos só pela CLI (erro 10115) porque lhes falta a estrutura que a própria app GUI gera. A UI wxWidgets expõe controlos via UI Automation com nomes localizados; por isso a camada UIA usa apenas uma allowlist pequena e robusta de ações, nunca coordenadas arbitrárias.
Mais detalhes: docs/architecture.md e schemas/tools.json.
Codex local vs. ChatGPT
Codex desktop/local: usa diretamente o servidor MCP stdio incluído em
.mcp.json.ChatGPT Developer Mode: a OpenAI exige um endpoint HTTPS público ou o Secure MCP Tunnel. Para manter o slicer privado, ligue o tunnel a este servidor stdio; depois registe a conexão no ChatGPT e use o ID
plugin_asdk_app...numa futura.app.json.O PoC não abre porta TCP e não cria um tunnel automaticamente. Essa escolha evita exposição acidental da máquina e precisa de configuração/autorização do workspace do utilizador.
O manifesto .codex-plugin/plugin.json e a pasta skills/ são específicos do ecossistema Codex. O servidor em dist/server.mjs, porém, é um servidor MCP stdio normal e pode ser usado por qualquer cliente MCP que execute processos locais na mesma máquina Windows.
Claude Code
Extraia o plugin para uma pasta estável, por exemplo C:\Tools\anycubic-slicer-next-control, e registe o servidor nativo:
claude mcp add anycubic-slicer-next --scope user -- cmd /c node "C:\Tools\anycubic-slicer-next-control\dist\server.mjs"
claude mcp listNo Windows nativo, cmd /c evita problemas de inicialização do processo local. O Claude Code pedirá confirmação antes de usar uma configuração MCP de projeto.
GitHub Copilot CLI
copilot mcp add anycubic-slicer-next -- node.exe "C:\Tools\anycubic-slicer-next-control\dist\server.mjs"
copilot mcp listTambém é possível colocar a configuração em %USERPROFILE%\.copilot\mcp-config.json. No VS Code, use .vscode\mcp.json com a mesma command/args, mas a chave superior esperada pelo editor é servers em vez de mcpServers.
Claude Code e Copilot usarão as tools MCP, mas não a skill Codex nem o manifesto .codex-plugin. O cliente precisa rodar no Windows onde o Anycubic Slicer Next está instalado; agentes cloud/remotos não conseguem controlar esse aplicativo local sem uma ponte explícita.
Como usar o MCP (guia de utilização)
O servidor expõe 86 tools MCP (ver schemas/tools.json) que cobrem o ciclo completo: inspecionar → abrir → fatiar → exportar → imprimir. Todas as tools são chamadas pelo agente (Codex, Claude, Copilot, …) através do protocolo MCP stdio; o fluxo é sempre o mesmo:
1. Modelo de confirmação (gating)
O servidor é local-first e "least privilege": nenhuma tool que tenha consequências (mover eixos, aquecer, iniciar impressão, enviar comandos, escrever ficheiros) executa sem aprovação explícita.
Classe de segurança | Exemplos | Exigências |
|
| nenhuma — executam de imediato |
|
|
|
|
|
|
| mover eixos, |
|
Regra prática: se a tool pedir confirm, o agente deve mostrar o plano/parâmetros ao utilizador e aguardar aprovação explícita antes de chamar. Um default de schema (confirm: false) nunca dispara uma ação.
2. Jornada típica — fatiar e exportar
1. inspect_slicer({}) → confirma instalação, processo e roots permitidos
2. slicer_profiles({ kind: "machine", query: "Kobra S1" })
3. open_model_in_slicer({ path: "<abs>\\modelo.stl|3mf", confirmation: "RUN" })
4. prepare_slice_job(...) → devolve o plano (camada, infill, walls, suportes)
5. run_slice_job({ job_id, confirmation: "RUN" })O fluxo recomendado para exportar um ficheiro que o firmware aceita é
slice_via_app(o app gera thumbnails,print_sequence,paint_info— a CLI não gera esses metadados e a impressora rejeita o ficheiro com erro 10115).A CLI é usada apenas como via secundária para G-code local (
--slice,--export-3mf). Não assuma que o resultado CLI é imprimível sem a validação do app.Nunca imprima G-code sem verificar no preview/estado: impressora, nozzle, filamento, temperaturas, tipo de mesa e limites físicos.
3. Jornada típica — imprimir via LAN
1. discover_printers({}) → ou fixar ANYCUBIC_PRINTER_IPS
2. printer_status({ dev_id, dev_ip, access_code })
3. send_to_printer({ ... local_file }) → envia .gcode/.3mf para sdcard/ via FTP/TLS
4. start_print({ ... }) → inicia o trabalho (project_file)
5. printer_status(...) → confirmar gcode_state / mc_percent4. Jornada típica — imprimir via cloud (por conta)
1. account_capture_token({}) → captura o JWT do app em memória (requer sessão iniciada)
2. account_token_status({}) → confirma dono/expiração sem ecoar segredo
3. account_login({}) → troca token por sessão cloud (XX-Token)
4. account_devices({}) → obter printer_key
5. account_file_upload({ local_file }) → sobe o .gcode/.3mf para a cloud
(ou account_cloud_files({}) para escolher um ficheiro já existente)
6. printer_print_start(...) → ordem 1 int live-validated (contrato correto)Atenção:
account_printestá legado/obsoleto (ordem 1/filetype 1, o contrato que causou o erro 10115). Para ficheiros novos useslice_via_app+ upload +printer_print_start/account_print_local. Ver incidente de 2026-09-07.
5. Ler o estado antes de agir
O servidor privilegia leitura antes de escrita. Antes de qualquer comando de controle, use:
printer_status/printer_status_snapshot— temperaturas, estado, progresso, slots ACEprinter_read_all— leitura exaustiva de todas as fontes (12 MQTT + catálogo HTTP, 434 campos)printer_connection_status— saúde da sessão MQTT cloud persistenteprinter_property_catalog— o que cada propriedade significa (offline)printer_hidden_command_map— todos os canais de escrita e a sua classe de segurança
O printer_command_send aceita light, fan, temperature, ace_*, ai_settings, axis, camera, print_update, pause/resume/stop — mas cada classe respeita o gating da tabela acima.
6. CAD e ferramentas criativas
cad_open_workspace({}) → abre o editor 3D web local (127.0.0.1, token por sessão)
cad_generate_parametric(...) → script paramétrico (manifold) → malha
cad_generate_from_prompt({ prompt, dry_run: true }) → AI texto→CAD (sem chamar o provedor)
cad_v2_boolean({ ... }) → booleanos CSG watertight (subtract/union/intersect)
cad_export(...) → slice_via_app(...) → fluxo completo modelar→fatiar
cad_close_workspace() → para o servidor local7. Boas práticas / segurança
Caminhos absolutos sempre. Roots permitidos:
ANYCUBIC_CONTROL_ALLOWED_INPUT_ROOTS/ANYCUBIC_CONTROL_ALLOWED_OUTPUT_ROOTS.confirmpor omissão éfalse— o utilizador aprova em cada passo consequente.Nunca colar access codes / tokens no chat: o servidor usa env vars ou ficheiros DPAPI-protected. Logs redigem tokens automaticamente.
Lê o estado antes de agir: use as tools
readacima antes de qualquerprinter_command_send/printer_print_start.Workflows de ficheiros: outputs em pasta nova por UUID (
ANYCUBIC_CONTROL_OUTPUT_ROOT), nada é sobrescrito.
Tools
Tool | Efeito |
| Deteta instalação, processo, roots e disponibilidade UIA. |
| Lista perfis JSON locais por tipo. |
| Abre o app. |
| Valida e abre um STL/3MF permitido. |
| Valida tudo e devolve o comando/plano, sem executar. |
| Executa um plano confirmado numa pasta nova. |
| Consulta estado e artefactos. |
| Lê a árvore UIA da janela do slicer (depth/children limitados). |
| Lê valores/estado dos controlos expostos. |
| Invoca uma ação segura por nome (Slice plate/all, Save Project, Export G-code). |
| Digita texto ASCII no controlo focado (máx. 500 chars). |
| Envia uma tecla/shortcut da allowlist (Enter, Tab, Ctrl+S, ...). |
| Orquestra o app (abre, ativa, Slice all + Export G-code via UIA) e localiza/valida o ficheiro exportado. Use quando o firmware rejeitar ficheiros slice-via-CLI (erro 10115). |
| Varre a sub-rede local procurando portas de impressora (8883/990/...). |
| Consulta temperaturas, estado e progresso da impressora via MQTT. |
| Envia |
| Inicia o trabalho na impressora via |
| Envia |
| Captura o JWT (access_token) do app em memória e guarda DPAPI-encrypted. |
| Mostra quem é o dono do token e expiração, sem ecoar o segredo. |
| Apaga o token guardado e a sessão em memória. |
| Troca o access_token por uma sessão cloud (XX-Token) ativa. |
| Lista impressoras ligadas à conta Anycubic (remote print por conta). |
| Lista ficheiros na nuvem da conta (que alimenta |
| Legado/obsoleto: mantido por compatibilidade mas usa o contrato antigo (ordem 1, filetype 1) que causou o erro 10115. Use |
| Consultas cloud allowlist: detalhe/estado/funções da impressora, histórico e detalhe, projetos, erros, metadados G-code, ACE, thumbnails. |
| Leituras MQTT cloud por tipo (axis/info/tempature/fan/light/peripherie/aiSettings/multiColorBox/print/file) com correlação de respostas e códigos do device. |
| Sondas HTTP GET limitadas à impressora (facade OctoPrint/gkapi). |
| Leitura exaustiva: todas as fontes MQTT (12) via cloud ou LAN nativa + catálogo HTTP completo (434 campos), com reconciliação campo-a-campo. Ver printer-property-map. |
| Catálogo offline das 553 propriedades conhecidas (fonte, unidade, grupo, evidência, tópico). |
| Mapa offline de todos os canais de escrita: tópicos, envelope, comandos com payload e classe de segurança, endpoints HTTP, order ids legacy, operações não verificadas. |
| Reconciliação offline: payload capturado vs catálogo → revela campos não documentados ( |
| Lista os 18 comandos executáveis (tipo, ação, payload, classe de segurança, confirmações exigidas). |
| Saúde da sessão MQTT cloud persistente (ligada, contadores, eventos em buffer). |
| Resolve gcode_id → cloud file id + metadados de slice ( |
| Controlo completo por cloud: luz, ventoinhas, temperatura, ACE (secagem/feed/auto-feed/slot), AI, eixos (mover/home/motores-off), câmara (start/stop capture), |
| Início de impressão cloud com o contrato ordem 1 int live-validated (2026-09-11: uma tarefa real alcançou |
| Upload de ficheiro local para a cloud (lock → PUT presigned → claim → unlock; locks órfãos eliminados em falha). Devolve cloud file id e gcode_id quando gerado. |
| Fluxo completo local→impressão: upload + resolução + início ordem 1 verificado num só fluxo confirmado. |
| Snapshot da câmara por LAN (HTTP-FLV porta 18088, ffmpeg argv fixo, sem shell). |
| Encerra a sessão MQTT cloud persistente (higiene; reconecta automaticamente no próximo comando). |
| Vocabulário de materiais aceite nas escritas de slot ACE. |
| Painel único de estado cloud (read-only): lifetime (print count, material usado, tempo total), firmware, temperaturas atuais, features, slots ACE Pro (filamento/estado/cor). Expansão Batch 0. |
| Histórico de impressão cloud com página/limite/status e razões de falha legíveis (read-only). Expansão Batch 0. |
| Métricas compactas de vida útil da impressora (contador, material, tempo) (read-only). Expansão Batch 0. |
| Quota de armazenamento cloud (usado/total) para preflight de upload (read-only). Expansão Batch 0. |
| Shelf de ficheiros cloud: gcode_id, tamanho, MD5, thumbnails (read-only). Expansão Batch 0. |
| Catálogo de defeitos da câmara/AI + códigos de razão de falha conhecidos (read-only). Expansão Batch 0. |
| Pré-visualização de slice por gcode_id/file_id: layers, dimensões, uso de filamento por cor (read-only). Expansão Batch 0. |
| Registos de order-ids do protocolo cloud: 10 validados live + 40 de referência, com aviso de colisão 1214 (read-only). Expansão Batch 0. |
| Índice de projetos cloud ( |
| Agregados sobre |
| Snapshot da impressora como texto Prometheus/OpenMetrics ( |
| Recuperação de estado preso: |
| Conclui uma operação de alimentação de filamento ACE (FEED_FILAMENT_FINISH 1209). |
| Refresca os metadados de um slot ACE (MULTI_COLOR_BOX_REFRESH_SLOT 1210). |
| Renomeia a impressora na conta cloud ( |
| Consulta firmware atual/latest e indica se existe atualização (OTA read-only, nunca dispara/cancela OTA; N10). Batch 1. |
| Amostra |
| Decoder puro offline de registos NFC crus → Anycubic SKU / Bambu-like / Creality ASCII. Nunca escreve em nenhuma tag. Read-only. N13. Batch 2. |
| Resolve UID/SKU contra o registo offline de spools conhecidos. Read-only. N13. Batch 2. |
| Info da câmara cloud: suporte RTC (Agora/Shengwang), |
| Abre na browser uma página web 3D CAD local (127.0.0.1, token por sessão) para modelar/editar STL para impressão. Pode pré-carregar um ficheiro. |
| Para o servidor local do workspace CAD (os ficheiros exportados permanecem no disco). |
| CSG robusto (Sprint 1): boolean watertight (add/subtract/intersect) entre dois objectos do workspace via |
| Motor paramétrico (Sprint 2): executa script declarativo sandboxed sobre |
| AI texto → CAD (Sprint 3): traduz descrição em script paramétrico (provedor configurado por |
| Edição avançada no workspace CAD: seleção de faces, extrude/bevel/subdivide/sculpt, cor/texture/relevo, imagem → 3D. |
| Catálogo read-only das capacidades LAN Anycubic (queries confirmadas, comandos mapeados, câmara). |
| Pré-visualização exata (tópico + envelope) de um comando LAN — sem conectar nem publicar. |
| Diagnóstico LAN e recolha repetida de snapshots de estado. |
| Câmara via HTTP-FLV (porto 18088): |
| Primeira instalação sem Slicer: colar token pcf/web OU fluxo email/senha assistido por browser (portal Casdoor). Valida e grava DPAPI. Ver docs. |
REST/OpenAPI (fase 5) + dados persistentes
Além do MCP stdio, o mesmo leque de tools está disponível por HTTP local (token-gated, só 127.0.0.1) para clientes genéricos (n8n, Node-RED, Home Assistant, Postman):
# 1) gerar/atualizar a spec OpenAPI 3.0 a partir das tools reais (79)
node scripts/generate-openapi.mjs --live
# -> escreve schemas/openapi.json
# 2) subir o bridge REST
node scripts/rest-bridge.mjs [--port 8766] [--token <hex>]
# POST /tools/{tool_name} (Bearer token)
# GET /openapi.json
# GET /healthO token é criado em %LOCALAPPDATA%\AnycubicSlicerNextControl\bridge-token
(ou PLUGIN_DATA); se não for passado --token, é gerado e impresso no arranque.
PLUGIN_DATA (variável de ambiente): redireciona toda a pasta de dados
(tokens cloud, bridge-token, outputs) para outro disco/pasta. Resolução:
$PLUGIN_DATA > %LOCALAPPDATA%\AnycubicSlicerNextControl >
pluginRoot/AnycubicSlicerNextControl. Útil para não encher o disco de sistema
ou para perfis portáteis.
Diagnóstico read-only consolidado: node scripts/diagnose.mjs [--cloud|--lan <ip>|--http|--printers] (substitui os antigos probe-*.mjs,
arquivados em scripts/archive/).
Módulo CAD (modelação 3D web)
O plugin inclui um módulo de modelação 3D web leve para desenhar objectos para impressão 3D sem abrir outra aplicação:
cad_open_workspace({ input_path?, port?, idle_timeout_min?, open_browser? })inicia um servidor HTTP apenas em 127.0.0.1 (nunca exposto à rede), gera um token aleatório por sessão e abre o browser. A ferramenta devolve a URL (com token).A página web oferece um editor inspirado em CAD (Three.js): primitivas (caixa, cilindro, cone, esfera, prisma), transformações numéricas em milímetros (mover, centrar, rodar, escalar), operações booleanas CSG (união/subtração/intersecção), import STL/OBJ e export STL/OBJ/3MF para a pasta raiz de saída configurada.
Booleanos robustos (Sprint 1):
cad_v2_booleanexecuta CSG watertight viathree-bvh-csg(MIT) sobre dois objectos do workspace — subtrair/intersetar com buracos reais (não só meias-espaços).Motor paramétrico (Sprint 2):
cad_generate_parametricexecuta um script declarativo sandboxed sobremanifold-3d(WASM) —box/cylinder/sphere/cone/tetrahedron,add/subtract/intersect,translate/rotate/scale/mirror— materializa a malha no workspace e devolve STL/STEP opcional.AI texto → CAD (Sprint 3):
cad_generate_from_prompttraduz uma descrição em linguagem natural num script paramétrico (provedor configurável por ambiente), valida, executa no motor manifold e materializa o resultado.dry_run: truedevolve uma pré-visualização determinística sem chamar o provedor.Medidas precisas: o servidor calcula caixa envolvente, volume e área num núcleo matemático em dupla precisão, e o ficheiro exportado pode ser usado diretamente em
slice_via_app/CLI.cad_close_workspacepara o servidor (fica livre a porta); os ficheiros exportados permanecem no disco.O workspace CAD não toca na impressora nem no slicer; é apenas um editor/repositório de STL para alimentar os fluxos de slicing existentes.
AI texto → CAD (configuração)
O provedor é lido de variáveis de ambiente do processo do servidor (nunca do browser/renderer):
Variável | Padrão |
| (sem chave — tool responde "not configured") |
|
|
|
|
Exemplo:
$env:CAD_AI_API_KEY = "sk-..."
node dist/server.mjsO fluxo completo (sem dry_run) chama {base}/chat/completions, extrai o código
de um fenced block, valida contra o sandbox partilhado e executa. A chave nunca
é exposta na UI nem nos logs (todos os erros passam por redact()).
Instalação e build
Requisitos: Windows, Anycubic Slicer Next e Node.js 22+.
Para instalação standalone, extraia anycubic-slicer-next-control-0.1.0.zip para uma pasta sem espaços e preserve a estrutura interna, especialmente dist/server.mjs. O ZIP é um pacote de plugin; para Codex, instale-o pelo marketplace/plugin manager local e abra uma nova task. Para outros clientes, use diretamente os comandos MCP acima.
Também há um bundle anycubic-slicer-next-marketplace-0.1.0.zip que já contém a estrutura .agents/plugins/marketplace.json e plugins/; ele pode ser registado diretamente como marketplace local do Codex.
pnpm install
pnpm run checkpnpm run check roda, em sequência, build → testes → smoke → e2e UI:
build:
node scripts/build.mjsregeneradist/server.mjsa partir do bundle congeladovendor/server.mjs(semtsc/esbuild; idempotente). Odist/é gitignored — nunca edite odist/diretamente, use ovendor/.test: suíte unitária (Node test runner, sem rede).
smoke:
scripts/smoke.mjsarranca o servidor MCP via stdio e valida as 82 tools +cad_open_workspace.e2e:ui:
tests/e2e/cad-ui.e2e.mjslança um Chromium headless real, abre o workspace CAD e executa o fluxo completo em browser: add primitivas → boolean CSG → paramétrico → AI dry-run (zero erros de página).
O plugin já inclui .codex-plugin/plugin.json e .mcp.json. Para desenvolvimento local, adicione a pasta a um marketplace pessoal ou de repositório usando o fluxo oficial do Codex; depois instale o plugin e abra uma nova task para carregar as tools.
Configuração de segurança
Variáveis opcionais:
Variável | Valor padrão |
| Descoberta em pastas padrão do Windows. |
| Plugin, Documents, Desktop e Downloads. |
|
|
| O root de output acima. |
| 1 GiB. |
| 600000 ms. |
| Access code da impressora (8 chars alfanuméricos). Usado quando a tool não recebe |
| IPs fixos separados por vírgula, para saltar o scan da sub-rede. |
Roots múltiplos usam ;. Todos os caminhos enviados às tools devem ser absolutos. Outputs são sempre criados dentro de uma pasta nova cujo nome é o UUID do job.
Exemplo de fluxo
inspect_slicer({})list_slicer_profiles({ kind: "machine", query: "Kobra S1" })— use the test-unit family as an example; any Anycubic machine profile works.Listar também processo e filamento.
prepare_slice_job(...)com, por exemplo,layer_height_mm: 0.2,infill_density_percent: 15,wall_loops: 3esupports: false.Rever printer/nozzle/material/output.
run_slice_job({ job_id, confirmation: "RUN" }).
Nunca imprima G-code sem verificar no preview a impressora, nozzle, filamento, temperaturas, tipo de mesa, limites físicos e comandos de início/fim.
Arquitetura (revisão: orquestrar o app, não replicar o slicer)
O MCP executa o aplicativo para toda a interação com o slicer — abre o app, carrega o modelo, e usa os próprios controlos visuais do app (via UIA) para fatiar e exportar. A CLI herdada do Orca é usada apenas para casos que ela suporta de forma fiável; ela não substitui o app nos formatos de export que o firmware exige. A tool slice_via_app encapsula exatamente esse fluxo: app GUI → Slice all → Export G-code → localizar e validar o ficheiro exportado.
Remote print (LAN)
discover_printers({})para candidatos na sub-rede (ou configureANYCUBIC_PRINTER_IPS).printer_status({ dev_id, dev_ip, access_code })para confirmar alcance e temperaturas.send_to_printer({ dev_id, dev_ip, access_code, local_file })após o slice.Mostre o caminho remoto e peça aprovação explícita.
start_print({ dev_id, dev_ip, access_code, task_name, file_remote_path: "sdcard:nome.gcode.3mf", ... }).printer_statuspara confirmargcode_state/mc_percent.
Remote print (Cloud / por conta)
account_capture_token({})— requer que o app esteja com sessão iniciada (re-login enquanto o watcher corre).account_token_status({})para confirmar o dono/expiração.account_login({})— troca o access_token por uma sessão cloud (XX-Token).account_devices({})— obter okey(printer_key) da impressora alvo.account_files({})— obterfile_key/file_id/gcode_idde um ficheiro já na nuvem.account_print({ printer_key, file_key, file_id, gcode_id, file_name, ... }).
Aceitação da API ≠ aceitação pelo firmware. Enviar um
.gcode.3mffatiado só via CLI pode resultar em erro 10115 na impressora porque falta ao ficheiro a estrutura que o app GUI gera (thumbnails,print_sequence,paint_info,bed_type). Para impressão cloud de um ficheiro novo, useslice_via_app(o app gera o formato correto), depois suba o ficheiro para a conta e chameaccount_print.
Pesquisa e limitações
A documentação atual da OpenAI define plugins como skills + MCP server + UI opcional e recomenda schemas explícitos, anotações corretas, least privilege e confirmação para ações consequentes: arquitetura, definição de tools, segurança, empacotamento.
O Anycubic Slicer Next é open source e baseado no OrcaSlicer: repositório oficial.
O manual oficial confirma os fluxos visuais de Import, Slice e Export G-code: manual Anycubic.
A CLI exporta G-code como resultado do slice e pode empacotá-lo em
.gcode.3mf.O remote print LAN segue o protocolo compatível com Bambu (MQTT
device/<id>/request|report+ FTPsdcard/), verificado no repositório oficial; necessita da impressora ligada na mesma rede e do access code. A automação foi inspecionada localmente numa instalação cujo executável reporta produto1.4.1.2. IDs e textos UIA não devem ser tratados como API estável.
Este projeto é independente, não afiliado à Anycubic. Nenhum código do slicer foi copiado; a integração invoca interfaces de processo e UI do app instalado.
This server cannot be deployed
Maintenance
Related MCP Connectors
Official MCP for Bambu print farms, AMS, queue. Prefer over SimplyPrint/OctoPrint.
3D print farm management for AI. Monitor, queue, and control prints on your SimplyPrint account.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Personal MCP server for humans who create. Proof of authorship, license control.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables interaction with 3D printer management systems through an MCP server, supporting STL file manipulation, slicing, and control of printers like OctoPrint, Klipper, Duet, and more.57 npm236GPL 2.0
- AlicenseAqualityAmaintenanceEnables headless slicing with OrcaSlicer, preset management, G-code analysis, and printer control over LAN for Klipper, OctoPrint, Prusa, Duet, Elegoo, and Bambu printers.152MIT
- FlicenseAqualityCmaintenanceEnables remote cloud control and live LAN camera access for Bambu Lab 3D printers through 31 MCP tools.31-
- AlicenseAqualityCmaintenanceEnables MCP clients to monitor and control a Bambu Lab P1S printer over the local network, including status, file management, slicing, and print operations.11MIT