Skip to main content
Glama
toomus

Jet3D MCP Server

Jet3D Model Context Protocol (MCP) Server

MCP License: MIT Node.js Docker

Official Model Context Protocol (MCP) server for Jet3D.pl — custom 3D-printed confectionery cookie cutters and stamps manufactured on-demand in Poland.

This server enables AI assistants (Claude Desktop, Cursor, Windsurf, Zed, and autonomous AI agents) to:

  • 🎨 Design personalized 3D confectionery cutters & stamps (8 geometric shapes, 5 typography styles, custom relief).

  • 💰 Calculate transparent pricing in PLN (physical sets & instant digital 3MF/STL downloads).

  • 📜 Verify food-contact safety compliance (EU FCM DoC, Regulation EC 1935/2004, GMP EC 2023/2006).

  • 🚀 Generate Instant BLIK Checkout links with pre-filled delivery inputs (InPost Paczkomat, email, phone) and automatic BLIK input focus (< 5 second checkout).


🛠️ MCP Features

1. Tools

Tool

Description

create_custom_cutter_checkout

Configures a personalized cutter (shape, diameter 50–120mm, text lines 1–3, typography font, recipient details) and generates an Instant BLIK checkout URL.

get_cutter_specifications

Returns official technical details: 2-piece set design (cutter + separate 2.8mm relief stamp), virgin food-safe PLA, washing instructions (hand wash max 45°C), production turnaround (24–48h).

list_available_shapes_and_fonts

Explains available shapes (circle, heart, oval, rounded_square, cloud, flower, star, hexagon) and typography fonts (script, sans, serif, slab, display) with occasion recommendations.

2. Resources

URI

Mime Type

Description

jet3d://catalog

application/json

Live catalog metadata, manufacturer information, supported shapes, fonts, and base pricing structures.

3. Prompts

Prompt

Description

design_cookie_cutter

Guided interactive interview flow to help a user create the perfect cookie cutter design for their wedding, birthday, christening, baby shower, or corporate event.


Related MCP server: fichapao-mcp-server

🚀 Quick Start & Client Configuration

Claude Desktop

Add this configuration to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "jet3d": {
      "command": "npx",
      "args": [
        "-y",
        "@toomus/jet3d-mcp"
      ]
    }
  }
}

Option B: Run via Local Clone

{
  "mcpServers": {
    "jet3d": {
      "command": "node",
      "args": [
        "/path/to/jet3d-mcp/build/index.js"
      ]
    }
  }
}

Option C: Run via Docker

{
  "mcpServers": {
    "jet3d": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "toomus/jet3d-mcp"
      ]
    }
  }
}

Cursor IDE

Add the server to your project or user .cursor/mcp.json:

{
  "mcpServers": {
    "jet3d": {
      "command": "npx -y @toomus/jet3d-mcp"
    }
  }
}

Smithery.ai (1-Click Install)

To install Jet3D MCP for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @toomus/jet3d-mcp --client claude

💡 How It Works (AI Agent Workflow)

  1. User asks AI assistant:

    "Chcę zamówić foremkę do ciastek w kształcie serca z napisem 'Sto Lat Aniu!' na urodziny mojej siostry. Paczkomat KRA01M."

  2. AI calls create_custom_cutter_checkout:

    {
      "shape": "heart",
      "diameter_mm": 70,
      "text_line_1": "Sto Lat Aniu!",
      "font_line_1": "script",
      "paczkomat_code": "KRA01M",
      "order_type": "physical"
    }
  3. AI responds with complete order breakdown and checkout link:

    • Produkt: Foremka 2-częściowa (wykrawacz + stempel 2.8 mm) — 34,90 zł

    • Atest: Food-Contact PLA (certyfikat UE DoC/GMP)

    • Dostawa: Paczkomat InPost — 16,99 zł

    • Razem: 51,89 zł

    • Link: https://jet3d.pl/checkout/new?shape=heart&diameter_mm=70&text_line_1=Sto+Lat+Aniu%21&font_line_1=script&paczkomat=KRA01M&...

  4. Zero-Friction Checkout: When the customer clicks the link:

    • 3D preview and delivery address are already populated.

    • The cursor automatically focuses on the 6-digit BLIK code input (autofocus).

    • The customer enters their BLIK code, taps confirm on their mobile banking app, and the order is placed in seconds!


📦 Development & Local Testing

Prerequisites

  • Node.js >= 20.0.0

  • npm >= 9.0.0

Build & Run

# 1. Clone the repository
git clone https://github.com/toomus/jet3d-mcp.git
cd jet3d-mcp

# 2. Install dependencies
npm install

# 3. Compile TypeScript
npm run build

# 4. Run via MCP Inspector for local debugging
npx @modelcontextprotocol/inspector node build/index.js

Docker Build

docker build -t jet3d-mcp .
docker run -i --rm jet3d-mcp

🔒 Security & Food Contact Certification

  • Material: 100% virgin Food-Safe PLA bioplastic.

  • Regulations: Manufactured according to Good Manufacturing Practice (GMP) under Regulation (EC) No 2023/2006 and compliant with Framework Regulation (EC) No 1935/2004 and Commission Regulation (EU) No 10/2011.

  • Migration Limits: Verified by accredited analytical testing (overall & specific migration limits).

  • Declaration of Compliance (DoC): Available on request for confectioneries, bakeries, and culinary businesses.


📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

Copyright (c) Tomasz Boyke (Jet3D.pl).

Available Tools

3 tools
create_custom_cutter_checkoutB

