objekts Production Desk
Server Details
AI/VFX, CGI, motion & animation production preflight by objekts: locks, continuity, PoCs, estimates.
- Status
- Healthy
- Uptime
- 93.5% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- peach420fuzz/objekts-production-desk
- GitHub Stars
- 0
TDQS
Scored across 7 tools
Each tool targets a distinct action on a distinct concern: upload session creation, diagnosis, estimation, submission, status read, update, and destructive delete. The descriptions proactively disambiguate borderline pairs (e.g. 'for production diagnosis without pricing, use diagnose_production instead' and 'do not use it merely to analyze files'). No meaningful overlap remains.
All seven tools use snake_case verb_noun form (create_upload_session, delete_production_brief, diagnose_production, etc.), which is predictable. The only minor deviation is that some tools qualify the noun as 'production_brief' while diagnose/estimate use 'production', but the convention stays readable and consistent.
Seven tools is well within the sweet spot and each earns its place: a full brief lifecycle (submit/get/update/delete) plus diagnosis, estimation, and a gated upload path. Nothing appears redundant or padding.
The surface covers the core brief lifecycle (create, read, update, delete) plus diagnosis, estimation, and upload session handling. The only notable gap is the absence of a list/enumerate tool for a user's existing production briefs, a minor omission agents can work around via status lookups.
Available Tools
7 toolscreate_upload_sessionPrepare production file uploadAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| confirmed | Yes | ||
| mediaType | Yes | ||
| sizeBytes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| uploadId | Yes | |
| expiresAt | Yes | |
| uploadUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint=false, openWorldHint=false, destructiveHint=false, not idempotent). The description adds genuinely useful behavioral context the annotations do not carry — the URL is short-lived and private — but it says nothing about what repeated calls do, despite idempotentHint=false, or what credentials/permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the positive use case and followed by the exclusion. Every clause earns its place, though the opening sentence is dense and conditional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the usage conditions are well covered. However, with 0% schema description coverage, the description was the only place to document the four required inputs, and it says nothing about them — leaving an agent to guess file metadata formats and the meaning of 'confirmed'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all four parameters are required, yet the description mentions none of them. The most confusing one, a 'confirmed' boolean constrained to true, is left entirely unexplained, as are the expected format of mediaType and any size constraints for sizeBytes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and artifact: it 'creates a short-lived private upload URL' for delivering an original production file to objekts. That is concrete and distinguishable from the sibling tools (all brief-related), but it never explicitly differentiates itself from those siblings by name or function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when: only when the user wants an original production file delivered to objekts and the host cannot pass it natively. It also gives an explicit when-not: do not use it merely to analyze files already in the conversation. This is textbook routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_production_briefDelete submitted production briefADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | Yes | ||
| submissionId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is fully covered by structured data. The description adds only mildly useful detail ('removes the stored submission record'), while repeating 'destructive', which is redundant with the annotation. It says nothing about irreversibility, permissions, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the gating condition front-loaded. The second sentence's 'and is destructive' largely duplicates the destructiveHint annotation, so one clause does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations carry the full destructive/read-only profile. What remains thin is the confirmation semantics of the 'confirmed' flag, which the schema enforces via const true but the description never contextualizes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions neither parameter. The required 'confirmed' boolean (const true) is a meaningful confirmation gate that the agent must set correctly, and 'submissionId' is undocumented in both places; the description does nothing to compensate for that gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (delete) with a specific resource (a production submission in objekts storage), and the deleted artifact is named. An agent can distinguish this from the sibling submit/update/get_status tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit gating condition — 'use this only when the user explicitly asks to delete' — which functions as a when-to-use and implicit when-not. It stops short of naming an alternative (e.g. update_production_brief) for the case where the user wants to modify rather than remove, so it misses the top of the scale.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_productionDiagnose visual productionARead-onlyIdempotentInspect
Use the objekts Production Desk production-diagnosis engine for production-heavy visual work before proposing execution. It checks reference authority, hard locks, truth-layer routing, asset fitness, continuity, versioning, revision impact, readiness and the highest-value proof-of-concept. It does not estimate price, collect contact data, upload files or send anything externally. Populate only facts available from the user's current request/files; mark unknowns explicitly instead of inventing production facts. After the call, use visibleVerdict as the complete default answer: do not add a generic checklist or extra recommendations unless the user explicitly asks for a broader audit.
| Name | Required | Description | Default |
|---|---|---|---|
| assets | No | ||
| changes | No | ||
| unknowns | No | ||
| versions | No | ||
| objective | Yes | ||
| readiness | Yes | ||
| deliverables | Yes | ||
| elementRoutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| visibleVerdict | Yes | |
| responseContract | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered; the description usefully reinforces it by listing the write-like actions it will never perform (estimate price, collect contacts, upload, send externally). The post-call instruction about visibleVerdict is genuinely valuable behavioral context not present in annotations. It stops short of describing what the diagnosis output contains beyond that one field, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and alternates before the data-entry rule and the output-handling rule. Dense but every clause earns its place; sentence two is long but enumerative rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained, and annotations cover safety. But for a tool whose input schema is this structurally complex with zero field descriptions, the description omits any account of how to decompose a request into assets/changes/versions/elementRoutes, leaving an agent to guess at the largest part of the calling contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% against an 8-parameter schema with deeply nested objects (assets, changes, versions, elementRoutes, readiness) full of cryptic enums like TRUTH_LAYER, controlMode, and single-letter change flags. The only parameter-level guidance is the generic 'mark unknowns explicitly instead of inventing production facts,' which touches the unknowns array but leaves the other seven parameters' meaning and expected granularity entirely unexplained by both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific engine and scope ('production-diagnosis engine for production-heavy visual work') and enumerates exactly what it checks (reference authority, hard locks, truth-layer routing, asset fitness, continuity, versioning, revision impact, readiness, proof-of-concept). It also explicitly carves out what it is NOT (no price estimation, contact collection, uploads, external sends), which cleanly separates it from estimate_production and submit_production_brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('before proposing execution'), a data-hygiene rule ('populate only facts available from the user's current request/files; mark unknowns explicitly instead of inventing production facts'), and post-call guidance ('use visibleVerdict as the complete default answer; do not add a generic checklist unless the user explicitly asks for a broader audit'). That is when-to-use, how-to-use, and when-to-stop all in one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_productionEstimate visual productionARead-onlyIdempotentInspect
Return a directional RUB production range and timeline only when the user explicitly asks about price, cost, budget, quote, or budget fit. This tool is read-only, non-binding, and never collects contact details or submits a brief. Choose WHOLE_PRODUCTION for a finished deliverable and BOUNDED_SHOT_POST for named shots/scenes/post work; use INFERRED when that scope is genuinely ambiguous, or SCENARIO for a clearly labeled hypothetical. For production diagnosis without pricing, use diagnose_production instead.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ROM for an early range; SCOPED_ESTIMATE for a defined scope; BUDGET_FIT to compare scope with a target budget; DEADLINE_FIT to evaluate schedule pressure. | |
| units | Yes | Production line items that drive the estimate. Include every material discipline/unit being priced; each item explains quantity, complexity, locks, continuity, and basis. | |
| scopeType | Yes | WHOLE_PRODUCTION prices the complete requested finished deliverable; BOUNDED_SHOT_POST prices only named shots, scenes, VFX, or post tasks. | |
| exclusions | No | Work explicitly outside this estimate, especially live-action, rights, media, extra versions, or unrequested disciplines. | |
| scopeBasis | Yes | One concise sentence stating exactly what the estimate includes and excludes from the priced object. | |
| versioning | No | Version/adaptation workload beyond the master deliverable; distinguish simple exports from recomposition and new production. | |
| assumptions | No | Explicit factual assumptions used to make the estimate possible; do not invent client facts. | |
| deadlineDays | No | Calendar days available until delivery when known; null or omit when no deadline is supplied. | |
| scopeDecision | Yes | USER_EXPLICIT when the requested object is clear; SCENARIO for an explicitly labeled hypothetical; INFERRED only when scope is genuinely ambiguous, in which case no price is returned until clarified. | |
| scopeEvidence | Yes | Short evidence for the scope choice. For USER_EXPLICIT, copy a brief verbatim phrase from the user's request that identifies the priced object. | |
| runtimeSeconds | Yes | Final master runtime in seconds when known; null only when genuinely unknown. | |
| targetBudgetMax | No | Upper bound of the user's target budget in RUB for BUDGET_FIT; omit when no target ceiling is supplied. | |
| targetBudgetMin | No | Lower bound of the user's target budget in RUB for BUDGET_FIT; omit when no budget floor exists. | |
| externalBidItems | No | Known cost exposures that require third-party bids; these remain outside the automated production range. | |
| includeDepartments | No | Optional whitelist of departments to include when the requested estimate intentionally covers only selected disciplines. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| currency | Yes | |
| rangeMax | Yes | |
| rangeMin | Yes | |
| budgetFit | No | |
| scopeType | Yes | |
| confidence | Yes | |
| exclusions | Yes | |
| scopeBasis | Yes | |
| assumptions | Yes | |
| costDrivers | Yes | |
| departments | Yes | |
| scheduleFit | No | |
| scopeDecision | Yes | |
| scopeEvidence | Yes | |
| runtimeSeconds | Yes | |
| timelineMaxDays | Yes | |
| timelineMinDays | Yes | |
| unknownCostExposure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description reinforces this while adding genuinely new context: the estimate is 'non-binding' and 'never collects contact details or submits a brief' (contrasting with the submit_production_brief sibling), and no price is returned when scope is INFERRED. It does not cover rate limits or return format, but the added behavioral framing is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the gating condition, then scope selection, then the sibling routing. No filler; every sentence carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, nested, enum-heavy tool with an output schema, the description supplies the gating rule, mode/scope decision logic, and alternative routing that structured fields cannot express. An agent has everything needed to decide whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed enum and property docs, so the schema does the heavy lifting. The description restates the scopeType and scopeDecision semantics that the schema already documents and adds no format or constraint detail beyond it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (return a directional RUB production range and timeline), the resource, and the exact gating condition (only when the user asks about price, cost, budget, quote, or budget fit). It explicitly distinguishes itself from the diagnose_production sibling, so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (pricing/budget intent only), when-not-to-use (production diagnosis, which routes to diagnose_production), and the decision rule for each scopeType and scopeDecision value (WHOLE_PRODUCTION vs BOUNDED_SHOT_POST, INFERRED only when genuinely ambiguous, SCENARIO for labeled hypotheticals). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_production_brief_statusCheck production review statusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| submissionId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | No | |
| questions | Yes | |
| submissionId | Yes | |
| humanEstimate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered structurally. The sentence "It does not modify the submission" largely restates those hints rather than adding new behavioral context such as latency, rate limits, or what happens when the submission is still pending. Useful but thin against an already-rich annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded: the usage trigger and payload contents come first, the non-mutation guarantee second. No filler, no repetition of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required, and annotations cover the read-only nature. The remaining gap is the required submissionId, left completely undefined despite 0% schema coverage, which is the one thing an agent must get right to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter, so the description carries the full burden of explaining submissionId — and it does not name or describe it at all, saying only "a production brief previously submitted." It gives no hint about the expected identifier format (a string with minLength 8) or where an agent obtains it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-plus-resource (retrieve the current human-review status of a production brief) and even enumerates what the status payload contains: review status, producer questions, available human estimate. That scopes it clearly against siblings like submit_production_brief or delete_production_brief, though it does not explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this when the user wants..." is an explicit when-to-use trigger tied to a previously submitted brief, which correctly routes an agent away from submission or deletion flows. It stops short of naming when-not conditions or a specific fallback sibling such as estimate_production.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_production_briefSend production brief to objektsADestructiveInspect
Use this only after the user explicitly confirms that the prepared production brief, one reply channel (email or Telegram), and selected files should be sent to objekts for human production review. A contactless human-review submission is not allowed because the producer must be able to answer the user. When the host 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.
| Name | Required | Description | Default |
|---|---|---|---|
| brief | Yes | ||
| files | No | ||
| contact | Yes | ||
| confirmed | Yes | ||
| selectedAssetIds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | Yes | |
| submissionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-idempotent, destructive, open-world write, so the safety profile is covered. The description adds genuinely non-structured behavior: a mandatory user-confirmation gate, the requirement that a reply channel exist so the producer can respond, and the instruction to reuse host-held files rather than forcing a re-upload. It stops short of describing rate limits, delivery/acknowledgement behavior, or what happens to a previously submitted brief.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, all load-bearing: the confirmation gate is front-loaded first, then the reply-channel rule, then the file-passing optimization, then the exclusions. Dense but not padded. It could have merged the last two exclusions, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and nested contact/files structures are handled well enough in prose. Remaining gaps are the unmentioned confirmed and selectedAssetIds fields and no statement of what a successful submission produces. For a destructive, open-world submission tool the description is solid but not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden and does so for most parameters: files (pass host-held files instead of re-uploading), contact (one reply channel, email or Telegram), brief, and a confirmed gate. It never names the confirmed flag, selectedAssetIds, or the maxItems/cardinality limits, so the mapping from prose to the five schema fields is incomplete even though the intent is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (send production brief to objekts for human production review) and draws a hard boundary against siblings: 'Do not use it for local analysis, estimation...' rules out estimate_production, and the emphasis on human review separates it from status/update tools. An agent can identify this as the terminal submission step without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit preconditions (only after the user explicitly confirms the brief, one reply channel, and selected files), an explicit prohibition (contactless submission not allowed, because the producer must be able to answer the user), and explicit exclusions (no local analysis, no estimation, not when the user said not to send). This is close to a model when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_production_briefUpdate submitted production briefADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | ||
| answers | No | ||
| confirmed | Yes | ||
| briefPatch | No | ||
| submissionId | Yes | ||
| addedAssetIds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | No | |
| questions | Yes | |
| submissionId | Yes | |
| humanEstimate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is partly covered. The description adds real context beyond that: the operation targets an existing human-review submission, requires explicit confirmation, and warns against duplicate file uploads. It doesn't specify what prior content is overwritten or how partial patches behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the confirmation precondition and followed by the file-reuse and scope-exclusion rules. Minor verbosity in the phrase 'clarifications, scope updates, newly supplied asset references or attached production files,' but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the mutation's safety profile is covered by annotations plus the confirmation rule. However, for a complex destructive 6-param tool with nested objects and 0% schema coverage, the description leaves most parameter semantics unaddressed, so an agent lacks full guidance on invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description must carry the burden, yet it only explains the files field (pass file references through rather than re-upload). The required confirmed and submissionId params, plus briefPatch, answers, and addedAssetIds, get no semantic explanation, leaving most of the parameter surface undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description makes clear this sends clarifications, scope updates, or new assets/files to an already-submitted brief that is in objekts human review. The verb 'update/send' and resource (existing submitted brief) are identifiable, but it never explicitly distinguishes itself from the sibling submit_production_brief or delete_production_brief by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a hard precondition (only after explicit user confirmation), a when-not rule ('do not use it to change a brief that exists only in the current conversation'), and a routing heuristic (reuse the files field instead of re-uploading). This is explicit when/when-not guidance rather than implied.
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.
1 tool update
- Changed
estimate_production28 fields changed- added
Input schema / properties / assumptions / descriptionAdded value: +"Explicit factual assumptions used to make the estimate possible; do not invent client facts." - added
Input schema / properties / deadlineDays / descriptionAdded value: +"Calendar days available until delivery when known; null or omit when no deadline is supplied." - added
Input schema / properties / exclusions / descriptionAdded value: +"Work explicitly outside this estimate, especially live-action, rights, media, extra versions, or unrequested disciplines." - added
Input schema / properties / externalBidItems / descriptionAdded value: +"Known cost exposures that require third-party bids; these remain outside the automated production range." - added
Input schema / properties / externalBidItems / items / properties / label / descriptionAdded value: +"External cost item that cannot be responsibly priced by this engine, such as talent, location, licensed music, or live-action vendor work." - added
Input schema / properties / externalBidItems / items / properties / reason / descriptionAdded value: +"Why this cost requires an external quote or remains unknown." - added
Input schema / properties / includeDepartments / descriptionAdded value: +"Optional whitelist of departments to include when the requested estimate intentionally covers only selected disciplines." - added
Input schema / properties / mode / descriptionAdded value: +"ROM for an early range; SCOPED_ESTIMATE for a defined scope; BUDGET_FIT to compare scope with a target budget; DEADLINE_FIT to evaluate schedule pressure." - changed
Input schema / properties / runtimeSeconds / descriptionPrevious value: -"Final master runtime in seconds when known. Use null only when runtime is genuinely unknown; for whole-production pricing, runtime is a material pricing input."New value: +"Final master runtime in seconds when known; null only when genuinely unknown." - changed
Input schema / properties / scopeBasis / descriptionPrevious value: -"One concise sentence stating exactly what the estimate includes. Never imply a bounded shot/post scope is the price of the whole commercial."New value: +"One concise sentence stating exactly what the estimate includes and excludes from the priced object." - changed
Input schema / properties / scopeDecision / descriptionPrevious value: -"USER_EXPLICIT when the user request itself clearly targets either a finished commercial/film/video deliverable or a bounded shot/scene/post task. Literal words like whole/only are not required when the requested object is already clear. SCENARIO is for a clearly labeled hypothetical. INFERRED is only for genuinely ambiguous scope and returns no price until clarified."New value: +"USER_EXPLICIT when the requested object is clear; SCENARIO for an explicitly labeled hypothetical; INFERRED only when scope is genuinely ambiguous, in which case no price is returned until clarified." - changed
Input schema / properties / scopeEvidence / descriptionPrevious value: -"For USER_EXPLICIT, copy a short verbatim phrase from the user's request; do not paraphrase, add words, or summarize. The phrase must make the requested object clear: a finished deliverable or a bounded shot/scene/post task. For SCENARIO/INFERRED, briefly state that this is a scenario or inferred interpretation."New value: +"Short evidence for the scope choice. For USER_EXPLICIT, copy a brief verbatim phrase from the user's request that identifies the priced object." - changed
Input schema / properties / scopeType / descriptionPrevious value: -"WHOLE_PRODUCTION for the complete production being priced; BOUNDED_SHOT_POST for only named shots/scenes/post tasks. Never silently reinterpret one as the other."New value: +"WHOLE_PRODUCTION prices the complete requested finished deliverable; BOUNDED_SHOT_POST prices only named shots, scenes, VFX, or post tasks." - added
Input schema / properties / targetBudgetMax / descriptionAdded value: +"Upper bound of the user's target budget in RUB for BUDGET_FIT; omit when no target ceiling is supplied." - added
Input schema / properties / targetBudgetMin / descriptionAdded value: +"Lower bound of the user's target budget in RUB for BUDGET_FIT; omit when no budget floor exists." - added
Input schema / properties / units / descriptionAdded value: +"Production line items that drive the estimate. Include every material discipline/unit being priced; each item explains quantity, complexity, locks, continuity, and basis." - added
Input schema / properties / units / items / properties / basis / descriptionAdded value: +"Short factual notes explaining why this unit, quantity, complexity, or lock count was chosen." - added
Input schema / properties / units / items / properties / complexity / descriptionAdded value: +"LOW, MEDIUM, HIGH, or EXTREME execution complexity for this unit." - added
Input schema / properties / units / items / properties / department / descriptionAdded value: +"Department responsible for this unit; use the closest production discipline from the enum." - added
Input schema / properties / units / items / properties / hardLocks / descriptionAdded value: +"Number of exact visual constraints this unit must preserve, such as product geometry, identity, logo, camera, or wardrobe." - added
Input schema / properties / units / items / properties / id / descriptionAdded value: +"Stable short ID for this production unit, such as hero-shots, compositing, or edit." - added
Input schema / properties / units / items / properties / quantity / descriptionAdded value: +"Count of comparable units in this line item. Defaults to 1 when omitted." - added
Input schema / properties / units / items / properties / recurringEntities / descriptionAdded value: +"Count of products, characters, vehicles, or other entities that must stay consistent across multiple outputs." - added
Input schema / properties / units / items / properties / reusable / descriptionAdded value: +"True when the unit creates a reusable asset/system that materially reduces repeated production work." - added
Input schema / properties / versioning / descriptionAdded value: +"Version/adaptation workload beyond the master deliverable; distinguish simple exports from recomposition and new production." - added
Input schema / properties / versioning / properties / derivedVersions / descriptionAdded value: +"Count of low-effort versions derived from the master without new composition or production." - added
Input schema / properties / versioning / properties / newProductionUnits / descriptionAdded value: +"Count of versions that introduce new camera, action, mise-en-scène, shot, or equivalent fresh production." - added
Input schema / properties / versioning / properties / recomposedVersions / descriptionAdded value: +"Count of adaptations that require material reframing, redesign, or recomposition."
1 tool update
- Changed
diagnose_production13 fields changed- removed
Output schema / properties / assetFitnessRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "assetId": { - "type": "string" - }, - "controlsHardDomains": { - "items": { - "enum": [ - "CHARACTER_IDENTITY", - "FACE", - "BODY", - "WARDROBE", - "PRODUCT_GEOMETRY", - "PRODUCT_COLOR", - "PACKAGING", - "MATERIAL_RESPONSE", - "LOCATION_GEOMETRY", - "ARCHITECTURE", - "CAMERA", - "LENS", - "COMPOSITION", - "LIGHTING", - "COLOR", - "LOGO", - "TYPOGRAPHY", - "COPY", - "MOTION", - "POSE", - "INTERIOR_GEOMETRY", - "SCALE", - "DEPTH_PLANE", - "FOCUS_BEHAVIOR", - "SOUND", - "OTHER" - ], - "type": "string" - }, - "type": "array" - }, - "fitness": { - "enum": [ - "FIT", - "FIT_WITH_REBUILD", - "NOT_FIT", - "UNKNOWN" - ], - "type": "string" - }, - "label": { - "type": "string" - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "assetId", - "label", - "fitness", - "controlsHardDomains", - "notes" - ], - "type": "object" - }, - "type": "array" -} - removed
Output schema / properties / authorityRemoved value: -{ - "additionalProperties": false, - "properties": { - "conflicts": { - "items": { - "additionalProperties": false, - "properties": { - "assetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "domain": { - "enum": [ - "CHARACTER_IDENTITY", - "FACE", - "BODY", - "WARDROBE", - "PRODUCT_GEOMETRY", - "PRODUCT_COLOR", - "PACKAGING", - "MATERIAL_RESPONSE", - "LOCATION_GEOMETRY", - "ARCHITECTURE", - "CAMERA", - "LENS", - "COMPOSITION", - "LIGHTING", - "COLOR", - "LOGO", - "TYPOGRAPHY", - "COPY", - "MOTION", - "POSE", - "INTERIOR_GEOMETRY", - "SCALE", - "DEPTH_PLANE", - "FOCUS_BEHAVIOR", - "SOUND", - "OTHER" - ], - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "required": [ - "domain", - "assetIds", - "reason" - ], - "type": "object" - }, - "type": "array" - }, - "winners": { - "items": { - "additionalProperties": false, - "properties": { - "approvalState": { - "enum": [ - "EXPLORATORY", - "CANDIDATE", - "APPROVED", - "FROZEN", - "SUPERSEDED", - "REJECTED" - ], - "type": "string" - }, - "assetId": { - "type": "string" - }, - "domain": { - "enum": [ - "CHARACTER_IDENTITY", - "FACE", - "BODY", - "WARDROBE", - "PRODUCT_GEOMETRY", - "PRODUCT_COLOR", - "PACKAGING", - "MATERIAL_RESPONSE", - "LOCATION_GEOMETRY", - "ARCHITECTURE", - "CAMERA", - "LENS", - "COMPOSITION", - "LIGHTING", - "COLOR", - "LOGO", - "TYPOGRAPHY", - "COPY", - "MOTION", - "POSE", - "INTERIOR_GEOMETRY", - "SCALE", - "DEPTH_PLANE", - "FOCUS_BEHAVIOR", - "SOUND", - "OTHER" - ], - "type": "string" - }, - "strength": { - "enum": [ - "HARD", - "SOFT" - ], - "type": "string" - } - }, - "required": [ - "domain", - "assetId", - "strength", - "approvalState" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "winners", - "conflicts" - ], - "type": "object" -} - removed
Output schema / properties / changesRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "changeId": { - "type": "string" - }, - "impact": { - "enum": [ - "NONE", - "LOCAL_REVISION", - "UPSTREAM_INVALIDATION", - "NEW_PRODUCTION_UNIT", - "REESTIMATE_REQUIRED" - ], - "type": "string" - }, - "label": { - "type": "string" - } - }, - "required": [ - "changeId", - "label", - "impact" - ], - "type": "object" - }, - "type": "array" -} - removed
Output schema / properties / criticalQuestionsRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "affects": { - "items": { - "enum": [ - "CREATIVE", - "FEASIBILITY", - "COST", - "SCHEDULE", - "RIGHTS", - "DELIVERY" - ], - "type": "string" - }, - "type": "array" - }, - "impact": { - "enum": [ - "LOW", - "MEDIUM", - "HIGH", - "BLOCKING" - ], - "type": "string" - }, - "question": { - "type": "string" - }, - "unknownId": { - "type": "string" - } - }, - "required": [ - "unknownId", - "question", - "impact", - "affects" - ], - "type": "object" - }, - "type": "array" -} - removed
Output schema / properties / objectiveRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / pocPlanRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "affectedIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pocId": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "successCriterion": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "pocId", - "title", - "reason", - "successCriterion", - "affectedIds" - ], - "type": "object" - }, - "maxItems": 3, - "type": "array" -} - removed
Output schema / properties / professionalInsightsRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "affectedIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "code": { - "enum": [ - "AUTHORITY_CONFLICT", - "UNBOUND_HARD_LOCK", - "UNSAFE_TRUTH_LAYER", - "ASSET_NOT_PRODUCTION_FIT", - "CONTINUITY_RISK", - "VERSION_CREATES_SCOPE", - "CHANGE_INVALIDATES_WORK", - "READINESS_BLOCKER" - ], - "type": "string" - }, - "decision": { - "type": "string" - }, - "finding": { - "type": "string" - }, - "severity": { - "enum": [ - "BLOCKER", - "HIGH", - "MEDIUM" - ], - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "severity", - "code", - "title", - "finding", - "decision", - "affectedIds" - ], - "type": "object" - }, - "maxItems": 3, - "type": "array" -} - removed
Output schema / properties / readinessRemoved value: -{ - "additionalProperties": false, - "properties": { - "blockers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "overall": { - "enum": [ - "IDEA", - "BRIEFABLE", - "ESTIMATABLE", - "QUOTE_READY", - "PRODUCTION_READY" - ], - "type": "string" - } - }, - "required": [ - "overall", - "blockers" - ], - "type": "object" -} - added
Output schema / properties / responseContractAdded value: +{ + "additionalProperties": false, + "properties": { + "allowGenericChecklist": { + "const": false, + "type": "boolean" + }, + "maxDecisions": { + "const": 3, + "type": "number" + }, + "maxPocs": { + "const": 1, + "type": "number" + }, + "maxQuestions": { + "const": 3, + "type": "number" + } + }, + "required": [ + "maxDecisions", + "maxPocs", + "maxQuestions", + "allowGenericChecklist" + ], + "type": "object" +} - removed
Output schema / properties / routeChecksRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "elementId": { - "type": "string" - }, - "label": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "recommendedControlMode": { - "enum": [ - "DETERMINISTIC", - "REFERENCE_LOCKED", - "GENERATIVE" - ], - "type": "string" - }, - "recommendedTruthLayer": { - "enum": [ - "LIVE_ACTION", - "CONTROLLED_CGI", - "AI_GENERATED", - "SOURCE_ASSET", - "GRAPHICS", - "COMPOSITE" - ], - "type": "string" - }, - "safe": { - "type": "boolean" - } - }, - "required": [ - "elementId", - "label", - "safe", - "reason" - ], - "type": "object" - }, - "type": "array" -} - removed
Output schema / properties / versionsRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "classification": { - "enum": [ - "MASTER", - "DERIVED_VERSION", - "RECOMPOSED_VERSION", - "NEW_PRODUCTION_UNIT" - ], - "type": "string" - }, - "label": { - "type": "string" - }, - "versionId": { - "type": "string" - } - }, - "required": [ - "versionId", - "label", - "classification" - ], - "type": "object" - }, - "type": "array" -} - added
Output schema / properties / visibleVerdictAdded value: +{ + "additionalProperties": false, + "properties": { + "blockingInputs": { + "items": { + "type": "string" + }, + "maxItems": 3, + "type": "array" + }, + "decisions": { + "items": { + "additionalProperties": false, + "properties": { + "action": { + "type": "string" + }, + "code": { + "enum": [ + "AUTHORITY_CONFLICT", + "UNBOUND_HARD_LOCK", + "UNSAFE_TRUTH_LAYER", + "ASSET_NOT_PRODUCTION_FIT", + "CONTINUITY_RISK", + "VERSION_CREATES_SCOPE", + "CHANGE_INVALIDATES_WORK", + "READINESS_BLOCKER" + ], + "type": "string" + }, + "finding": { + "type": "string" + }, + "severity": { + "enum": [ + "BLOCKER", + "HIGH", + "MEDIUM" + ], + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "severity", + "code", + "title", + "finding", + "action" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "firstPoc": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "reason": { + "type": "string" + }, + "successCriterion": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "reason", + "successCriterion" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "readiness": { + "enum": [ + "IDEA", + "BRIEFABLE", + "ESTIMATABLE", + "QUOTE_READY", + "PRODUCTION_READY" + ], + "type": "string" + } + }, + "required": [ + "readiness", + "decisions", + "firstPoc", + "blockingInputs" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "objective", - "authority", - "routeChecks", - "assetFitness", - "versions", - "changes", - "readiness", - "criticalQuestions", - "professionalInsights", - "pocPlan" -]New value: +[ + "responseContract", + "visibleVerdict" +]
1 tool update
- Added
diagnose_production
1 tool update
- Changed
submit_production_brief1 field changed- changed
Input schema / requiredPrevious value: -[ - "confirmed", - "brief" -]New value: +[ + "confirmed", + "contact", + "brief" +]
1 tool update
- Changed
estimate_production18 fields changed- added
Input schema / properties / assumptions / items / maxLengthAdded value: +1000 - added
Input schema / properties / assumptions / maxItemsAdded value: +50 - added
Input schema / properties / exclusions / items / maxLengthAdded value: +1000 - added
Input schema / properties / exclusions / maxItemsAdded value: +50 - added
Input schema / properties / externalBidItems / items / properties / label / maxLengthAdded value: +300 - added
Input schema / properties / externalBidItems / items / properties / reason / maxLengthAdded value: +1000 - added
Input schema / properties / externalBidItems / maxItemsAdded value: +50 - added
Input schema / properties / includeDepartments / maxItemsAdded value: +20 - changed
Input schema / properties / runtimeSeconds / anyOfPrevious value: -[ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "exclusiveMinimum": 0, + "maximum": 36000, + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / scopeDecision / descriptionPrevious value: -"USER_EXPLICIT only when the user explicitly distinguishes full/whole/turnkey production from only/just/bounded shots or post. SCENARIO when calculating a clearly labeled hypothetical. INFERRED when the model had to guess the scope; INFERRED calls return no price and require one clarification question."New value: +"USER_EXPLICIT when the user request itself clearly targets either a finished commercial/film/video deliverable or a bounded shot/scene/post task. Literal words like whole/only are not required when the requested object is already clear. SCENARIO is for a clearly labeled hypothetical. INFERRED is only for genuinely ambiguous scope and returns no price until clarified." - changed
Input schema / properties / scopeEvidence / descriptionPrevious value: -"A short verbatim phrase from the user's request that supports USER_EXPLICIT, or a short explanation that this is a labeled SCENARIO/INFERRED interpretation."New value: +"For USER_EXPLICIT, copy a short verbatim phrase from the user's request; do not paraphrase, add words, or summarize. The phrase must make the requested object clear: a finished deliverable or a bounded shot/scene/post task. For SCENARIO/INFERRED, briefly state that this is a scenario or inferred interpretation." - changed
Input schema / properties / units / items / properties / hardLocks / maximumPrevious value: -9007199254740991New value: +100 - changed
Input schema / properties / units / items / properties / quantity / maximumPrevious value: -9007199254740991New value: +1000 - changed
Input schema / properties / units / items / properties / recurringEntities / maximumPrevious value: -9007199254740991New value: +100 - added
Input schema / properties / units / maxItemsAdded value: +200 - changed
Input schema / properties / versioning / properties / derivedVersions / maximumPrevious value: -9007199254740991New value: +1000 - changed
Input schema / properties / versioning / properties / newProductionUnits / maximumPrevious value: -9007199254740991New value: +1000 - changed
Input schema / properties / versioning / properties / recomposedVersions / maximumPrevious value: -9007199254740991New value: +1000
4 tool updates
- Changed
create_upload_session2 fields changed- added
Input schema / properties / confirmedAdded value: +{ + "const": true, + "type": "boolean" +} - changed
Input schema / requiredPrevious value: -[ - "filename", - "mediaType", - "sizeBytes" -]New value: +[ + "confirmed", + "filename", + "mediaType", + "sizeBytes" +]
- Changed
estimate_production12 fields changed- added
Input schema / properties / runtimeSecondsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "type": "null" + } + ], + "description": "Final master runtime in seconds when known. Use null only when runtime is genuinely unknown; for whole-production pricing, runtime is a material pricing input." +} - added
Input schema / properties / scopeBasisAdded value: +{ + "description": "One concise sentence stating exactly what the estimate includes. Never imply a bounded shot/post scope is the price of the whole commercial.", + "maxLength": 600, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / scopeDecisionAdded value: +{ + "description": "USER_EXPLICIT only when the user explicitly distinguishes full/whole/turnkey production from only/just/bounded shots or post. SCENARIO when calculating a clearly labeled hypothetical. INFERRED when the model had to guess the scope; INFERRED calls return no price and require one clarification question.", + "enum": [ + "USER_EXPLICIT", + "SCENARIO", + "INFERRED" + ], + "type": "string" +} - added
Input schema / properties / scopeEvidenceAdded value: +{ + "description": "A short verbatim phrase from the user's request that supports USER_EXPLICIT, or a short explanation that this is a labeled SCENARIO/INFERRED interpretation.", + "maxLength": 300, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / scopeTypeAdded value: +{ + "description": "WHOLE_PRODUCTION for the complete production being priced; BOUNDED_SHOT_POST for only named shots/scenes/post tasks. Never silently reinterpret one as the other.", + "enum": [ + "WHOLE_PRODUCTION", + "BOUNDED_SHOT_POST" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "mode", - "units" -]New value: +[ + "mode", + "scopeType", + "scopeDecision", + "scopeEvidence", + "runtimeSeconds", + "scopeBasis", + "units" +] - added
Output schema / properties / runtimeSecondsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / scopeBasisAdded value: +{ + "type": "string" +} - added
Output schema / properties / scopeDecisionAdded value: +{ + "enum": [ + "USER_EXPLICIT", + "SCENARIO", + "INFERRED" + ], + "type": "string" +} - added
Output schema / properties / scopeEvidenceAdded value: +{ + "type": "string" +} - added
Output schema / properties / scopeTypeAdded value: +{ + "enum": [ + "WHOLE_PRODUCTION", + "BOUNDED_SHOT_POST" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "mode", - "currency", - "confidence", - "rangeMin", - "rangeMax", - "timelineMinDays", - "timelineMaxDays", - "departments", - "costDrivers", - "assumptions", - "exclusions", - "unknownCostExposure" -]New value: +[ + "mode", + "scopeType", + "scopeDecision", + "scopeEvidence", + "runtimeSeconds", + "scopeBasis", + "currency", + "confidence", + "rangeMin", + "rangeMax", + "timelineMinDays", + "timelineMaxDays", + "departments", + "costDrivers", + "assumptions", + "exclusions", + "unknownCostExposure" +]
- Changed
submit_production_brief13 fields changed- added
Input schema / properties / contact / properties / company / anyOfAdded value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / contact / properties / company / typeRemoved value: -[ - "string", - "null" -] - changed
Input schema / properties / contact / properties / email / anyOfPrevious value: -[ - { - "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": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "format": "email", + "maxLength": 320, + "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": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / contact / properties / name / anyOfAdded value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / contact / properties / name / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / contact / properties / telegram / anyOfAdded value: +[ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / contact / properties / telegram / typeRemoved value: -[ - "string", - "null" -] - added
Input schema / properties / files / items / properties / download_url / maxLengthAdded value: +4096 - added
Input schema / properties / files / items / properties / file_id / maxLengthAdded value: +512 - added
Input schema / properties / files / items / properties / file_name / maxLengthAdded value: +255 - added
Input schema / properties / files / items / properties / mime_type / maxLengthAdded value: +200 - added
Input schema / properties / selectedAssetIds / items / maxLengthAdded value: +128 - added
Input schema / properties / selectedAssetIds / maxItemsAdded value: +50
- Changed
update_production_brief9 fields changed- added
Input schema / properties / addedAssetIds / items / maxLengthAdded value: +128 - added
Input schema / properties / addedAssetIds / maxItemsAdded value: +50 - added
Input schema / properties / answers / additionalProperties / maxLengthAdded value: +4000 - added
Input schema / properties / answers / propertyNames / maxLengthAdded value: +200 - added
Input schema / properties / briefPatch / propertyNames / maxLengthAdded value: +200 - added
Input schema / properties / files / items / properties / download_url / maxLengthAdded value: +4096 - added
Input schema / properties / files / items / properties / file_id / maxLengthAdded value: +512 - added
Input schema / properties / files / items / properties / file_name / maxLengthAdded value: +255 - added
Input schema / properties / files / items / properties / mime_type / maxLengthAdded value: +200
6 tool updates
- First observed
create_upload_session - First observed
delete_production_brief - First observed
estimate_production - First observed
get_production_brief_status - First observed
submit_production_brief - First observed
update_production_brief
Related MCP Connectors
AI film lab for filmmakers: generate and review images/clips with input provenance, cost preflight
Build 3D scenes, place cameras and render shots. Previs, storyboards, set design, product and CAD.
One sentence to a finished animation: your AI writes motion graphics as code and checks real frames.
Validate AI-made motion graphics and package them as editable HyperCodeMotion projects.
Related MCP Servers
AlicenseAqualityAmaintenanceLets your AI app work inside Adobe After Effects and prove what it did: an exact change report for every edit, pixel-proven restructures, delivery checks against your own spec, template stress tests and verified farm renders.4291MIT- AlicenseNot gradedqualityAmaintenanceEnables AI clients to manage video pre-production and production workflows through OAuth-secured tools covering projects, story and scripts, assets, 3D maquettes, storyboards, video generation, writers' room, and scheduling, with user approval and cost confirmation for paid generations.AGPL 3.0
- AlicenseBqualityAmaintenanceQuality gate for AI video renders: checks keyframes and clips for blur, flicker, frozen or black frames and look drift, and decides PASS / RETRY / SWITCH_TO_FALLBACK / HALT with a spend ledger.61MIT
- FlicenseNot gradedqualityBmaintenanceAI-native video composition and VFX engine that exposes its capabilities as MCP tools, enabling AI agents to act as directors and create videos programmatically.-
Glama MCP Gateway
Add one secure layer between your agents and this server.