Transkribus MCP Server

@lazyants/transkribus-mcp-server npm v3.1.0 Source verified

Published by lazyants — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.

MCP server for the Transkribus REST API — manage collections, documents, recognition, models, and more. 300 tools across 22 resource domains.

Trust grade
A
94/100
Last scanned get badge →
Trust
A · 94/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
High
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
Share this Trust Score
𝕏 Share LinkedIn Reddit
A Why this grade threat 100 − adoption risk = 94/100

The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.

1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:

The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.

2. Client adoption risk — 100 − 6 = 94. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:

PointsAdoption-risk factor
−6 capability blast radius (high) — client exposure if the model is manipulated

Capability observations and info notes are shown under Findings but never scored. Open any row's finding below for the file, line and evidence behind a deduction.

Findings 3

critical Completed toxic-flow trifecta across toolsMTC-FLOW-002

This server (without client built-ins) exposes a complete data-exfiltration chain: transkribus_doc_get_page_ids → transkribus_file_list_files ⇒ transkribus_crowd_post_message. Untrusted input is ingested, private data is read, and it can be sent to an external sink — and at least one leg is a direct schema wire (⇒), where a producer's output drops straight into a free-text parameter of the next tool, so the chain needs little agent cooperation. Static analysis proves the primitive exists, not that a specific run will occur.

Fix: Remove one leg of the trifecta: isolate untrusted-input tools from secret-reading tools and from egress tools, or require human approval between them.

Location: flow transkribus_doc_get_page_ids → transkribus_file_list_files → transkribus_crowd_post_message

low Unconstrained path parameter "path" on "transkribus_file_list_files"MTC-CAP-008

Tool "transkribus_file_list_files" takes a path parameter "path" with no constraint. Without a canonicalize-and-contain check (not visible statically), this permits ../ traversal outside the intended root.

Fix: Resolve and verify the path stays within an allowed root; reject traversal sequences.

Location: tool transkribus_file_list_files · inputSchema.properties.path

low Shell/command execution in packaging/dev tooling (dist/tests/resources-packaging.test.js)MTC-SRC-002

