MCP server · trust report
app.railway.up.engine-production-3bdc/vhgengine
2 checks that ran failed — credential hygiene and transport config — so this release can’t be trusted as-is.
- Publisher
- app.railway.up.engine-production-3bdc
- Repository
- —
- Install
- remote only
- Versions
- 4
- MCP revision
- 2025-11-25 · superseded
- Inspected
- 5 of 6 checks · 85%
- Scored
- 2026-09-04 · rubric 1.0.0
What we checked
Six static checks, weighted by risk. Every result reflects only what could be observed in the published package and repository — never intent.
Injection surface
warn25% of gradeTool descriptions/manifest scanned for instruction-injection patterns (imperatives at the model, hidden text, 'ignore previous', data-exfil URLs).
server instructions: cross-tool redirection ('instead of call…').
Supply chain
warn25% of gradePackage provenance: namespace verification, repo linkage, maintainer count, account age, postinstall scripts, typosquat distance.
no resolvable repository linked to the package (provenance unverifiable)
Credential hygiene
fail15% of gradeHow the server takes secrets (env vs plaintext config vs hardcoded); secrets appearing in tool schemas.
tool "get_account" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "get_usage" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "export_usage" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_runs" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "quote" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "add_credits" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_billing_events" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "create_checkout" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "create_creator_profile" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_creator_profiles" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "get_creator_profile" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "update_creator_profile" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "delete_creator_profile" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "create_key" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_keys" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "revoke_key" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "delete_account" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "research_hook_evidence" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "synthesize_hooks" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "generate_hooks" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "generate_hooks_batch" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "score_hook" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "score_hooks_batch" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "remix_hook" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_hooks" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "get_hook" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_outcomes" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "report_outcome" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "start_generate_job" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "get_job" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "wait_for_job" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "cancel_job" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_jobs" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "set_webhook" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "get_webhook" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "delete_webhook" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "list_webhook_deliveries" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "redrive_webhook_delivery" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential). tool "get_activity" has a secret-shaped input parameter "api_key" — secrets must never be tool parameters (the model would supply/handle the credential).
Permission scope
unscannable15% of gradeDeclared tools vs. breadth (filesystem, network, exec); flags shell-exec and unbounded filesystem access.
No source files, package.json, or pyproject were fetched; cannot infer capability scope.
Version behavior
warn10% of gradeDiff of tool definitions between versions; new permissions or changed descriptions in a patch release (the postmark-mcp class).
vs prior 2.2.0 (minor bump): tool "signup" description changed (wording only, no injection pattern); tool "signup" gained input property(ies): beta_access_code; tool "pricing" description changed (wording only, no injection pattern); tool "health" description changed (wording only, no injection pattern); tool "get_account" description changed (wording only, no injection pattern); tool "get_usage" description changed (wording only, no injection pattern); tool "get_usage" gained input property(ies): offset; tool "add_credits" description changed (wording only, no injection pattern); tool "create_checkout" description changed (wording only, no injection pattern); tool "create_checkout" gained input property(ies): idempotency_key; tool "delete_account" description changed (wording only, no injection pattern); tool "generate_hooks" description changed (wording only, no injection pattern); tool "generate_hooks" gained input property(ies): creator, audience, stance, first_person_facts, creator_profile_id, creator_profile_version, clarify, language, desired_viewer_action, desired_audience_feeling, requested_market, requested_dialect, requested_content_format, delivery_constraints, hook_length_constraints, footage_constraints, caller_confirmed_constraints; tool "generate_hooks_batch" description changed (wording only, no injection pattern); tool "generate_hooks_batch" gained input property(ies): creator, audience, stance, first_person_facts, creator_profile_id, creator_profile_version, clarify, language, desired_viewer_action, desired_audience_feeling, requested_market, requested_dialect, requested_content_format, delivery_constraints, hook_length_constraints, footage_constraints, caller_confirmed_constraints; tool "score_hook" description changed (wording only, no injection pattern); tool "score_hook" gained input property(ies): topic; tool "score_hooks_batch" description changed (wording only, no injection pattern); tool "score_hooks_batch" gained input property(ies): topic; tool "remix_hook" description changed (wording only, no injection pattern); tool "remix_hook" gained input property(ies): hook_id, archetype, platform, topic; tool "list_hooks" description changed (wording only, no injection pattern); tool "list_hooks" gained input property(ies): request_id; tool "list_outcomes" description changed (wording only, no injection pattern); tool "report_outcome" description changed (wording only, no injection pattern); tool "start_generate_job" description changed (wording only, no injection pattern); tool "start_generate_job" gained input property(ies): creator, audience, stance, first_person_facts, creator_profile_id, creator_profile_version, clarify, language, desired_viewer_action, desired_audience_feeling, requested_market, requested_dialect, requested_content_format, delivery_constraints, hook_length_constraints, footage_constraints, caller_confirmed_constraints; tool "set_webhook" description changed (wording only, no injection pattern); new tool "export_usage" touches a sensitive surface (email/exec/net/fs); new tool "list_runs" touches a sensitive surface (email/exec/net/fs); new tool "quote" touches a sensitive surface (email/exec/net/fs); new tool "list_billing_events" appeared; new tool "create_creator_profile" touches a sensitive surface (email/exec/net/fs); new tool "list_creator_profiles" touches a sensitive surface (email/exec/net/fs); new tool "get_creator_profile" touches a sensitive surface (email/exec/net/fs); new tool "update_creator_profile" touches a sensitive surface (email/exec/net/fs); new tool "delete_creator_profile" touches a sensitive surface (email/exec/net/fs); new tool "research_hook_evidence" appeared; new tool "synthesize_hooks" touches a sensitive surface (email/exec/net/fs); new tool "wait_for_job" appeared; new tool "cancel_job" touches a sensitive surface (email/exec/net/fs).
Transport config
fail10% of gradeRemote servers: TLS and auth mode (none/token/OAuth). Local servers: whether the manifest indicates it phones home.
remote MCP endpoint declares NO authentication (unauthenticated remote — nginx-ui/CVE-2026-33032 class)
Version history
Each release plotted by grade against the safe line at B. A version that sinks below the line has lost its trusted standing — the shape of a rug-pull.
| Version | Published | Grade | Score | Inspected | Change |
|---|---|---|---|---|---|
| v2.3.0 · current | 2026-07-22 | D | 45 | 5/6 · 85% | C→D in v2.3.0 |
| v2.2.0 | 2026-07-22 | C | 62.5 | 4/6 · 75% | D→C in v2.2.0 |
| v2.1.0 | 2026-07-20 | D | 57.5 | 5/6 · 85% | insf→D in v2.1.0 |
| v2.0.0 | 2026-07-18 | insufficient | — | 1/6 · 25% | — |