With the write half enabled this server can create queues, rewrite schemas, install hooks and delete entities in a live document pipeline — so the fact that `read-only` removes those tools from the list entirely, rather than refusing them at call time, is the design decision that makes it deployable. The annotation workflow has an order that is easy to get wrong: start the annotation before patching fields, use the numeric datapoint `id` rather than the `schema_id`, and confirm afterwards.
A community MCP server for Rossum, the intelligent document processing platform. It goes well past reading extracted data: queues, schemas, engines, hooks and rules can all be created and changed through it, which turns organisation setup from a click-through into a conversation. A unified read layer means one `get` and one `search` cover every entity type instead of a tool per object. The public repository is archived while the project moves to a private GitLab for an overhaul.
- One typed accessor for every entity, by id or by filtered search, with batch retrieval skipping failed items rather than erroring the call — `get`, `search`
- The document lifecycle end to end: upload for AI extraction, fetch the extracted content to a local JSON file, move the annotation into review, patch field values, and confirm — `upload_document`, `get_annotation_content`, `start_annotation`, `bulk_update_annotation_fields`, `confirm_annotation`
- Annotations copied to another queue, optionally re-extracting in the target — `copy_annotations`
- Queues created from regional templates with a matching schema and optional engine, and their automation thresholds updated — `create_queue_from_template`, `update_queue`
- Schemas patched, viewed as a lightweight tree, and pruned of unused fields — `patch_schema`, `get_schema_tree_structure`, `prune_schema_fields`
- Extraction engines and their fields created and updated — `create_engine`, `update_engine`, `create_engine_field`, `get_engine_fields`
- Hooks and rules created from scratch or from templates, and tested before they go live — `create_hook`, `update_hook`, `create_hook_from_template`, `test_hook`, `create_rule`
- Anything deletable removed by id, in read-write mode only — `delete`
- Tool discovery and a mode check, so the agent can find out what it is allowed to do — `list_tool_categories`, `get_mcp_mode`
A Rossum API token in `ROSSUM_API_TOKEN` and your endpoint in `ROSSUM_API_BASE_URL`, for example `https://api.elis.rossum.ai/v1` — both required. `ROSSUM_MCP_MODE` is the safety switch: `read-write` is the default, and `read-only` cuts the tool list to `get`, `search`, `get_annotation_content`, `get_schema_tree_structure`, `get_engine_fields`, `list_tool_categories` and `get_mcp_mode`, disabling every create, update, upload and delete. Switching modes means restarting the server. Run it with `uvx rossum-mcp` over stdio. This is a community integration built on the Rossum API, not an official Rossum product.
One command plus a key — uvx rossum-mcp, then supply credentials
