Voog MCP Server

voog-mcp PyPI v1.5.0

Published by runnel — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.

CLI and MCP server for Voog CMS — Liquid templates, pages, products, ecommerce

Trust grade
A
95/100
Last scanned get badge →
Trust
A · 95/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
Moderate
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 99 − adoption risk = 95/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 − 1.2 = 99. What the published surface and source actually contain:

PointsWhat was foundCategory
−1.2 Hardcoded AWS access key id in test/example/packaging MTC-SRC-008 exfiltration

2. Client adoption risk — 99 − 4 = 95. 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
−3 capability blast radius (moderate) — client exposure if the model is manipulated
−1 publisher verification (public source) — no provenance, but the source is public and inspectable

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 5

medium Unconstrained URL/host parameter "url" on "webhook_create"MTC-CAP-007

Tool "webhook_create" takes a URL/host parameter "url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).

Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.

Location: tool webhook_create · inputSchema.properties.url

medium Unconstrained URL/host parameter "url" on "webhook_update"MTC-CAP-007

Tool "webhook_update" takes a URL/host parameter "url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).

Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.

Location: tool webhook_update · inputSchema.properties.url

low Hardcoded AWS access key id in test/example/packaging (tests/test_upload_validation.py)MTC-SRC-008

A hardcoded AWS access key id (a live-looking credential hardcoded in shipped code) appears in `tests/test_upload_validation.py:113`. Verify whether this is a real credential; if so, remove and rotate it.

Evidence: AWS access key id: AKIA…(redacted)

Fix: Remove the secret, rotate it, and load credentials from the environment or a secret store.

Location: server tests/test_upload_validation.py

low Shell/command execution in packaging/dev tooling (tests/test_cli_main.py)MTC-SRC-002

In a packaging/dev/install script (shipped, but not the server runtime) (`tests/test_cli_main.py:251`): 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: and. return subprocess.run( [sys.executable, "-m", "voog", "--config", str(cfg), *argv],

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 tests/test_cli_main.py

low Shell/command execution in packaging/dev tooling (tests/test_mcp_integration.py)MTC-SRC-002

In a packaging/dev/install script (shipped, but not the server runtime) (`tests/test_mcp_integration.py:59`): 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: } proc = subprocess.Popen( [str(VOOG_MCP_BIN)], stdin=subprocess.PIPE,

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 tests/test_mcp_integration.py

Tools 111

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

  • webhook_createnetwork egress
  • webhook_deletenetwork egress
  • webhook_updatenetwork egress
  • article_add_contentno sensitive capability
  • article_createno sensitive capability
  • article_deleteno sensitive capability
  • article_delete_datano sensitive capability
  • article_getno sensitive capability
  • article_publishno sensitive capability
  • article_set_datano sensitive capability
Show 101 more tools ↓
  • article_updateno sensitive capability
  • articles_listno sensitive capability
  • asset_replaceno sensitive capability
  • asset_uploadno sensitive capability
  • cart_rule_createno sensitive capability
  • cart_rule_deleteno sensitive capability
  • cart_rule_getno sensitive capability
  • cart_rule_updateno sensitive capability
  • cart_rules_listno sensitive capability
  • categories_listno sensitive capability
  • category_createno sensitive capability
  • category_deleteno sensitive capability
  • category_getno sensitive capability
  • category_updateno sensitive capability
  • comment_deleteno sensitive capability
  • comment_toggle_spamno sensitive capability
  • comments_listno sensitive capability
  • content_partial_updateno sensitive capability
  • discount_createno sensitive capability
  • discount_deleteno sensitive capability
  • discount_getno sensitive capability
  • discount_updateno sensitive capability
  • discounts_listno sensitive capability
  • ecommerce_settings_getno sensitive capability
  • ecommerce_settings_updateno sensitive capability
  • element_createno sensitive capability
  • element_definitions_listno sensitive capability
  • element_deleteno sensitive capability
  • element_getno sensitive capability
  • element_moveno sensitive capability
  • element_updateno sensitive capability
  • elements_listno sensitive capability
  • gateways_listno sensitive capability
  • language_createno sensitive capability
  • language_deleteno sensitive capability
  • languages_listno sensitive capability
  • layout_asset_createno sensitive capability
  • layout_asset_deleteno sensitive capability
  • layout_asset_updateno sensitive capability
  • layout_asset_uploadno sensitive capability
  • layout_createno sensitive capability
  • layout_deleteno sensitive capability
  • layout_renameno sensitive capability
  • layout_updateno sensitive capability
  • layouts_pullno sensitive capability
  • layouts_pushno sensitive capability
  • media_set_getno sensitive capability
  • media_set_set_assetsno sensitive capability
  • media_set_update_asset_titlesno sensitive capability
  • node_getno sensitive capability
  • node_moveno sensitive capability
  • node_relocateno sensitive capability
  • node_updateno sensitive capability
  • nodes_listno sensitive capability
  • order_getno sensitive capability
  • orders_listno sensitive capability
  • page_add_contentno sensitive capability
  • page_createno sensitive capability
  • page_deleteno sensitive capability
  • page_delete_datano sensitive capability
  • page_duplicateno sensitive capability
  • page_getno sensitive capability
  • page_set_datano sensitive capability
  • page_set_hiddenno sensitive capability
  • page_set_layoutno sensitive capability
  • page_updateno sensitive capability
  • pages_listno sensitive capability
  • pages_snapshotno sensitive capability
  • product_createno sensitive capability
  • product_deleteno sensitive capability
  • product_duplicateno sensitive capability
  • product_getno sensitive capability
  • product_set_imagesno sensitive capability
  • product_updateno sensitive capability
  • products_bulk_actionno sensitive capability
  • products_listno sensitive capability
  • redirect_addno sensitive capability
  • redirect_deleteno sensitive capability
  • redirect_updateno sensitive capability
  • redirects_listno sensitive capability
  • shipping_methods_listno sensitive capability
  • site_cloneno sensitive capability
  • site_delete_datano sensitive capability
  • site_getno sensitive capability
  • site_set_datano sensitive capability
  • site_snapshotno sensitive capability
  • site_updateno sensitive capability
  • tag_deleteno sensitive capability
  • tag_getno sensitive capability
  • tags_listno sensitive capability
  • text_getno sensitive capability
  • text_updateno sensitive capability
  • voog_admin_api_callno sensitive capability
  • voog_admin_api_readno sensitive capability
  • voog_ecommerce_api_callno sensitive capability
  • voog_ecommerce_api_readno sensitive capability
  • voog_list_my_sitesno sensitive capability
  • voog_list_sitesno sensitive capability
  • voog_reload_configno sensitive capability
  • voog_searchno sensitive capability
  • webhooks_listno sensitive capability

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
v1.5.0 latest A 95/100 5 1.13.0 2026-08-25
v1.4.1 A 96/100 3 1.12.1 2026-07-27

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 · 95/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/voog-mcp/badge.svg)](https://mcptrustchecker.com/registry/voog-mcp)
HTML
<a href="https://mcptrustchecker.com/registry/voog-mcp"><img src="https://mcptrustchecker.com/registry/voog-mcp/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/voog-mcp/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 voog-mcp --online --registry pypi

Use the free API → How scoring works

More in Developer Tools