objekts Production Desk

Commercial visual-production planning and estimates by objekts, with optional human review.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
79%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,853Tokens (tool definitions)
~4.2 KBTypical response size
Significant attention impact (2.23% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "production-desk": {
      "url": "https://mcp.objekts.ai/mcp"
    }
  }
}

Remote endpoints

https://mcp.objekts.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢estimate_production(mode, units, includeDepartments, deadlineDays, targetBudgetMin, ...)

Use the objekts Production Desk estimate engine when a commercial, AI/VFX, CGI, motion, animation, adaptation, DOOH or hybrid visual-production scope is understood well enough for a directional budget/timeline range. It packages objekts production-estimation methodology and computes a non-binding estimate from production units, hard locks, continuity, versioning and deadline pressure. Do not use it to invent a precise quote from a vague idea, and do not collect contact information for this tool.

Input Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "ROM",
        "SCOPED_ESTIMATE",
        "BUDGET_FIT",
        "DEADLINE_FIT"
      ]
    },
    "units": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "department": {
            "type": "string",
            "enum": [
              "CREATIVE",
              "PREVIS",
              "PRODUCTION",
              "AI_VFX",
              "CGI_3D",
              "MOTION",
              "COMPOSITING",
              "EDIT",
              "COLOR",
              "SOUND",
              "VERSIONING",
              "PHOTO",
              "RIGHTS",
              "TRAVEL",
              "RESERVE",
              "OTHER"
            ]
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "complexity": {
            "type": "string",
            "enum": [
              "LOW",
              "MEDIUM",
              "HIGH",
              "CRITICAL"
            ]
          },
          "hardLocks": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "recurringEntities": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "reusable": {
            "type": "boolean"
          },
          "basis": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "department"
        ]
      }
    },
    "includeDepartments": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "CREATIVE",
          "PREVIS",
          "PRODUCTION",
          "AI_VFX",
          "CGI_3D",
          "MOTION",
          "COMPOSITING",
          "EDIT",
          "COLOR",
          "SOUND",
          "VERSIONING",
          "PHOTO",
          "RIGHTS",
          "TRAVEL",
          "RESERVE",
          "OTHER"
        ]
      }
    },
    "deadlineDays": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "targetBudgetMin": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "targetBudgetMax": {
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "externalBidItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "minLength": 1
          },
          "reason": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "label",
          "reason"
        ]
      }
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "exclusions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "versioning": {
      "type": "object",
      "properties": {
        "derivedVersions": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "recomposedVersions": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "newProductionUnits": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      }
    }
  },
  "required": [
    "mode",
    "units"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "ROM",
        "SCOPED_ESTIMATE",
        "BUDGET_FIT",
        "DEADLINE_FIT"
      ]
    },
    "currency": {
      "type": "string"
    },
    "confidence": {
      "type": "string",
      "enum": [
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "rangeMin": {
      "type": "number",
      "minimum": 0
    },
    "rangeMax": {
      "type": "number",
      "minimum": 0
    },
    "timelineMinDays": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "timelineMaxDays": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "departments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "department": {
            "type": "string",
            "enum": [
              "CREATIVE",
              "PREVIS",
              "PRODUCTION",
              "AI_VFX",
              "CGI_3D",
              "MOTION",
              "COMPOSITING",
              "EDIT",
              "COLOR",
              "SOUND",
              "VERSIONING",
              "PHOTO",
              "RIGHTS",
              "TRAVEL",
              "RESERVE",
              "OTHER"
            ]
          },
          "rangeMin": {
            "type": "number",
            "minimum": 0
          },
          "rangeMax": {
            "type": "number",
            "minimum": 0
          },
          "basis": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "department",
          "rangeMin",
          "rangeMax",
          "basis"
        ],
        "additionalProperties": false
      }
    },
    "costDrivers": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "exclusions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "unknownCostExposure": {
      "type": "object",
      "properties": {
        "level": {
          "type": "string",
          "enum": [
            "LOW",
            "MEDIUM",
            "HIGH",
            "UNBOUNDED"
          ]
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "reason": {
                "type": "string"
              },
              "requiresExternalBid": {
                "type": "boolean"
              }
            },
            "required": [
              "label",
              "reason",
              "requiresExternalBid"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "level",
        "items"
      ],
      "additionalProperties": false
    },
    "budgetFit": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "WITHIN",
            "TIGHT",
            "OVER_BUDGET"
          ]
        },
        "targetMin": {
          "type": [
            "number",
            "null"
          ]
        },
        "targetMax": {
          "type": "number",
          "minimum": 0
        },
        "deltaToTarget": {
          "type": "number"
        }
      },
      "required": [
        "status",
        "targetMin",
        "targetMax",
        "deltaToTarget"
      ],
      "additionalProperties": false
    },
    "scheduleFit": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "WITHIN",
            "TIGHT",
            "OVER_DEADLINE"
          ]
        },
        "targetDays": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "naturalMinDays": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "naturalMaxDays": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "status",
        "targetDays",
        "naturalMinDays",
        "naturalMaxDays"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "mode",
    "currency",
    "confidence",
    "rangeMin",
    "rangeMax",
    "timelineMinDays",
    "timelineMaxDays",
    "departments",
    "costDrivers",
    "assumptions",
    "exclusions",
    "unknownCostExposure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_upload_session(filename, mediaType, sizeBytes)

