← Back to directory
COMPARE UP TO 4 SERVERS

Compare MCP servers

Compare scores, permissions, risks, and fit in one decision-focused table.

DimensionMCP 3D Printer ServerConnect MCP clients to major 3D printers for STL/3MF editing, slicing, and printing.CompartmentEncrypted, fully offline long-term memory for AI agents
FMRS53 / 100 · D75 / 100 · B
Reliability9 / 2012 / 20
Security and permissions8 / 2016 / 20
Maintenance11 / 2014 / 20
Documentation14 / 2018 / 20
Setup experience11 / 2015 / 20
Best for
  • Users with OctoPrint, Klipper, Duet, Repetier, Bambu Lab, Prusa, or Creality printers
  • Users who want to drive printing and model workflows from an MCP client in natural language
  • Technical users needing an end-to-end modify-STL, slice, and print workflow
  • Bambu users using FULU OrcaSlicer-bambulab or Bambu Studio as the project slicer
  • Individuals or teams who prioritise privacy and offline operation and do not want data leaving the machine
  • Users who share memory across multiple MCP clients such as Claude Code, Claude Desktop, Hermes Agent, OpenClaw, Cursor, Codex and Gemini CLI
  • Scenarios that need encrypted storage, a hash-chained audit log and verifiable vault migration
  • Users who want low-latency recall, a bundled embedding model and no extra LLM calls inside the memory layer
Not for
  • Users without any supported printer or printer management system
  • Users unwilling to provide printer credentials (API keys, access tokens, serial numbers)
  • Users expecting to override slicer settings such as layer height or temperature directly from MCP (must be done before generating the 3MF)
  • Users expecting complete real-time streaming Bambu status semantics (status reading remains limited)
  • Bambu users without Developer Mode and LAN Only Mode enabled or whose printer is not on the same network
  • Users who need cloud multi-device sync or a hosted team memory service; moving between machines means locking the vault and copying the file
  • Users who expect the server itself to run an LLM that extracts facts and decides what to remember; Compartment explicitly keeps no LLM inside and leaves that to the host model
  • Users who cannot keep a passphrase safe or who need a recovery path if it is lost, since Compartment never generates a password, seed or recovery phrase
  • Deployments that require network transports such as SSE or streamable-http; this server is stdio only and opens no ports
Required permissions
  • API key or Bearer token for the printer management system
  • Bambu Lab serial number (BAMBU_SERIAL) and access token (BAMBU_TOKEN)
  • Network access to the printer's local network (including Bambu MQTT port 8883 and FTPS port 990)
  • Read/write access to the local filesystem for STL, G-code, and 3MF files and the temp directory
  • Ability to launch external slicer executables (SLICER_PATH) and optionally the FULU bridge command
  • Optional MCP_ALLOW_EXECUTABLE_ARG=1 to accept per-call local executable selectors
  • Read and write the vault file under the user's home directory, by default ~/.compartment/memory.vault, and its sibling settings file
  • Access the session directory holding the unlock credential (configurable with COMPARTMENT_SESSION_DIR), which also carries the shared embedding process's Unix socket
  • Optionally use the macOS keychain (compartment unlock --keychain is an explicit opt-in, and it survives reboots)
  • Write or merge an mcpServers entry into each MCP client's own configuration file, taking a byte-exact backup first
  • Install a PostToolUse hook for Claude Code that captures memory files the agent writes
  • Serve a read-only dashboard on 127.0.0.1 behind a one-time random URL token
Risks and side effects
  • STL operations load entire models into memory; large files (e.g., over 10MB) can cause out-of-memory issues
  • Bambu file operations may use unsecured plain FTP, exposing transfers to network eavesdropping
  • A wrong Bambu model preset (bambu_model) can generate dangerous G-code and cause the bed to crash into the nozzle and damage the printer
  • Allowing per-call executable paths (MCP_ALLOW_EXECUTABLE_ARG) lets untrusted input choose which local program runs; enable only for trusted diagnostics
  • Tool output should be treated as untrusted input, so prompt injection is a risk and destructive operations should have human confirmation gates
  • Credentials are stored as environment variables in client config, so a leak grants printer control
  • A leaked passphrase means the encrypted content can be decrypted; Compartment generates no recovery phrase and cannot recover a lost passphrase
  • Enabling the memory_unlock tool places the passphrase in the model's context, which is why it is off by default
  • If a 2FA keyfile is lost, for example a USB stick, the vault cannot be opened even with the passphrase
  • `export --plaintext` writes the vault as unencrypted JSONL, so that file must be handled carefully
  • Memory content can come from untrusted sources; recall wraps memories with a notice that they are stored data and content can be marked quarantined, but the host agent must still treat memory as data to limit prompt-injection risk
  • The capture hook and client integration write into the user's own settings files, although the implementation backs up and merges rather than replacing
Supported clientsClaude Desktop, Claude Code, Cursor, CodexClaude Desktop, Claude Code, Hermes Agent, OpenClaw, Cursor, VS Code, Codex, Gemini CLI, Cline, Roo Code, Zed, OpenCode, LM Studio, AnythingLLM, BoltAI, Goose, Kiro
Tools2314