MCP server
Filament Management includes a built-in MCP server, so an MCP client — Claude, or any other MCP-compatible tool — can read your inventory, or manage it, directly in conversation. There's nothing extra to install or host: turn it on in Settings, point your client at one URL, and sign in with your normal account.
Enabling it
Under Settings → MCP server (admin only):
- Enable MCP server — off by default. While off, the server rejects every request, including ones from clients that connected before it was disabled.
- Access mode — Read-only exposes list/get tools only. Read and write additionally exposes create/update/delete tools. Switching modes takes effect immediately for every already-connected client, not just new connections — there's no separate token to reissue or revoke, and no other way to grant write access short of this toggle.
The page also shows the server URL you'll give to your MCP client:
https://your-instance/api/v1/mcp
Everything else — where to authenticate, how to register as a client — is discovered automatically by the client from that one URL, per the MCP authorization spec.
Connecting from Claude
Claude.ai (web or desktop)
- Open Settings → Connectors in Claude.
- Choose Add custom connector.
- Paste your server URL (
https://your-instance/api/v1/mcp) and confirm. - Claude opens a browser window to your Filament Management instance. Log in if you're not already, then approve the consent screen — it names the connector and the access level it's requesting (matching whatever mode is currently set in Settings).
- Once approved, the connector shows as connected and its tools (
list_spools,create_spool, etc.) are available in chat.
Any other MCP client that supports a remote, OAuth-authenticated server over Streamable HTTP can connect the same way — point it at the same URL and follow its own login prompt.
What's actually happening
Filament Management acts as its own OAuth 2.1 authorization server for this: the client registers itself automatically (no manual client ID/secret to create), then redirects your browser through a normal login (or your workspace's SSO provider, if configured) followed by a one-time consent screen. The client never sees your password — it only ever receives a scoped access token after you explicitly approve it. Tokens expire after an hour and refresh automatically in the background for as long as the connector stays added; nothing needs re-approving unless you remove and re-add it.
Available tools
Every tool operates only on your own workspace's data — there's no way for a connected client to see or affect another tenant, regardless of what it's told.
Read-only (always available once enabled)
| Tool | Description |
|---|---|
list_spools | List spools, with optional filters by vendor, material, color, remaining weight, storage location, stored/unstored, archive status, or free-text search, sorted by ID, remaining weight, or opening date |
get_spool | Get one spool by ID |
list_filaments | List filament types |
get_filament | Get one filament type by ID |
list_vendors | List vendors |
get_vendor | Get one vendor by ID |
list_storage_locations | List storage locations and their slot counts |
get_storage_location | Get a storage location with all of its slots and their occupying spools |
list_free_storage_slots | List empty storage slots, optionally in one location |
get_inventory_summary | The same overview as the dashboard: totals, remaining and used weight and value, fill levels, low-stock spools, and breakdowns by material and vendor |
get_spool_weight_history | A spool's weight history, plus how much filament it used over that period |
calculate_print_cost | Price a print from the filament used, print time, and an optional handling fee, using your cost settings |
Read and write (only when Access mode is set to "Read and write")
| Tool | Description |
|---|---|
create_spool / update_spool / delete_spool | Manage spools |
create_filament / update_filament / delete_filament | Manage filament types |
create_vendor / update_vendor / delete_vendor | Manage vendors |
create_storage_location / update_storage_location / delete_storage_location | Manage storage locations |
create_storage_slots / update_storage_slot / delete_storage_slot | Add, rename, or remove slots in a storage location |
share_print_cost | Price a print like calculate_print_cost and return a public link to the result (see Sharing a calculation) |
consume_filament | Subtract the filament a print used from a spool |
set_spool_weight | Record a weighing — either the filament weight, or the raw scale reading with the empty spool subtracted automatically |
Weight changes made over MCP behave like the ones made in the app: they're added to the spool's weight history, mark the spool as opened on first use, and refresh any e-paper display showing that spool. Delete tools are marked as destructive, so clients like Claude ask before running them.
Things to try
- "I just printed a 42 g benchy with the red PLA, log it."
- "Which spools are running low, and what's the remaining PLA worth?"
- "Find a black PETG spool with at least 300 g left and tell me where it's stored."
- "How much would a 120 g print in the grey PLA that takes 5 hours cost?"
- "Price 80 g of the orange PLA plus a 3 € fee for 'Keychains' and give me a link I can send."
- "Add slots A1 to A12 to the Shelf location."
If a client calls a write tool while the workspace is in read-only mode (or tries any tool while the server is disabled), it gets a clear error back instead of silently failing — this is checked on every single call, not just at connection time.
Revoking access
There's currently no per-client list to revoke individually. To cut off MCP access:
- Turn off "Enable MCP server" in Settings — every connected client, including ones with an active token, is rejected immediately.
- Switch to "Read-only" — keeps read access working but immediately removes write access from every connected client.
To remove a specific connector's own record of the connection, remove it from that client's side (e.g. Claude's Connectors settings) — it will simply be prompted to reconnect and re-approve if added back later.