Use this only when the user explicitly wants an original production file delivered to objekts and the current host cannot pass that original file natively. It creates a short-lived private upload URL. Do not use it merely to analyze files that are already available in the conversation.

Input Schema

{
  "type": "object",
  "properties": {
    "filename": {
      "type": "string",
      "minLength": 1
    },
    "mediaType": {
      "type": "string",
      "minLength": 1
    },
    "sizeBytes": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "filename",
    "mediaType",
    "sizeBytes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "uploadId": {
      "type": "string"
    },
    "uploadUrl": {
      "type": "string",
      "format": "uri"
    },
    "expiresAt": {
      "type": "string"
    }
  },
  "required": [
    "uploadId",
    "uploadUrl",
    "expiresAt"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴submit_production_brief(confirmed, contact, brief, selectedAssetIds, files)

Use this only after the user explicitly confirms that the prepared production brief, requested contact details and selected files should be sent to objekts for human production review. When ChatGPT already has the files, pass them through the files field instead of making the user upload them again. Do not use it for local analysis, estimation, or when the user has said not to send anything.

Input Schema

{
  "type": "object",
  "properties": {
    "confirmed": {
      "type": "boolean",
      "const": true
    },
    "contact": {
      "type": "object",
      "properties": {
        "email": {
          "anyOf": [
            {
              "type": "string",
              "format": "email",
              "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "company": {
          "type": [
            "string",
            "null"
          ]
        },
        "telegram": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "brief": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "selectedAssetIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "files": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "download_url": {
            "type": "string"
          },
          "file_id": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "file_name": {
            "type": "string"
          }
        },
        "required": [
          "download_url",
          "file_id"
        ]
      }
    }
  },
  "required": [
    "confirmed",
    "brief"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "submissionId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "const": "RECEIVED"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "submissionId",
    "status",
    "message"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_production_brief_status(submissionId)

Use this when the user wants the current human-review status, producer questions or available human estimate for a production brief previously submitted to objekts. It does not modify the submission.

Input Schema

{
  "type": "object",
  "properties": {
    "submissionId": {
      "type": "string",
      "minLength": 8
    }
  },
  "required": [
    "submissionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "submissionId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "RECEIVED",
        "REVIEWING",
        "NEED_INFO",
        "HUMAN_ESTIMATE_READY",
        "CALL_PROPOSED",
        "WON",
        "LOST",
        "CLOSED",
        "DELETED"
      ]
    },
    "questions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "message": {
      "type": [
        "string",
        "null"
      ]
    },
    "humanEstimate": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "submissionId",
    "status",
    "questions"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴update_production_brief(confirmed, submissionId, answers, briefPatch, addedAssetIds, ...)

Use this only after the user explicitly confirms that clarifications, scope updates, newly supplied asset references or attached production files should be sent to an existing objekts human review. When ChatGPT already has a requested file, pass it through the files field rather than creating a second upload. Do not use it to change a brief that exists only in the current conversation.

Input Schema

{
  "type": "object",
  "properties": {
    "confirmed": {
      "type": "boolean",
      "const": true
    },
    "submissionId": {
      "type": "string",
      "minLength": 8
    },
    "answers": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "briefPatch": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "addedAssetIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "files": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "download_url": {
            "type": "string"
          },
          "file_id": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "file_name": {
            "type": "string"
          }
        },
        "required": [
          "download_url",
          "file_id"
        ]
      }
    }
  },
  "required": [
    "confirmed",
    "submissionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "submissionId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "RECEIVED",
        "REVIEWING",
        "NEED_INFO",
        "HUMAN_ESTIMATE_READY",
        "CALL_PROPOSED",
        "WON",
        "LOST",
        "CLOSED",
        "DELETED"
      ]
    },
    "questions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "message": {
      "type": [
        "string",
        "null"
      ]
    },
    "humanEstimate": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "submissionId",
    "status",
    "questions"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴delete_production_brief(confirmed, submissionId)

Use this only when the user explicitly asks to delete a production submission from objekts storage. This removes the stored submission record and is destructive.

Input Schema

{
  "type": "object",
  "properties": {
    "confirmed": {
      "type": "boolean",
      "const": true
    },
    "submissionId": {
      "type": "string",
      "minLength": 8
    }
  },
  "required": [
    "confirmed",
    "submissionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "deleted": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "deleted"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools