{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "",
    "endpoint": "https://printyourduck.com/api/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/printyourduck-quote.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/printyourduck-quote.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/printyourduck-quote.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 1525,
        "counts": {
          "error": 0,
          "note": 0,
          "warn": 2
        },
        "findings": [
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "get_quote_status",
            "message": "none of its 2 parameters has a description",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "submit_quote_request",
            "message": "none of its 16 parameters has a description",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:23:35Z",
      "count": 3,
      "schemaTokens": 1525,
      "status": "ok",
      "tools": [
        {
          "name": "get_printyourduck_quote_requirements",
          "title": "Get PrintYourDuck Quote Requirements",
          "description": "Read public requirements for a PrintYourDuck manual custom 3D printing quote request. Use this before submit_quote_request to check accepted file types, material options, confirmations, restrictions, and the private-upload flow. Does not calculate instant pricing.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {},
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "acceptedFileTypes": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "manualQuoteOnly": {
                "type": "boolean"
              },
              "marketRegions": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "materialPreferences": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "maxFileSizeBytes": {
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "maxFilesPerRequest": {
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "maxTotalFileSizeBytes": {
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "noPaymentAtUpload": {
                "type": "boolean"
              },
              "requestTypes": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "requiredConfirmations": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "restrictions": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "uploadFlow": {
                "type": "string"
              }
            },
            "required": [
              "acceptedFileTypes",
              "maxFileSizeBytes",
              "maxFilesPerRequest",
              "maxTotalFileSizeBytes",
              "materialPreferences",
              "requestTypes",
              "marketRegions",
              "manualQuoteOnly",
              "noPaymentAtUpload",
              "requiredConfirmations",
              "restrictions",
              "uploadFlow"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "submit_quote_request",
          "title": "Submit PrintYourDuck Quote Request",
          "description": "Submit customer contact details and private uploaded file metadata for manual PrintYourDuck quote review. Alias intents: request a 3D print quote, send uploaded file for quote, submit manual quote request. Requires explicit confirmations and a stable submissionId for retries. No payment is collected and no instant price is returned.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "city": {
                "maxLength": 120,
                "type": "string"
              },
              "country": {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              "desiredDeadline": {
                "maxLength": 120,
                "type": "string"
              },
              "email": {
                "format": "email",
                "maxLength": 254,
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                "type": "string"
              },
              "files": {
                "items": {
                  "properties": {
                    "contentHash": {
                      "pattern": "^[a-f0-9]{64}$",
                      "type": "string"
                    },
                    "contentType": {
                      "maxLength": 120,
                      "type": "string"
                    },
                    "fileSizeBytes": {
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991,
                      "type": "integer"
                    },
                    "fileType": {
                      "maxLength": 40,
                      "type": "string"
                    },
                    "originalFilename": {
                      "maxLength": 260,
                      "minLength": 1,
                      "type": "string"
                    },
                    "storageUrlOrKey": {
                      "maxLength": 600,
                      "minLength": 1,
                      "type": "string"
                    },
                    "storedFilename": {
                      "maxLength": 600,
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "originalFilename",
                    "fileSizeBytes",
                    "storageUrlOrKey"
                  ],
                  "type": "object"
                },
                "maxItems": 5,
                "minItems": 1,
                "type": "array"
              },
              "manualQuoteConfirmed": {
                "const": true,
                "type": "boolean"
              },
              "materialPreference": {
                "enum": [
                  "PLA",
                  "PETG",
                  "TPU_FLEXIBLE",
                  "RESIN",
                  "NOT_SURE"
                ],
                "type": "string"
              },
              "name": {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              "notes": {
                "maxLength": 5000,
                "type": "string"
              },
              "phone": {
                "maxLength": 60,
                "type": "string"
              },
              "quantity": {
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "requestType": {
                "enum": [
                  "ONE_OFF",
                  "SMALL_BATCH",
                  "REPEAT_ORDER"
                ],
                "type": "string"
              },
              "restrictedItemConfirmed": {
                "const": true,
                "type": "boolean"
              },
              "rightsConfirmed": {
                "const": true,
                "type": "boolean"
              },
              "submissionId": {
                "maxLength": 120,
                "minLength": 8,
                "pattern": "^[a-zA-Z0-9._:-]+$",
                "type": "string"
              },
              "userSubmissionConfirmed": {
                "const": true,
                "type": "boolean"
              }
            },
            "required": [
              "submissionId",
              "name",
              "email",
              "country",
              "materialPreference",
              "quantity",
              "rightsConfirmed",
              "restrictedItemConfirmed",
              "manualQuoteConfirmed",
              "userSubmissionConfirmed",
              "files"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "error": {
                "type": "string"
              },
              "expectedQuoteTime": {
                "type": "string"
              },
              "issues": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "field": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "field",
                    "message"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "message": {
                "type": "string"
              },
              "ok": {
                "type": "boolean"
              },
              "quoteRequestId": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "required": [
              "ok",
              "message"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "get_quote_status",
          "title": "Get PrintYourDuck Quote Status",
          "description": "Look up public-safe quote status using the quote request ID and matching customer email. Alias intents: check quote status, check manual review status, check payment-link availability. Does not expose private file keys, payment URLs, or sensitive operational details.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "email": {
                "format": "email",
                "maxLength": 254,
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                "type": "string"
              },
              "quoteRequestId": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "quoteRequestId",
              "email"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "createdAt": {
                "type": "string"
              },
              "expectedQuoteTime": {
                "type": "string"
              },
              "found": {
                "type": "boolean"
              },
              "marketRegion": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "paymentStatus": {
                "type": "string"
              },
              "quoteRequestId": {
                "type": "string"
              },
              "shippedAt": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "trackingAvailable": {
                "type": "boolean"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "found"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": true,
            "readOnlyHint": true
          }
        }
      ]
    },
    "name": "PrintYourDuck Quote",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": [
      {
        "registryType": "npm",
        "identifier": "@printyourduck/mcp",
        "version": "0.1.1",
        "transport": "stdio"
      }
    ],
    "pageJsonUrl": "https://www.anchorterminal.com/tools/printyourduck-quote.json",
    "popularity": {
      "githubStars": 0,
      "npmWeekly": 36
    },
    "registryName": "com.printyourduck/quote",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://printyourduck.com/api/mcp"
      }
    ],
    "repository": "https://github.com/printyourduck/printyourduck-mcp",
    "reviewed": false,
    "slug": "printyourduck-quote",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.printyourduck/quote",
    "summary": "Find and submit local 3D print files for manual PrintYourDuck quote review.",
    "updatedAt": "2026-06-19T09:35:52Z",
    "url": "https://www.anchorterminal.com/tools/printyourduck-quote",
    "vendor": "printyourduck.com",
    "vendorUrl": "https://printyourduck.com",
    "version": "0.1.1",
    "websiteUrl": "",
    "where": "both",
    "why": [
      "vendor"
    ]
  }
}