In a packaging/dev/install script (shipped, but not the server runtime) (`dist/tests/resources-packaging.test.js:2`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: { execSync } from 'node:child_process'; import { existsSync, readFileSync, rmSync } from 'node:fs'; import { dirname, re

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/tests/resources-packaging.test.js

Tools 200

Each tool and what it can reach — statically extracted from the published source.

  • transkribus_crowd_post_messagenetwork egress
  • transkribus_doc_get_page_idsingests untrusted input
  • transkribus_doc_get_pagesingests untrusted input
  • transkribus_file_list_filesreads sensitive data
  • transkribus_stat_get_page_statusingests untrusted input
  • transkribus_stat_get_pages_filteredingests untrusted input
  • transkribus_action_countno sensitive capability
  • transkribus_action_infono sensitive capability
  • transkribus_action_listno sensitive capability
  • transkribus_admin_authorize_users_for_jobno sensitive capability
Show 190 more tools ↓
  • transkribus_admin_get_job_logno sensitive capability
  • transkribus_admin_get_job_usersno sensitive capability
  • transkribus_admin_get_reportsno sensitive capability
  • transkribus_admin_list_sessionsno sensitive capability
  • transkribus_admin_move_field_modelno sensitive capability
  • transkribus_admin_move_table_modelno sensitive capability
  • transkribus_admin_rebuild_models_indexno sensitive capability
  • transkribus_auth_check_sessionno sensitive capability
  • transkribus_auth_get_detailsno sensitive capability
  • transkribus_auth_invalidateno sensitive capability
  • transkribus_auth_logoutno sensitive capability
  • transkribus_auth_refreshno sensitive capability
  • transkribus_coll_activity_recognitionno sensitive capability
  • transkribus_coll_activity_savesno sensitive capability
  • transkribus_coll_add_docno sensitive capability
  • transkribus_coll_add_docsno sensitive capability
  • transkribus_coll_add_favoriteno sensitive capability
  • transkribus_coll_can_manageno sensitive capability
  • transkribus_coll_countno sensitive capability
  • transkribus_coll_count_docsno sensitive capability
  • transkribus_coll_count_find_documentsno sensitive capability
  • transkribus_coll_createno sensitive capability
  • transkribus_coll_create_doc_from_ftpno sensitive capability
  • transkribus_coll_create_doc_from_iiifno sensitive capability
  • transkribus_coll_create_doc_from_metsno sensitive capability
  • transkribus_coll_create_doc_from_mets_urlno sensitive capability
  • transkribus_coll_create_doc_from_pdfno sensitive capability
  • transkribus_coll_create_iob_importno sensitive capability
  • transkribus_coll_credit_add_packageno sensitive capability
  • transkribus_coll_credit_historyno sensitive capability
  • transkribus_coll_credit_listno sensitive capability
  • transkribus_coll_credit_remove_packageno sensitive capability
  • transkribus_coll_credit_transactionsno sensitive capability
  • transkribus_coll_deleteno sensitive capability
  • transkribus_coll_delete_emptyno sensitive capability
  • transkribus_coll_duplicateno sensitive capability
  • transkribus_coll_duplicate_docno sensitive capability
  • transkribus_coll_ead_metadata_importno sensitive capability
  • transkribus_coll_exportno sensitive capability
  • transkribus_coll_find_documentsno sensitive capability
  • transkribus_coll_find_documents_oldno sensitive capability
  • transkribus_coll_find_documents_postno sensitive capability
  • transkribus_coll_get_metadatano sensitive capability
  • transkribus_coll_get_recentno sensitive capability
  • transkribus_coll_get_recent_collectionsno sensitive capability
  • transkribus_coll_get_recent_documentsno sensitive capability
  • transkribus_coll_get_tag_defsno sensitive capability
  • transkribus_coll_label_listno sensitive capability
  • transkribus_coll_listno sensitive capability
  • transkribus_coll_list_by_nameno sensitive capability
  • transkribus_coll_list_docsno sensitive capability
  • transkribus_coll_list_docs_xmlno sensitive capability
  • transkribus_coll_list_for_userno sensitive capability
  • transkribus_coll_list_pagedno sensitive capability
  • transkribus_coll_list_xmlno sensitive capability
  • transkribus_coll_modifyno sensitive capability
  • transkribus_coll_remove_docno sensitive capability
  • transkribus_coll_remove_favoriteno sensitive capability
  • transkribus_coll_remove_userno sensitive capability
  • transkribus_coll_subscribe_getno sensitive capability
  • transkribus_coll_update_default_tag_defsno sensitive capability
  • transkribus_coll_update_metadatano sensitive capability
  • transkribus_coll_update_tag_defsno sensitive capability
  • transkribus_coll_upload_docno sensitive capability
  • transkribus_coll_upload_doc_multipartno sensitive capability
  • transkribus_coll_user_addno sensitive capability
  • transkribus_coll_user_add_or_modifyno sensitive capability
  • transkribus_coll_user_countno sensitive capability
  • transkribus_coll_user_get_listno sensitive capability
  • transkribus_coll_user_listno sensitive capability
  • transkribus_coll_user_removeno sensitive capability
  • transkribus_coll_user_statsno sensitive capability
  • transkribus_coll_user_update_roleno sensitive capability
  • transkribus_credit_createno sensitive capability
  • transkribus_credit_getno sensitive capability
  • transkribus_credit_get_collectionsno sensitive capability
  • transkribus_credit_get_costsno sensitive capability
  • transkribus_credit_get_historyno sensitive capability
  • transkribus_credit_get_package_transactionsno sensitive capability
  • transkribus_credit_get_productsno sensitive capability
  • transkribus_credit_get_transactionsno sensitive capability
  • transkribus_credit_handle_orderno sensitive capability
  • transkribus_credit_list_by_userno sensitive capability
  • transkribus_credit_manageno sensitive capability
  • transkribus_credit_updateno sensitive capability
  • transkribus_crowd_delete_messagesno sensitive capability
  • transkribus_crowd_delete_milestonesno sensitive capability
  • transkribus_crowd_get_projectno sensitive capability
  • transkribus_crowd_post_milestoneno sensitive capability
  • transkribus_crowd_post_projectno sensitive capability
  • transkribus_crowdsource_countno sensitive capability
  • transkribus_crowdsource_get_detailsno sensitive capability
  • transkribus_crowdsource_listno sensitive capability
  • transkribus_crowdsource_subscribeno sensitive capability
  • transkribus_crowdsource_unsubscribeno sensitive capability
  • transkribus_doc_deleteno sensitive capability
  • transkribus_doc_exportno sensitive capability
  • transkribus_doc_get_costsno sensitive capability
  • transkribus_doc_get_editorial_declarationno sensitive capability
  • transkribus_doc_get_fulldocno sensitive capability
  • transkribus_doc_get_fulldoc_xmlno sensitive capability
  • transkribus_doc_get_image_namesno sensitive capability
  • transkribus_doc_get_metadatano sensitive capability
  • transkribus_doc_get_metsno sensitive capability
  • transkribus_doc_get_statno sensitive capability
  • transkribus_doc_get_statsno sensitive capability
  • transkribus_doc_get_test_setno sensitive capability
  • transkribus_doc_get_train_datano sensitive capability
  • transkribus_doc_get_transcript_idsno sensitive capability
  • transkribus_doc_get_validation_datano sensitive capability
  • transkribus_doc_has_affiliationno sensitive capability
  • transkribus_doc_kws_searchno sensitive capability
  • transkribus_doc_list_collectionsno sensitive capability
  • transkribus_doc_list_collections_pagedno sensitive capability
  • transkribus_doc_list_pagesno sensitive capability
  • transkribus_doc_move_pages_by_image_namesno sensitive capability
  • transkribus_doc_post_editorial_declarationno sensitive capability
  • transkribus_doc_remove_from_collectionno sensitive capability
  • transkribus_doc_update_metadatano sensitive capability
  • transkribus_doc_update_metadata_v2no sensitive capability
  • transkribus_doc_update_transcriptno sensitive capability
  • transkribus_du_recognizeno sensitive capability
  • transkribus_editdecl_delete_featureno sensitive capability
  • transkribus_editdecl_delete_optionno sensitive capability
  • transkribus_editdecl_list_featuresno sensitive capability
  • transkribus_editdecl_post_featureno sensitive capability
  • transkribus_editdecl_post_optionno sensitive capability
  • transkribus_elearning_countno sensitive capability
  • transkribus_elearning_listno sensitive capability
  • transkribus_elearning_subscribeno sensitive capability
  • transkribus_elearning_unsubscribeno sensitive capability
  • transkribus_file_checkno sensitive capability
  • transkribus_file_list_dirsno sensitive capability
  • transkribus_job_countno sensitive capability
  • transkribus_job_createno sensitive capability
  • transkribus_job_getno sensitive capability
  • transkribus_job_get_credit_transactionsno sensitive capability
  • transkribus_job_get_errorsno sensitive capability
  • transkribus_job_killno sensitive capability
  • transkribus_job_listno sensitive capability
  • transkribus_job_restart_all_by_userno sensitive capability
  • transkribus_job_undono sensitive capability
  • transkribus_job_updateno sensitive capability
  • transkribus_kws_create_queryno sensitive capability
  • transkribus_kws_get_hitsno sensitive capability
  • transkribus_kws_get_keywordsno sensitive capability
  • transkribus_kws_get_result_datano sensitive capability
  • transkribus_kws_list_queriesno sensitive capability
  • transkribus_la_analyzeno sensitive capability
  • transkribus_la_analyze_advancedno sensitive capability
  • transkribus_la_get_costsno sensitive capability
  • transkribus_la_la2_inferenceno sensitive capability
  • transkribus_label_assign_documentsno sensitive capability
  • transkribus_label_assign_pagesno sensitive capability
  • transkribus_label_createno sensitive capability
  • transkribus_label_deleteno sensitive capability
  • transkribus_label_getno sensitive capability
  • transkribus_label_listno sensitive capability
  • transkribus_label_remove_all_documentsno sensitive capability
  • transkribus_label_remove_all_pagesno sensitive capability
  • transkribus_label_remove_documentsno sensitive capability
  • transkribus_label_remove_pagesno sensitive capability
  • transkribus_label_replace_document_assignmentsno sensitive capability
  • transkribus_label_replace_page_assignmentsno sensitive capability
  • transkribus_label_updateno sensitive capability
  • transkribus_page_addno sensitive capability
  • transkribus_page_assign_plaintextno sensitive capability
  • transkribus_page_count_transcriptsno sensitive capability
  • transkribus_page_deleteno sensitive capability
  • transkribus_page_delete_transcriptno sensitive capability
  • transkribus_page_getno sensitive capability
  • transkribus_page_get_curr_transcriptno sensitive capability
  • transkribus_page_get_metadatano sensitive capability
  • transkribus_page_get_plaintextno sensitive capability
  • transkribus_page_get_textno sensitive capability
  • transkribus_page_get_transcriptno sensitive capability
  • transkribus_page_is_lockedno sensitive capability
  • transkribus_page_list_locksno sensitive capability
  • transkribus_page_list_transcriptsno sensitive capability
  • transkribus_page_lockno sensitive capability
  • transkribus_page_moveno sensitive capability
  • transkribus_page_post_transcriptno sensitive capability
  • transkribus_page_replaceno sensitive capability
  • transkribus_page_update_hide_on_sitesno sensitive capability
  • transkribus_page_update_status_v2no sensitive capability
  • transkribus_page_update_transcript_statusno sensitive capability
  • transkribus_stat_get_collno sensitive capability
  • transkribus_stat_get_coll_statsno sensitive capability
  • transkribus_stat_get_storage_usageno sensitive capability
  • transkribus_stat_update_page_statusno sensitive capability

Toxic flows 1

Cross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).

What this scan could not see

Versions 2

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v3.1.0 latest A 94/100 3 1.13.0 2026-09-07
v3.0.0 A 94/100 3 1.12.1 2026-08-20

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: A · 94/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/lazyants-transkribus-mcp-server/badge.svg)](https://mcptrustchecker.com/registry/lazyants-transkribus-mcp-server)
HTML
<a href="https://mcptrustchecker.com/registry/lazyants-transkribus-mcp-server"><img src="https://mcptrustchecker.com/registry/lazyants-transkribus-mcp-server/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/lazyants-transkribus-mcp-server/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan @lazyants/transkribus-mcp-server --online

Use the free API → How scoring works

More in AI & Agents