bambu-studio-mcp
Provides tools for interacting with Bambu Lab 3D printers, including checking printer status, controlling prints (pause, resume, cancel), sending G-code commands, listing and uploading files to the printer's SD card, and slicing 3MF projects via Bambu Studio.
Click on "Install 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., "@bambu-studio-mcpwhat's the current print progress?"
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.
bambu-studio-mcp
Servidor MCP (Model Context Protocol) que integra o Bambu Studio e impressoras Bambu Lab ao Claude (Claude Desktop e Claude Code). Funciona em Windows, macOS e Linux — instale em quantos desktops quiser.
O que o Claude passa a conseguir fazer
Ferramenta | O que faz |
| Diagnóstico da instalação (use primeiro em cada desktop novo) |
| Status da impressora: progresso, temperaturas, camadas, AMS/filamentos |
| Pausar / retomar / cancelar a impressão |
| Iniciar impressão de um |
| Enviar G-code direto (temperaturas, fans, home etc.) |
| Listar arquivos do SD da impressora (via FTPS) |
| Enviar um arquivo local para o SD da impressora |
| Fatiar um projeto |
| Abrir um arquivo (ou o app) no Bambu Studio local |
Fluxo típico: bambu_slice → bambu_upload_file → bambu_start_print → bambu_status.
Related MCP server: Bambu Lab MCP Server
Pré-requisitos
Node.js 18+ — https://nodejs.org
Bambu Studio instalado (apenas para as ferramentas de fatiamento/abrir app; as de impressora funcionam sem ele)
Impressora em modo LAN acessível na rede (para as ferramentas de impressora):
IP da impressora: tela da impressora → Configurações → WLAN
Access Code: mesma tela (LAN Only Mode não precisa estar ativado — o Access Code funciona mesmo com a nuvem ligada, desde que "LAN Mode Liveview/acesso" esteja habilitado)
Número de série (SN): tela da impressora → Configurações → Dispositivo, ou etiqueta na traseira
Instalação (repita em cada desktop)
Clone o repositório:
git clone https://github.com/naderfilho/mcp.yuri.gitInstale as dependências:
cd mcp.yuri && npm installRegistre o servidor no cliente Claude (abaixo).
Claude Code (CLI / app desktop, recomendado)
claude mcp add bambu --scope user -e BAMBU_PRINTER_IP=192.168.1.50 -e BAMBU_ACCESS_CODE=12345678 -e BAMBU_SERIAL=01S00A000000000 -- node "C:/caminho/para/mcp.yuri/src/index.js"--scope user deixa o servidor disponível em todos os projetos daquele desktop.
Claude Desktop (app de chat)
Edite o arquivo de configuração:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"bambu": {
"command": "node",
"args": ["C:/caminho/para/mcp.yuri/src/index.js"],
"env": {
"BAMBU_PRINTER_IP": "192.168.1.50",
"BAMBU_ACCESS_CODE": "12345678",
"BAMBU_SERIAL": "01S00A000000000",
"BAMBU_STUDIO_PATH": "C:/Program Files/Bambu Studio/bambu-studio.exe"
}
}
}
}Reinicie o Claude Desktop depois de salvar. Um exemplo pronto está em examples/claude_desktop_config.example.json.
No Claude, peça: "rode bambu_check_setup" — ele confirma o que está funcionando naquele desktop.
Variáveis de ambiente
Variável | Obrigatória? | Descrição |
| Para ferramentas de impressora | IP local da impressora |
| Para ferramentas de impressora | Access Code do LAN mode |
| Para ferramentas de impressora | Número de série da impressora |
| Não | Caminho do executável do Bambu Studio (auto-detectado nos locais padrão) |
Todas podem também ser passadas por chamada (ip, access_code, serial), útil para controlar mais de uma impressora a partir do mesmo desktop.
Dicas para múltiplos desktops
O servidor roda localmente via stdio em cada máquina — nada é exposto na internet; a comunicação com a impressora fica restrita à rede local (MQTT 8883 + FTPS 990).
Cada desktop pode ter caminho de Bambu Studio e impressora diferentes: basta ajustar as variáveis
envdaquele desktop.Se publicar no GitHub, atualizar todos os desktops vira um
git pull && npm install.Impressoras A1/P1 têm firmware mais restrito em algumas chamadas FTPS/MQTT; X1/X1C/P1S com firmware atualizado funcionam plenamente em LAN mode.
Como funciona (protocolo)
MCP: transporte stdio, SDK oficial
@modelcontextprotocol/sdk— compatível com qualquer host MCP.Impressora: MQTT sobre TLS (
mqtts://IP:8883, usuáriobblp, senha = Access Code), tópicosdevice/{serial}/request|report; arquivos via FTPS implícito na porta 990.Bambu Studio: CLI (
--slice/--export-3mf) para fatiar e abertura do app para edição visual.
Solução de problemas
"Falha na conexão MQTT" — confira IP e Access Code; o Access Code muda se a impressora for resetada ou trocar de rede.
"não recebeu dados da impressora" — o número de série (
BAMBU_SERIAL) está errado.Fatiamento falha com STL — a CLI precisa de perfis; abra o STL no Bambu Studio, configure impressora/filamento/processo e salve como projeto
.3mf, então fatie o.3mf.Firewall — permita saída para as portas 8883 (MQTT) e 990 (FTPS) na rede local.
Available Tools
9 toolsbambu_check_setupVerificar configuração da integraçãoA
Diagnóstico: verifica se o Bambu Studio foi encontrado nesta máquina e se as variáveis de ambiente da impressora estão definidas, e testa a conexão MQTT se estiverem. Use esta ferramenta primeiro em um desktop novo.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Sem anotações, a descrição carrega o peso de trazer transparência. Ela detalha as verificações e o teste condicional MQTT, tudo com verbos não-destrutivos ('verifica', 'testa'). Não menciona explicitamente que é read-only ou o formato do relatório, mas o prefixo 'Diagnóstico:' e os verbos sugerem comportamento sem efeitos colaterais.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Duas frases curtas, com 'Diagnóstico:' na frente e a diretriz de uso no final. Sem desperdício, cada palavra contribui. A estrutura é direta e otimizada para leitura por um agente.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Ferramenta de baixa complexidade (0 parâmetros, sem schema de saída) e descrição cobre operação, condicional e diretriz. Falta indicar o formato do resultado ou critérios de falha, mas é suficiente para um agente chamar corretamente. Dado o contexto simples, está quase completo.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parâmetros são inexistentes (schema vazio, cobertura 100%), então o baseline é 4. Não há necessidade de explicar parâmetros; a descrição não adiciona nada além do já presente no schema, mas isso é apropriado.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A descrição afirma explicitamente que é um diagnóstico que verifica a presença do Bambu Studio, a definição das variáveis de ambiente e testa a conexão MQTT condicionalmente. O verbo 'verifica' e 'testa' combinam com o recurso (instalação/ambiente/conexão) e distinguem claramente do bando de siblings como bambu_status e bambu_start_print.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A descrição dá uma orientação de uso clara: 'Use esta ferramenta primeiro em um desktop novo' (use this tool first on a new desktop). Falta indicar alternativas ou quando não usar, mas o contexto de verificação prévia é suficiente para orientar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_list_filesListar arquivos do SD da impressoraA
Lista arquivos do cartão SD da impressora Bambu Lab via FTPS. Diretórios úteis: '/' (raiz, onde ficam os .gcode.3mf enviados), '/timelapse', '/cache'.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP da impressora (sobrepõe BAMBU_PRINTER_IP) | |
| dir | No | Diretório a listar (padrão '/') | |
| serial | No | Número de série (sobrepõe BAMBU_SERIAL) | |
| access_code | No | Access Code do LAN mode (sobrepõe BAMBU_ACCESS_CODE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does add the FTPS protocol detail and useful directory paths, but it does not describe the return format, whether the listing is recursive, or authentication/connection expectations. 'Lista' implies a read-only operation, but other behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action is front-loaded, and the directory guidance is compact, relevant, and immediately useful. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should cover return shape and connection behavior. It gives the protocol and useful directories, but omits what the response looks like and any error or authentication details. This is adequate for a simple list operation but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds genuine value for the 'dir' parameter by enumerating useful directories and explaining where uploaded .gcode.3mf files live, which the schema does not provide. The other parameters are adequately documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lista') and resource ('arquivos do cartão SD da impressora Bambu Lab via FTPS'), making the tool's purpose immediately clear. It also distinguishes itself from siblings like bambu_upload_file and bambu_status by focusing on listing existing SD card contents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful directory context ('/', '/timelapse', '/cache'), which implies when the tool is useful, such as inspecting stored .gcode.3mf files before printing. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_open_in_studioAbrir arquivo no Bambu StudioA
Abre um arquivo (.3mf, .stl, .step, .obj...) no aplicativo Bambu Studio nesta máquina, ou apenas abre o app se nenhum arquivo for informado.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Arquivo a abrir (opcional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the main behavior (opens the local app, with a distinct no-file branch) which is genuinely valuable, but it does not state failure modes — e.g., what happens if the app is not installed or the file path is invalid — nor whether the call blocks until the app is closed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the core action and format list, then handles the optional-parameter branch without repetition. Every clause earns its place, and nothing extraneous is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter tool with no output schema, the description covers the essential invocation details: what to pass and what happens otherwise. Gaps are the lack of error/return behavior and the implicit prerequisite that Bambu Studio must be installed on the local machine.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, putting the baseline at 3, but the description adds real value: it enumerates the accepted extensions and explains the consequence of omitting file_path (the app opens with no file). This behavioral meaning goes beyond the schema's terse 'Arquivo a abrir (opcional)'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a specific verb-resource pair — 'Abre um arquivo no aplicativo Bambu Studio' — and further narrows scope with supported formats (.3mf, .stl, .step, .obj) and the machine locality. The no-file branch (just open the app) crisply distinguishes it from the siblings, all of which involve the 3D printer rather than the local Studio application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: opening a file or launching the Bambu Studio app on this machine. It does not explicitly name sibling alternatives like bambu_slice or bambu_upload_file as exclusions, but the 'nesta máquina' qualifier and the emphasis on the desktop app make the appropriate context obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_print_controlControlar impressão (pausar/retomar/parar)A
Pausa, retoma ou cancela a impressão atual da impressora Bambu Lab. ATENÇÃO: 'stop' cancela a impressão em andamento de forma irreversível.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP da impressora (sobrepõe BAMBU_PRINTER_IP) | |
| action | Yes | Ação: pause, resume ou stop (cancelar) | |
| serial | No | Número de série (sobrepõe BAMBU_SERIAL) | |
| access_code | No | Access Code do LAN mode (sobrepõe BAMBU_ACCESS_CODE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the most critical behavior: 'stop' is irreversible. However, it does not explain what happens if there is no active print, whether the pause/resume are idempotent, or any connection/error behavior. Partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, with the purpose stated first and the safety-critical warning immediately after. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple control command with 4 schema-covered parameters and no output schema, the description plus schema is nearly sufficient. The main missing context is the condition of an active print or the effects when no job is running, but the core operations and the critical irreversible 'stop' are clearly conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are fully described in the schema (100% coverage) and there is an enum on 'action'. The description adds the irreversible consequence of 'stop', which adds a little semantic clarity to a parameter value, but the rest is already covered by the schema. Baseline of 3 because the schema does not supply heavy value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly names the three actions (pause, resume, cancel) and the specific resource (current print of the Bambu Lab printer), making it clearly distinguishable from sibling tools like bambu_start_print and bambu_status. The verb+resource combination is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no explicit when-to-use or when-not-to-use guidance, and does not name alternatives. The irreversibility warning is a safety note, not a usage routing guideline. The user must infer that this is for controlling an ongoing print rather than starting one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_send_gcodeEnviar linha(s) de G-codeA
Envia G-code diretamente para a impressora (LAN mode). Útil para ajustar temperaturas (M104/M140), fans (M106), mover eixos (G28/G0), LED, etc. Use com cautela durante impressões.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP da impressora (sobrepõe BAMBU_PRINTER_IP) | |
| gcode | Yes | G-code a enviar; várias linhas separadas por \n. Ex.: 'M104 S220' | |
| serial | No | Número de série (sobrepõe BAMBU_SERIAL) | |
| access_code | No | Access Code do LAN mode (sobrepõe BAMBU_ACCESS_CODE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose LAN-mode operation and warns to use caution during prints, but it does not mention authentication prerequisites, error behavior, or that commands are sent without validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: action first, then use cases, then a safety caution. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple send-command tool, the description covers purpose, typical commands, and a safety warning. It omits response/error details and explicit prerequisites, but the schema covers parameters and no output schema is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds example G-code values but does not elaborate on ip, serial, or access_code semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Envia') and a clear resource ('G-code diretamente para a impressora'), and it gives concrete examples such as M104/M140, M106, G28/G0. This makes the tool's purpose unmistakable and distinguishes it from file-management and print-control siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It enumerates concrete use cases (temperature, fans, axes, LED), which tells an agent when to invoke it. It also adds a caution for use during prints, but it does not explicitly name alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_sliceFatiar modelo com o Bambu Studio (CLI)A
Fatia um arquivo 3MF de projeto usando a linha de comando do Bambu Studio e exporta um .gcode.3mf pronto para impressão. Funciona melhor com projetos .3mf salvos pelo Bambu Studio (que já contêm perfis de impressora/filamento/processo). Para STL puro, abra antes no Bambu Studio, configure e salve como .3mf. O resultado pode ser enviado à impressora com bambu_upload_file + bambu_start_print.
| Name | Required | Description | Default |
|---|---|---|---|
| plate | No | Placa a fatiar: 0 = todas (padrão), 1..N = placa específica | |
| extra_args | No | Argumentos extras de CLI do Bambu Studio (ex.: --load-settings, --load-filaments) | |
| input_path | Yes | Caminho do arquivo .3mf (projeto) ou .stl a fatiar | |
| output_path | No | Caminho do .gcode.3mf de saída (padrão: mesmo nome com sufixo .gcode.3mf) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool invokes the Bambu Studio command line, produces a .gcode.3mf file, and implies a non-destructive operation on the input. It does not mention error cases or potential side effects like overwriting existing output files, but the core behavior is clear and not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four concise sentences in Portuguese. It opens with the main purpose, then provides best practices, and finally mentions the next steps. Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters (1 required), no output schema, and no annotations. The description explains the tool's purpose, input requirements, and workflow, but does not specify the return format (e.g., whether it returns a success message or file path). While the mention of sending the result implies the output, a clearer statement of the return value would make it complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining that .3mf project files are preferred and that STL files require a preparatory step in Bambu Studio. This clarifies the input_path parameter's semantics and helps the agent choose valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Fatia) and resource (arquivo 3MF), and clearly defines the output (.gcode.3mf). It distinguishes itself from siblings by mentioning the CLU workflow and referring to other tools like bambu_upload_file and bambu_start_print, which clarifies its role in the printing pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when this tool is most appropriate (with .3mf projects saved from Bambu Studio containing profiles) and gives a clear prerequisite for STL files (open in Bambu Studio and save as .3mf first). It also suggests follow-up tools, providing concrete usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_start_printIniciar impressão de arquivo no SDA
Inicia a impressão de um arquivo .gcode.3mf que já está no cartão SD da impressora (use bambu_upload_file antes, se necessário, e bambu_list_files para ver o que há no SD). Por padrão imprime a placa 1 com nivelamento de mesa.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP da impressora (sobrepõe BAMBU_PRINTER_IP) | |
| plate | No | Número da placa a imprimir (padrão 1) | |
| serial | No | Número de série (sobrepõe BAMBU_SERIAL) | |
| use_ams | No | Usar AMS (padrão true) | |
| filename | Yes | Nome do arquivo no SD, ex.: 'modelo.gcode.3mf' (caminho relativo à raiz do SD) | |
| timelapse | No | Gravar timelapse (padrão false) | |
| access_code | No | Access Code do LAN mode (sobrepõe BAMBU_ACCESS_CODE) | |
| bed_leveling | No | Nivelar a mesa antes (padrão true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses default values (plate=1, bed_leveling=true, use_ams=true, timelapse=false) and the fact it reads from SD, but it does not explain whether the call blocks until print completion, how errors are surfaced, or authentication requirements beyond parameters. This is a moderate disclosure but leaves room for important behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The primary purpose is stated first, followed by the relevant workflow. It is perfectly sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, full schema descriptions, but no output schema, the description covers the essential workflow (upload → list → print) and defaults. It lacks details on asynchronous behavior and error handling, but for a start-print command, the provided context is largely sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the schema. The description adds only minor context (e.g., file path relative to SD root is in the schema too). The defaults mentioned in the description mirror schema defaults, so it does not significantly enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it starts printing a .gcode.3mf file already on the SD card, using a specific verb (Inicia) and resource (impressão de arquivo). It distinguishes from siblings by explicitly referencing the upload and list workflow, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear workflow guidance: use bambu_upload_file first if needed and bambu_list_files to check the SD contents. It also states defaults for plate and bed leveling, giving context on typical invocation. However, it does not explicitly mention when not to use it or compare with alternatives like bambu_send_gcode, though the implied flow is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_statusStatus da impressora Bambu LabA
Consulta o status da impressora Bambu Lab via MQTT (LAN mode): estado da impressão, progresso, temperaturas (bico/mesa/câmara), camadas, AMS e filamentos carregados. Use raw=true para receber o JSON completo do relatório.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP da impressora (sobrepõe BAMBU_PRINTER_IP) | |
| raw | No | Se true, retorna o JSON bruto completo do estado | |
| serial | No | Número de série (sobrepõe BAMBU_SERIAL) | |
| access_code | No | Access Code do LAN mode (sobrepõe BAMBU_ACCESS_CODE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it carries it reasonably: it signals a read-only operation ('Consulta'), discloses the transport mechanism ('via MQTT (LAN mode)'), and explains the behavior of raw=true (returns the complete JSON estado report). It does not disclose failure behavior when LAN mode is unreachable or credentials are wrong, but the schema covers the parameter-based auth, so the main behavioral risks are addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both essential: the first front-loads the verb, resource, method, and inventory of returned data; the second gives the raw-mode usage hint. No filler, and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only status tool with 4 optional parameters, no enums, and no nested objects, the description covers the return content (which fields appear in the report), the operation mode, and the alternative raw behavior — sufficient given there is no output schema. It could be a 5 with a note on typical failure conditions (printer offline or LAN mode disabled), but the current description is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even with no parameter content in the description. The description's raw=true note ('receber o JSON pronto do relatório') largely restates what the schema already says ('Se true, retorna o JSON bruto completo do estado'), so it adds no substantial meaning over the schema. ip/serial/access_code semantics are already covered by the schema's override notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Consulta' / queries) plus a clear resource ('status da impressora Bambu Lab'), and enumerates the exact data returned (estado, progresso, temperaturas, camadas, AMS, filamentos). This makes it easy to tell apart from siblings like bambu_print_control, bambu_start_print, and bambu_send_gcode without opening those schemas. It stops short of naming a sibling explicitly, so it misses full differentiation credit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: because the tool reads status and the only usable alternative tools are control/slicing/file actions, an agent can infer 'use this when you need the current printer state.' There is no explicit when/when-not language, no named alternatives, and no guidance that this tool does not perform commands or that LAN mode must be enabled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bambu_upload_fileEnviar arquivo para o SD da impressoraA
Envia um arquivo local (normalmente um .gcode.3mf fatiado) para o cartão SD da impressora via FTPS. Depois use bambu_start_print para imprimi-lo.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP da impressora (sobrepõe BAMBU_PRINTER_IP) | |
| serial | No | Número de série (sobrepõe BAMBU_SERIAL) | |
| local_path | Yes | Caminho local do arquivo a enviar | |
| access_code | No | Access Code do LAN mode (sobrepõe BAMBU_ACCESS_CODE) | |
| remote_name | No | Nome do arquivo no SD (padrão: mesmo nome do arquivo local) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure. It does state the network protocol (FTPS) and that it is an upload, but it does not mention potential side effects like overwriting existing files, permission requirements, or failure modes. The action is clear, but transparency is limited compared to what could be expected for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise and well-structured – two sentences, with the primary purpose front-loaded and a useful follow-up hint at the end. Every part serves a purpose: what it does, how it does it, and what to do next. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is fairly complete. It covers the essential purpose, transfer method, and next step. It does not mention prerequisites (e.g., FTPS credentials) or error handling, but these are not critical for a basic upload operation and are partially implied by the sibling tools like bambu_check_setup. A minor gap, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all five parameters have descriptive text. The description does not add significant semantic value beyond the schema; it only reiterates that local_path is a local file and mentions the typical extension. It does not clarify relationships or edge cases, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (sends a local file to the printer's SD card) with the method (via FTPS) and typical file type (.gcode.3mf). It clearly distinguishes itself from siblings by naming the follow-up tool, and the verb 'Envia' + resource 'arquivo local' is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly indicates when to use this tool (when you have a local sliced file to upload) and gives a direct usage pattern: 'Depois use bambu_start_print voor imprimi-lo' – a clear pointer to the next step. This effectively guides the agent on how to chain operations, though it doesn't explicitly mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
bambu_check_setup - First observed
bambu_list_files - First observed
bambu_open_in_studio - First observed
bambu_print_control - First observed
bambu_send_gcode - First observed
bambu_slice - First observed
bambu_start_print - First observed
bambu_status - First observed
bambu_upload_file
TDQS
Scored across 9 tools
Each tool targets a distinct action or resource: status monitoring, high-level print control, file management, slicing, and setup diagnostics are clearly separated. Even the more similar tools like bambu_status and bambu_check_setup have different purposes—one queries printer state, the other checks local environment connectivity.
All tools share the consistent bambu_ prefix and use snake_case, and most follow a verb_noun pattern like start_print, list_files, and upload_file. A few names break the pattern slightly (bambu_status, bambu_slice, bambu_print_control), but the overall style remains predictable and readable.
Nine tools is a well-scoped set for a Bambu Lab printer server, covering the main workflow without redundancy or bloat. Each tool earns its place in the pipeline from slicing through uploading, printing, controlling, and monitoring.
The tool set covers the full core workflow: open in studio, slice, upload, list, start, control, and status, plus raw G-code and setup diagnostics. Minor gaps exist like file deletion or downloading timelapses, but they are not essential to the primary printing workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Manage your IoT device fleet directly from Claude. Create device templates with datastreams and events, provision new devices, read live sensor data, and control outputs. The Blynk connector integrates with the Blynk IoT platform, enabling direct configuration and monitoring of connected devices and infrastructure.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides end-to-end 3D printing automation for Bambu Lab printers, allowing users to generate, slice, and monitor prints using natural language. It features model generation from text or images, real-time camera monitoring, and automated print quality improvement.-
- AlicenseAqualityBmaintenanceEnables comprehensive control and monitoring of Bambu Lab 3D printers through Claude using local MQTT, FTPS, and X.509 authentication. Users can manage print jobs, monitor real-time status, handle filament through AMS, and adjust hardware settings like temperature and lighting.241819MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to connect Claude with various 3D printer management systems, allowing tasks like printer status monitoring, file management, print job control, and STL file manipulation.62GPL 2.0
- AlicenseNot gradedqualityDmaintenanceEnables Claude to create 3D-printable CAD models using build123d, with tools for modeling, modification, analysis, and publishing to platforms like Thingiverse and GitHub.11Creative Commons Attribution Non Commercial No Derivatives 4.0 International