# worker.complete

Complete a leased job only after every declared output artifact is registered.

Agent View of the PolicyLayer registry record for `worker.complete`. HTML page: https://policylayer.com/tools/visionmcp/worker.complete

## Facts

- Tool: `worker.complete`
- Server: Visionmcp (`joshuahickscorp/visionmcp`) — https://policylayer.com/tools/visionmcp.md
- Homepage: https://github.com/joshuahickscorp/visionmcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "worker.complete",
    "arguments": {}
  }
}
```

## Why worker.complete is rated Medium

This tool marks/completes a job and registers output artifacts, which is a write/update operation on job state. It modifies the state of a leased job and registers artifacts, but does not delete data or execute arbitrary code. The blast radius is medium because misuse could prematurely complete jobs or register incorrect artifacts, disrupting a workflow pipeline.

From the tool's own definition: "Complete a leased job only after every declared output artifact is registered"

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents use worker.complete to create or update resources in Visionmcp, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Visionmcp environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Visionmcp:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "worker.complete": {
      "limits": [
        {
          "counter": "worker.complete_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Visionmcp (375)

- `active_learning.rollback` — Destructive — https://policylayer.com/tools/visionmcp/active-learning.rollback.md
- `artifact.reap_stale_uploads` — Destructive — https://policylayer.com/tools/visionmcp/artifact.reap-stale-uploads.md
- `active_learning.execute_retraining` — Execute — https://policylayer.com/tools/visionmcp/active-learning.execute-retraining.md
- `active_learning.plan_retraining` — Execute — https://policylayer.com/tools/visionmcp/active-learning.plan-retraining.md
- `benchmark.bootstrap_calibration` — Execute — https://policylayer.com/tools/visionmcp/benchmark.bootstrap-calibration.md
- `benchmark.bootstrap_dgx_spark` — Execute — https://policylayer.com/tools/visionmcp/benchmark.bootstrap-dgx-spark.md
- `benchmark.bootstrap_rtx_5090_fe` — Execute — https://policylayer.com/tools/visionmcp/benchmark.bootstrap-rtx-5090-fe.md
- `benchmark.refine_dgx_spark_base_foot_candidate` — Execute — https://policylayer.com/tools/visionmcp/benchmark.refine-dgx-spark-base-foot-candidate.md
- `benchmark.refine_dgx_spark_visual_candidate` — Execute — https://policylayer.com/tools/visionmcp/benchmark.refine-dgx-spark-visual-candidate.md
- `benchmark.refine_rtx_5090_fe_front_frame_candidate` — Execute — https://policylayer.com/tools/visionmcp/benchmark.refine-rtx-5090-fe-front-frame-candidate.md
- `benchmark.refine_rtx_5090_fe_visual_candidate` — Execute — https://policylayer.com/tools/visionmcp/benchmark.refine-rtx-5090-fe-visual-candidate.md
- `blender.generate_lod` — Execute — https://policylayer.com/tools/visionmcp/blender.generate-lod.md
- `blender.prepare_asset` — Execute — https://policylayer.com/tools/visionmcp/blender.prepare-asset.md
- `blender.render` — Execute — https://policylayer.com/tools/visionmcp/blender.render.md
- `camera.derive_undistorted` — Execute — https://policylayer.com/tools/visionmcp/camera.derive-undistorted.md
- `campaign.advance` — Execute — https://policylayer.com/tools/visionmcp/campaign.advance.md
- `campaign.resume` — Execute — https://policylayer.com/tools/visionmcp/campaign.resume.md
- `campaign.start` — Execute — https://policylayer.com/tools/visionmcp/campaign.start.md
- `candidate.evaluate_transaction` — Execute — https://policylayer.com/tools/visionmcp/candidate.evaluate-transaction.md
- `component.generate` — Execute — https://policylayer.com/tools/visionmcp/component.generate.md
- `coverage.acquire_missing` — Execute — https://policylayer.com/tools/visionmcp/coverage.acquire-missing.md
- `dataset.generate` — Execute — https://policylayer.com/tools/visionmcp/dataset.generate.md
- `dataset.train_feature_model` — Execute — https://policylayer.com/tools/visionmcp/dataset.train-feature-model.md
- `evidence.discover` — Execute — https://policylayer.com/tools/visionmcp/evidence.discover.md
- `geometry.run_ensemble` — Execute — https://policylayer.com/tools/visionmcp/geometry.run-ensemble.md
- `photogrammetry.run` — Execute — https://policylayer.com/tools/visionmcp/photogrammetry.run.md
- `portfolio.execute_initial` — Execute — https://policylayer.com/tools/visionmcp/portfolio.execute-initial.md
- `portfolio.execute_parametric_seed` — Execute — https://policylayer.com/tools/visionmcp/portfolio.execute-parametric-seed.md
- `recon.bootstrap` — Execute — https://policylayer.com/tools/visionmcp/recon.bootstrap.md
- `recon.continue_multiview_search` — Execute — https://policylayer.com/tools/visionmcp/recon.continue-multiview-search.md
- …and 345 more: https://policylayer.com/tools/visionmcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=visionmcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/visionmcp
