@placraftic/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLACRAFTIC_API_KEY | Yes | Studio API token generated in /api-keys (required for authenticated operations). | |
| PLACRAFTIC_BASE_URL | No | Base URL for Placraftic Public REST API. | https://placraftic.com/api/v1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Check server status, version, and latency between the MCP server and Placraftic API |
| get_studio_infoA | Retrieve the authenticated 3D printing studio identity, studio ID, and API key details |
| list_materialsB | List all available 3D printing materials (filaments, resins) with pricing, color, technology, and stock status |
| get_materialA | Retrieve full details for a specific 3D printing material by its numeric ID |
| list_printersA | List all 3D printers in the studio fleet with technology, model, build volume, maintenance notes, and active queue |
| get_printerA | Retrieve complete hardware details, maintenance schedule, and active print queue for a specific 3D printer by ID |
| list_qualitiesB | List configured 3D printing qualities and slicing profiles (layer heights, nozzle diameter, speed modes, infill) |
| get_qualityB | Retrieve slicing parameters and layer height configuration for a specific printing quality profile by ID |
| list_finishingsA | List all available post-processing and finishing services (vapor smoothing, painting, support removal, sanding) with pricing |
| get_finishingA | Retrieve flat-rate and percentage pricing formulas for a specific post-processing finishing operation by ID |
| list_productsC | List catalog products manufactured by the studio with fixed pricing, photos, and estimated lead time |
| get_productA | Retrieve complete specifications, media photos, and turnaround lead time for a specific product by ID |
| list_ordersC | List studio production orders with filtering by Kanban status, customer search, and pagination |
| get_order_detailsA | Retrieve complete order manifest by ID including customer profile, ordered parts, slicing files, and shipping tracking |
| update_order_statusC | Transition an order to a new Kanban stage and dispatch studio timeline events |
| update_orderC | Update order details such as total price and customer operator notes |
| cancel_orderB | Cancel an order, record the cancellation reason, and trigger cancellation notifications |
| create_orderA | Submit a new production order with customer contact info, 3D model files (STL, OBJ, 3MF, STEP), materials, and delivery preferences |
| create_nova_poshta_waybillC | Generate a Nova Poshta electronic waybill (TTN) for an order using studio sender settings |
| print_waybillB | Get the official printable Nova Poshta PDF document link for shipping labels and package stickers |
| track_shipmentB | Synchronize and retrieve live parcel checkpoints and delivery status from Nova Poshta by order ID |
| get_delivery_settingsA | Retrieve current studio delivery configuration: Nova Poshta sender branch, pickup address, and enabled shipping methods |
| list_customersC | List studio customer directory with lifetime order counts, total spent, and search by name or phone |
| get_customer_profileA | Retrieve complete customer profile, lifetime value, breakdown of orders by status, and order history |
| calculate_quoteB | Upload a local 3D model file (STL, OBJ, 3MF, STEP) and compute an accurate manufacturing cost quote with material and print time breakdown |
| submit_slicing_jobA | Submit a local 3D model file (STL, OBJ, 3MF, STEP) to cloud slicer and obtain an async slicing job ID |
| get_slicing_statusB | Check progress of an async 3D slicing job by ID and retrieve print duration and filament weight metrics |
| list_inbox_threadsC | List active studio customer support conversations across Telegram, Instagram, and web portal |
| get_conversation_messagesB | Retrieve complete chronological message history and attachments for a customer conversation |
| send_inbox_replyB | Send an outbound message directly to the customer across Telegram or Instagram, with optional canned template |
| list_canned_responsesA | List preconfigured studio quick-reply templates for customer communications |
| create_canned_responseC | Create a new quick-reply canned response template for the studio |
| list_abandoned_quotesA | List unfinished 3D print quote checkouts with customer contact details, item counts, and direct recovery links |
| review_abandoned_quoteB | Mark an abandoned quote lead as reviewed/reminded to acknowledge followup and avoid duplicate customer contact |
| get_studio_statsB | Retrieve real-time studio financial metrics, orders breakdown by status, active printer fleet load, and top materials for a given period |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| daily_production_standup | Morning production standup: review printing and pending orders, fleet load, and optimize batch scheduling |
| pack_and_ship_order | Fulfillment workflow: verify order completion, generate Nova Poshta waybill, print label, and notify customer |
| quote_and_consult | Customer consulting: evaluate 3D model requirements, recommend materials and layer height, and calculate instant quote |
| customer_support_inquiry | Omnichannel support: lookup customer record, order history, live parcel tracking, and draft empathetic Ukrainian response |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| studio-profile | Current 3D printing studio profile, name, currency, slug, pricing parameters, and API identity |
| catalog-materials | Complete inventory of 3D printing materials (filaments, resins), stock levels, and price per kg |
| catalog-printers | Studio 3D printer fleet, active machines, build volumes, technology, and maintenance status |
| catalog-finishings | Available post-processing finishing operations, flat prices, and percentage surcharges |
| catalog-qualities | Studio printing quality profiles, layer heights, nozzle sizes, and speed modes |
| delivery-settings | Studio shipping and delivery configuration: Nova Poshta sender warehouse, pickup address, and active delivery methods |
TDQS
Scored across 35 tools
Most tools have clearly distinct purposes targeting specific resources and actions. A few potential overlaps exist: list_orders vs list_abandoned_quotes (abandoned quotes are a subset of orders), update_order_status vs update_order (status update might be seen as part of general update, but descriptions differentiate them), and submit_slicing_job vs calculate_quote (both take model files but one slices, one quotes). However, descriptions generally clarify boundaries.
The tool names follow a consistent verb_noun pattern (e.g., list_, get_, create_, update_, cancel_, send_), but there are notable inconsistencies in domain-specific naming. For example, create_nova_poshta_waybill vs print_waybill (one uses create_ prefix, the other print_), and track_shipment, get_delivery_settings, review_abandoned_quote use different verb styles. This creates a mixed convention that is still readable but not fully predictable.
With 35 tools, the server covers a wide range of 3D printing studio operations, but the count is heavy. Many tools are necessary for full lifecycle management, yet some could be consolidated (e.g., get_material, get_printer, get_quality, get_finishing are similar entity detail fetchers). The count is borderline for a comprehensive domain but slightly exceeds the ideal range for an MCP server.
The surface provides robust CRUD coverage for orders, customers, materials, printers, qualities, finishings, products, and shipping. However, some gaps exist: no delete operations for any resource, no explicit update for materials/printers/qualities/finishings (only create and get), and no methods to handle incoming messages beyond listing threads and sending replies (e.g., no mark as read). These are minor gaps that agents can likely work around.