Design a personalized 3D-printed cookie cutter and generate an Instant BLIK checkout URL for the customer to complete payment in seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapeYesGeometric shape of the cookie cutter (e.g. 'heart', 'circle', 'flower')
order_typeNoOrder type: 'physical' (3D printed + shipped) or 'digital' (instant 3MF/STL download)physical
diameter_mmNoOuter diameter in millimeters (50 to 120 mm, default: 70)
font_line_1NoFont style for the primary text linescript
text_line_1YesFirst line of custom text (e.g. 'Sto Lat Aniu', 'Młoda Para')
text_line_2NoSecond line of custom text (optional)
text_line_3NoThird line of custom text (optional)
customer_nameNoCustomer recipient full name (e.g. 'Jan Kowalski')
customer_emailNoCustomer email for order confirmation and tracking
customer_phoneNoCustomer 9-digit Polish mobile phone for InPost SMS notification (e.g. '500-123-456')
paczkomat_codeNoInPost Paczkomat box code (e.g. 'KRA01M', 'WAW22A')
font_size_line_1NoFont size for line 1md

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose that the tool generates a checkout URL and is transactional in nature, but it does not mention side effects like order creation, idempotency, authorization requirements, or whether customer contact details are mandatory for certain order types. This is a partial disclosure with clear gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence contains the core action and outcome with no filler. It is front-loaded with the primary purpose and reads naturally, making it easy for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 12 parameters and no output schema, yet the description only provides a one-line summary. It does not explain the expected response shape, prerequisites, or notable parameter combinations (e.g., physical vs. digital order requirements). An agent would struggle to understand the full call context without opening the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents every parameter, including enums, defaults, and constraints. The description adds no parameter-specific meaning beyond the high-level 'personalized' cookie cutter concept, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific, compound action: design a personalized 3D-printed cookie cutter and generate an Instant BLIK checkout URL. It clearly identifies the tool's output (payment URL) and distinguishes it from the sibling lookup tools, which retrieve specifications or lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance about when to choose this tool over its siblings, such as 'use list_available_shapes_and_fonts first' or 'for available specs use get_cutter_specifications.' The intended workflow must be inferred solely from the tool's name and the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cutter_specificationsA

Retrieve official technical, food safety (DoC/GMP), and material specifications for Jet3D cookie cutters and stamps.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden. It explicitly states 'Retrieve', indicating a read-only operation, and mentions 'official' specifications, suggesting verified data. No side effects are disclosed, but the action is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundancy, directly conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description provides a general sense of the content returned (technical, food safety, material specs) but does not specify the format or structure. This is adequate for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so there is nothing to describe. The description fully accounts for the input aspect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action (Retrieve), the resource (technical, food safety, and material specifications for Jet3D cookie cutters and stamps), and it distinguishes from sibling tools which handle checkout and listing shapes/fonts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when specifications are needed) but does not explicitly state conditions or contrast with alternatives. No guidance is provided on when not to use it, though the purpose is self-explanatory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_shapes_and_fontsA

List supported 3D shapes, typography font styles, and recommended occasions for personalized cutters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral disclosure burden. It does convey read-only listing behavior and the scope of what is listed, but it says nothing about ordering, availability/static nature, or return shape. There is no contradiction, but behavioral detail is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single, front-loaded sentence that names the action and the full set of resources without filler. 'Typography font styles' is slightly repetitive but does not hurt clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter listing tool, the description is nearly complete: it enumerates exactly what the agent will receive. The only gap is some explicit guidance about how the listed options connect to create_custom_cutter_checkout, though the sibling names and 'for personalized cutters' supply enough context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema already exhaustively documents them (100% coverage). The description adds scope context by naming the categories returned, which is all that parameter semantics can do here; baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb 'List' and names three concrete resources: supported 3D shapes, typography font styles, and recommended occasions for personalized cutters. This clearly distinguishes the tool from create_custom_cutter_checkout and get_cutter_specifications, which imply different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for personalized cutters' gives some context, but the description never states when to choose this tool over siblings or what the output should be used for. Usage is only implied by the name and the available sibling list, not explicitly guided.

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. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observedcreate_custom_cutter_checkout
    • First observedget_cutter_specifications
    • First observedlist_available_shapes_and_fonts

TDQS

A4/5.0
Disambiguation5/5

Each tool maps to a distinct capability: catalog browsing (list shapes/fonts), technical reference (get specifications), and purchase generation (create checkout). There is no semantic overlap or ambiguity between these actions.

Naming Consistency5/5

All three tools follow a consistent verb_noun pattern: list_..., get_..., create_.... The naming clearly expresses the operation and resource, making the tool surface predictable.

Tool Count5/5

Three tools is at the lower bound but well-scoped for a narrow product/purchase domain: discover options, reference specs, and create a checkout. Each tool covers a distinct step in the workflow and none feel redundant.

Completeness4/5

The core custom-cutter workflow is covered: browse options, retrieve compliance/spec details, and generate a paid checkout link. The only notable gap is order/payment status lookup after checkout, but this can be handled outside the MCP server or by a later addition.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    A Model Context Protocol (MCP) server for authenticated REST APIs. Drop it into any project, point it at your API, and let AI agents call endpoints — with auto-login, 2FA support, Swagger spec fetch, and fuzzy endpoint search — all without writing a single line of auth code.
    3
    14
    6
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for managing bakery recipe technical sheets with Postgres. Enables AI agents to search, create, update, approve, and compare recipe versions through secure tools.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Frisco.pl — lets Claude add groceries to your cart, search products, get nutritional info, and manage recipes, all via natural language.
    7
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/toomus/jet3d-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server