# objekts Production Desk

> AI/VFX, CGI, motion & animation production preflight by objekts: locks, continuity, PoCs, estimates.

- name: ai.objekts.mcp/production-desk
- version: 0.1.3
- connection class: R0 (autonomous)
- trust: 95/100
- quality: 75/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.objekts.mcp%2Fproduction-desk
- tools: https://api.protogrid.dev/v1/servers/ai.objekts.mcp%2Fproduction-desk/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "production-desk": {
      "type": "http",
      "url": "https://mcp.objekts.ai/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 97
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-92% +updated-17d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 75/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 4,604 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 7 tool changes in 30 days
- fail `stability.rug_pull`: 2 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 4,604 tokens to load them all
- tool set hash: 6354009cb22fad4881acada55f9def2c
- tools last changed: 2026-10-03T20:31:56.082Z
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.objekts.mcp/production-desk.svg)](https://protogrid.dev/servers/ai.objekts.mcp/production-desk)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-03 `estimate_production` changed (description, inputSchema) **meaning changed**
  - before: Use the objekts Production Desk estimate engine only when the user explicitly asks about price, cost, budget, quote, or budget fit. Set scopeType to WHOLE_PRODUCTION or BOUNDED_SHOT_POST and pass a short verbatim scopeEvidence phrase. Use USER_EXPLICIT when the requested object itself is clear: for example, a request to make/price a finished commercial is whole-production, while a request to make/fix/price named shots or scene post work is bounded. Use INFERRED only when the requested object is genuinely ambiguous; then the tool returns no price until clarified, or you may calculate clearly labeled SCENARIO estimates. Pass runtimeSeconds when known. It packages objekts production-estimation methodology and computes a non-binding estimate from production units, scope type, runtime, hard locks, continuity, versioning and deadline pressure. Do not collect contact information for this tool.
  - after: 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.
- 2026-10-03 `diagnose_production` changed (description, outputSchema)
  - before: 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: 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.
- 2026-10-03 `update_production_brief` changed (inputSchema)
- 2026-10-03 `submit_production_brief` changed (description, inputSchema)
  - before: 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.
  - after: 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.
- 2026-10-03 `create_upload_session` changed (inputSchema)
- 2026-10-03 `estimate_production` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: 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.
  - after: Use the objekts Production Desk estimate engine only when the user explicitly asks about price, cost, budget, quote, or budget fit. Set scopeType to WHOLE_PRODUCTION or BOUNDED_SHOT_POST and pass a short verbatim scopeEvidence phrase. Use USER_EXPLICIT when the requested object itself is clear: for example, a request to make/price a finished commercial is whole-production, while a request to make/fix/price named shots or scene post work is bounded. Use INFERRED only when the requested object is genuinely ambiguous; then the tool returns no price until clarified, or you may calculate clearly labeled SCENARIO estimates. Pass runtimeSeconds when known. It packages objekts production-estimation methodology and computes a non-binding estimate from production units, scope type, runtime, hard locks, continuity, versioning and deadline pressure. Do not collect contact information for this tool.
- 2026-10-03 `diagnose_production` added
  - 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.

Full history: https://api.protogrid.dev/v1/servers/ai.objekts.mcp%2Fproduction-desk/changes

## Remotes

- https://mcp.objekts.ai/mcp (streamable-http, auth none, reachable true, uptime30d 0.91525424)

## Packages

_none_

## Tools (7)

- `create_upload_session`: 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.
- `delete_production_brief`: 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.
- `diagnose_production`: 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.
- `estimate_production`: 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.
- `get_production_brief_status`: 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.
- `submit_production_brief`: 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.
- `update_production_brief`: 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.
