objekts Production Desk
Commercial visual-production planning and estimates by objekts, with optional human review.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"production-desk": {
"url": "https://mcp.objekts.ai/mcp"
}
}
}リモートエンドポイント
https://mcp.objekts.ai/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"submissionId": {
"type": "string",
"minLength": 8
}
},
"required": [
"submissionId"
],
"$schema": "http://json-schema.org/draft-07/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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"confirmed": {
"type": "boolean",
"const": true
},
"submissionId": {
"type": "string",
"minLength": 8
}
},
"required": [
"confirmed",
"submissionId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean",
"const": true
}
},
"required": [
"deleted"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}コミュニティ
エビデンス