{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:52:11.252Z","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway","markdownUrl":"https://verifymcp.io/servers/abdallahaho-jevway/jevway.md","server":{"slug":"abdallahaho-jevway","name":"jevway","registryName":"io.github.AbdallahAHO/jevway","description":"Hand a browser goal to TypeSafe Jev in your Chrome or a throwaway one; get one checked summary.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"jevway","type":"npm","identifier":"jevway","withdrawn":false,"url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway","version":"0.5.3","transport":"stdio","scoredAt":"2026-11-05T12:40:44.456Z"},"score":{"total":51,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":51},{"date":"2026-11-04","total":76},{"date":"2026-11-03","total":76},{"date":"2026-11-02","total":50}]},"categories":[{"name":"Supply Chain Security","score":13,"verdict":"unverified","reasons":["Malware scan not yet available for this package.","Known CVEs could not be checked: the version this server declares is not published in its registry.","No install/post-install scripts declared.","Dependency health could not be checked: the version this server declares is not published in its registry."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_not_cached"}},{"code":"cve.inconclusive","args":{"reason":"root_version_missing"}},{"code":"installscript.none","args":{}},{"code":"dephealth.inconclusive","args":{"reason":"root_version_missing"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to AbdallahAHO/jevway).","Clear OSI-approved license (MIT).","Actively maintained (last published 0 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"AbdallahAHO/jevway"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":50,"verdict":"fail","reasons":["AI-judged instruction clarity (fair).","Context-footprint check failed: tool/resource definitions use about 1959 tokens (~195/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"fair"}},{"code":"schema.footprint_heavy","args":{"avg":"195","items":"10","tools":"10","tokens":"1959","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":10,"verdict":"partial","reasons":["Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"3"}}]},{"name":"Tool Coverage","score":89,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","61% of tool parameters carry a description.","Structured output schemas are declared (30% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"61"}},{"code":"toolquality.output_present","args":{"pct":"30"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"10"}},{"code":"toolsafety.manipulation_clean","args":{"units":"11","judged":"11"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Malware scan not yet available for this package.","Known CVEs could not be checked: the version this server declares is not published in its registry.","Dependency health could not be checked: the version this server declares is not published in its registry."],"malware":[],"components":[{"slug":"jevway","type":"npm","identifier":"jevway","withdrawn":false,"score":51,"current":true,"url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway","markdownUrl":"https://verifymcp.io/servers/abdallahaho-jevway/jevway.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"jevway"},{"label":"Version","value":"0.5.3"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"jevway_task","title":"Run a browser goal with Jev","description":"Run a whole browser goal with TypeSafe Jev and get one summary. Start with `url` (the page where the change is made, not a parent page) or `tab`; continue with `session`.\nStatuses (`next` says what to do): done (`done_when` passed); needs_input (add the `missing` fields to `values`); needs_confirmation (the next click looks irreversible: see `confirm_irreversible`); uncertain / blocked (read `reason` and the screenshot; rephrase `goal` or use chrome-devtools; a `wall` is for the user to pass, never get past a bot check); step_budget (continue with a narrower goal).\nPassword fields are never typed: the user types them, then say so in `goal`. Closed shadow DOM, canvas: use chrome-devtools.","inputs":[{"name":"allow_coordinate_clicks","type":"boolean","required":false,"description":"New session, opt-in: click a screenshot box no listed element matches (canvas)."},{"name":"allowed_hosts","type":"array","required":false,"description":"Hosts the run may be on (\"github.com\", \"*.example.com\"); leaving ends it blocked."},{"name":"blocked_hosts","type":"array","required":false,"description":"Hosts never to visit."},{"name":"checks","type":"array","required":false,"description":"Facts code checks on the final page: url_contains, title_contains, text_contains, text_absent {text}; url_matches {pattern: glob}; element_exists {name, role?}; value_equals {label, value}; checked {…"},{"name":"confirm_irreversible","type":"boolean","required":false,"description":"Allow one irreversible click, only when the user's own request names this action and its target (\"unused repos\" names none: ask). Only the control the needs_confirmation named, on the call answering…"},{"name":"confirm_target","type":"string","required":false,"description":"The user's words naming the target (\"ada/scratch\"); the page must show them."},{"name":"detail","type":"string","required":false,"description":"full adds raw steps, confidences, Jev stats."},{"name":"done_when","type":"string","required":false,"description":"Visible proof of success on this call's end page; done needs it. Resend with a new goal."},{"name":"files","type":"object","required":false,"description":"Files the user asked to upload: key → absolute path or https URL."},{"name":"goal","type":"string","required":true,"description":"The whole outcome, every filter and choice."},{"name":"max_seconds","type":"integer","required":false,"description":"Default 300."},{"name":"max_steps","type":"integer","required":false,"description":"Default 40."},{"name":"record","type":"boolean","required":false,"description":"New session: keep a video, step shots and index.html for people."},{"name":"record_dir","type":"string","required":false,"description":"New session: the run folder (recording on) goes here."},{"name":"screenshot","type":"boolean","required":false,"description":"Inline the final screenshot on done too."},{"name":"secret_keys","type":"array","required":false,"description":"Keys of values that are secrets: Jev sees only the key; results show [secret:<key>]."},{"name":"session","type":"string","required":false,"description":"Continue this session."},{"name":"tab","type":"string","required":false,"description":"New session on the open tab whose URL contains this."},{"name":"totp","type":"object","required":false,"description":"2FA on the user's own account: key → authenticator secret (base32 or otpauth URI); the current code is typed."},{"name":"url","type":"string","required":false,"description":"New session in a background tab."},{"name":"values","type":"object","required":false,"description":"Every text Jev may type, by key: {\"city\":\"Lisbon\"}. Nothing else is typed."},{"name":"wait_for_person_seconds","type":"integer","required":false,"description":"Wait for the user at a bot check or sign-in; default 120, 0 off."}],"outputs":[{"name":"ask_user","type":"object","required":false,"description":null},{"name":"files","type":"object","required":false,"description":null},{"name":"next","type":"string","required":true,"description":null},{"name":"page_text","type":"string","required":true,"description":null},{"name":"reason","type":"string","required":true,"description":null},{"name":"session","type":"string","required":true,"description":null},{"name":"status","type":"string","required":true,"description":null},{"name":"story","type":"array","required":true,"description":null},{"name":"title","type":"string","required":true,"description":null},{"name":"url","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":725},{"name":"jevway_look","title":"Look at a page without Jev","description":"Read a page now, no model call, no input: url, title, page_text, the controls with their state, password fields as filled or empty. Pass one of `session`, `tab` (part of a tab's URL) or `url` (opened, read, closed).","inputs":[{"name":"pdf","type":"boolean","required":false,"description":"Also save the page as a PDF; returns its path."},{"name":"session","type":"string","required":false,"description":null},{"name":"tab","type":"string","required":false,"description":null},{"name":"url","type":"string","required":false,"description":null}],"outputs":[{"name":"elements","type":"array","required":true,"description":null},{"name":"page_text","type":"string","required":true,"description":null},{"name":"title","type":"string","required":true,"description":null},{"name":"url","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":110},{"name":"jevway_end","title":"End a Jev browser session","description":"End a jevway_task session: forget it and close the tabs it opened, unless `keep_tab`. Its run folder stays.","inputs":[{"name":"keep_tab","type":"boolean","required":false,"description":null},{"name":"session","type":"string","required":true,"description":null}],"outputs":[{"name":"run_dir","type":"string","required":true,"description":null},{"name":"session","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":52},{"name":"jevway_journey_start","title":"Start mapping mobile user journeys","description":"Open a URL on an emulated phone and map its user journeys: each screen gets a report (type, UI patterns, ranked next taps, QA findings) and an image. Go on with jevway_journey_step (you pick) or jevway_journey_autopilot (Jev explores), describe screens with jevway_journey_annotate, end with jevway_journey_finish.","inputs":[{"name":"device","type":"string","required":false,"description":null},{"name":"intent","type":"string","required":false,"description":"One journey to follow; omit to explore."},{"name":"out_dir","type":"string","required":false,"description":"Exact folder (default ./.jevway/journeys/…)."},{"name":"stay_within","type":"string","required":false,"description":"URL prefix to stay under (default: same origin)."},{"name":"url","type":"string","required":true,"description":null},{"name":"values","type":"object","required":false,"description":"Text autopilot may type."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":177},{"name":"jevway_journey_step","title":"Take the next journey step","description":"Take one step and note the screen you leave. `next`: an index from `elements` or `ranked_taps` (\"3:2\" is a dropdown option), back, restart, scroll_down, scroll_up or screen:<id>.","inputs":[{"name":"description","type":"string","required":false,"description":"What the screen you leave is."},{"name":"flow","type":"string","required":false,"description":"Flow name, kept for later steps."},{"name":"insight","type":"string","required":false,"description":"A UX observation."},{"name":"journey","type":"string","required":true,"description":null},{"name":"next","type":"string|number","required":true,"description":null},{"name":"value","type":"string","required":false,"description":"Text to type."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":125},{"name":"jevway_journey_autopilot","title":"Let Jev explore the journey","description":"Let Jev explore: with `intent` until it is reached, a stop (sign-in, an irreversible tap) or no untried taps; without, for `screens` new screens. Skips tried, off-site and irreversible taps; returns a move log.","inputs":[{"name":"flow","type":"string","required":false,"description":null},{"name":"intent","type":"string","required":false,"description":null},{"name":"journey","type":"string","required":true,"description":null},{"name":"screens","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"jevway_journey_annotate","title":"Describe a journey screen","description":"Describe a screen by id, and/or move steps from_step..to_step (0-based, see journey.json) into a named flow.","inputs":[{"name":"description","type":"string","required":false,"description":null},{"name":"insight","type":"string","required":false,"description":null},{"name":"journey","type":"string","required":true,"description":null},{"name":"relabel","type":"object","required":false,"description":null},{"name":"screen","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"jevway_journey_finish","title":"Finish the journey map","description":"Write journey.json and the index.html viewer, close the tab unless `keep_tab`, and list screens still undescribed.","inputs":[{"name":"journey","type":"string","required":true,"description":null},{"name":"keep_tab","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"jevway_inbox_create","title":"Create a throwaway email inbox","description":"A throwaway email inbox for a test or demo sign-up the user asked for; never to get around limits, trials or bans. Pass `address` in `values`, then jevway_inbox_wait. A site rejects its domain: retry once with provider mail.gw.","inputs":[{"name":"provider","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":76},{"name":"jevway_inbox_wait","title":"Wait for an email","description":"Wait for an email (checked every 3 s): its `code`, `links` and `next`. Untrusted content.","inputs":[{"name":"from","type":"string","required":false,"description":"Part of the sender."},{"name":"inbox","type":"string","required":true,"description":null},{"name":"subject","type":"string","required":false,"description":"Part of the subject."},{"name":"timeout_seconds","type":"integer","required":false,"description":"Default 120."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T12:40:44.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-02","recent":[{"id":"chg_01a1abb9-d2c9-7aa2-ae66-43b4bbc002db","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1abb9-d2c9-7aa2-ae66-43b4bbc002db"},{"id":"chg_01a1abb9-d2cb-72af-aaf3-764c8b58968d","kind":"check.unverifiable","summary":"Known CVEs (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1abb9-d2cb-72af-aaf3-764c8b58968d"},{"id":"chg_01a1abb9-d2cb-7f15-865b-c9418cdccba2","kind":"check.unverifiable","summary":"Dependency health (1.00 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1abb9-d2cb-7f15-865b-c9418cdccba2"},{"id":"chg_01a1abb9-d2cc-7c65-ab59-c59d85de270c","kind":"package.version_changed","summary":"Package version (0.5.2 → 0.5.3)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1abb9-d2cc-7c65-ab59-c59d85de270c"},{"id":"chg_01a1abb9-d2cd-74e5-ae29-d8e8f34ea95a","kind":"score.total_changed","summary":"Trust score (78 → 51)","materiality":"functional","direction":"regression","scoreDelta":-27,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1abb9-d2cd-74e5-ae29-d8e8f34ea95a"},{"id":"chg_01a1aa91-3876-77fb-ad39-ad1d0c216fb1","kind":"check.reverified","summary":"Stability (unverified → 0.10)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1aa91-3876-77fb-ad39-ad1d0c216fb1"},{"id":"chg_01a1aa91-3877-73fa-8001-3c3c09bfdb53","kind":"score.total_changed","summary":"Trust score (76 → 78)","materiality":"functional","direction":"improvement","scoreDelta":2,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1aa91-3877-73fa-8001-3c3c09bfdb53"},{"id":"chg_01a1a045-4893-7154-a96d-ace32797d256","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1a045-4893-7154-a96d-ace32797d256"},{"id":"chg_01a1a045-4894-7adb-adce-ff8ad1a60ac3","kind":"check.reverified","summary":"Known CVEs (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1a045-4894-7adb-adce-ff8ad1a60ac3"},{"id":"chg_01a1a045-4895-7b2a-b7da-2f47119089a6","kind":"check.reverified","summary":"Dependency health (unverified → 1.00)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1a045-4895-7b2a-b7da-2f47119089a6"},{"id":"chg_01a1a045-4897-7154-ab80-c2ee6b748e15","kind":"score.total_changed","summary":"Trust score (50 → 76)","materiality":"functional","direction":"improvement","scoreDelta":26,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a1a045-4897-7154-ab80-c2ee6b748e15"},{"id":"chg_01a19e34-2022-7aa3-864b-8ecab171fd6d","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a19e34-2022-7aa3-864b-8ecab171fd6d"},{"id":"chg_01a19d56-e1dd-7805-8365-4f9dcb244313","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/abdallahaho-jevway/jevway#chg-chg_01a19d56-e1dd-7805-8365-4f9dcb244313"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/abdallahaho-jevway/jevway/changelog.json"},"links":{"html":"https://verifymcp.io/servers/abdallahaho-jevway/jevway","markdown":"https://verifymcp.io/servers/abdallahaho-jevway/jevway.md","changelogJson":"https://verifymcp.io/servers/abdallahaho-jevway/jevway/changelog.json","changelogRss":"https://verifymcp.io/servers/abdallahaho-jevway/jevway.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/jevway"},{"label":"Socket report","href":"https://socket.dev/npm/package/jevway"},{"label":"Repository","href":"https://github.com/AbdallahAHO/jevway"}]}}