# transkribus_upload_bulk_update_doc_metadata

Bulk update document metadata for uploads.

Agent View of the PolicyLayer registry record for `transkribus_upload_bulk_update_doc_metadata`. HTML page: https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-upload-bulk-update-doc-metadata

## Facts

- Tool: `transkribus_upload_bulk_update_doc_metadata`
- Server: Transkribus (`@lazyants/transkribus-mcp-server`) — https://policylayer.com/tools/io-github-lazyants-transkribus.md
- Install: `npx -y @lazyants/transkribus-mcp-server`
- Homepage: https://github.com/lazyants/transkribus-mcp-server
- 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": "transkribus_upload_bulk_update_doc_metadata",
    "arguments": {}
  }
}
```

## Why transkribus_upload_bulk_update_doc_metadata is rated Medium

This tool modifies metadata for multiple documents at once (bulk update). Metadata changes are reversible, making this a Write operation rather than Destructive. The bulk nature and potential to affect many documents simultaneously elevates severity from low to medium, as an agent error could corrupt metadata across multiple uploads.

From the tool's own definition: "Tool name contains 'upload_bulk_update' and description states 'Bulk update document metadata for uploads' — indicates creation/modification of metadata at scale."

## Use case

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

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "transkribus_upload_bulk_update_doc_metadata": {
      "limits": [
        {
          "counter": "transkribus_upload_bulk_update_doc_metadata_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Transkribus (300)

- `transkribus_coll_credit_remove_package` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-coll-credit-remove-package.md
- `transkribus_coll_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-coll-delete.md
- `transkribus_coll_delete_empty` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-coll-delete-empty.md
- `transkribus_coll_remove_user` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-coll-remove-user.md
- `transkribus_coll_user_remove` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-coll-user-remove.md
- `transkribus_crowd_delete_messages` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-crowd-delete-messages.md
- `transkribus_crowd_delete_milestones` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-crowd-delete-milestones.md
- `transkribus_doc_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-doc-delete.md
- `transkribus_editdecl_delete_feature` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-editdecl-delete-feature.md
- `transkribus_editdecl_delete_option` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-editdecl-delete-option.md
- `transkribus_job_undo` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-job-undo.md
- `transkribus_label_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-label-delete.md
- `transkribus_label_remove_all_documents` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-label-remove-all-documents.md
- `transkribus_label_remove_all_pages` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-label-remove-all-pages.md
- `transkribus_label_remove_pages` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-label-remove-pages.md
- `transkribus_model_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-model-delete.md
- `transkribus_model_delete_by_type` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-model-delete-by-type.md
- `transkribus_model_remove_collection` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-model-remove-collection.md
- `transkribus_model_remove_collection_by_id` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-model-remove-collection-by-id.md
- `transkribus_page_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-page-delete.md
- `transkribus_page_delete_transcript` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-page-delete-transcript.md
- `transkribus_recog_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-recog-delete.md
- `transkribus_recog_remove_from_collection` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-recog-remove-from-collection.md
- `transkribus_search_reset_index` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-search-reset-index.md
- `transkribus_upload_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-upload-delete.md
- `transkribus_user_delete` — Destructive — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-user-delete.md
- `transkribus_admin_rebuild_models_index` — Execute — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-admin-rebuild-models-index.md
- `transkribus_du_recognize` — Execute — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-du-recognize.md
- `transkribus_job_create` — Execute — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-job-create.md
- `transkribus_job_restart_all_by_user` — Execute — https://policylayer.com/tools/io-github-lazyants-transkribus/transkribus-job-restart-all-by-user.md
- …and 270 more: https://policylayer.com/tools/io-github-lazyants-transkribus.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=io-github-lazyants-transkribus · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-lazyants-transkribus
