Skip to main content
Glama

English | 한국어


Aside Jev connects the Aside REPL with TypeSafe Jev. A toolbar toggle, a persistent REPL session, and bounded action selection work together in one browser workflow.

Current release: 0.2.0 ON applies to new task instructions and the extension-specific MCP for the selected Aside account. jev_browser_run delegates action selection to Jev. The extension does not intercept all built-in Aside tools.

What’s new in 0.2.0

  • Icon-based popover with an animated connection control, on-demand diagnostics/settings, accessible labels, and reduced-motion support.

  • ON verifies the local MCP launcher, live Jev authentication, and the active Aside connection before unlocking extension MCP execution. Verification expires after one hour and is invalidated by settings/key changes or OFF.

  • macOS API keys are entered in a dedicated masked window and stored in Keychain. Windows retains its documented local credential path.

  • IP-based English/Korean tooltips and manual language override.

  • Bounded browser execution with fresh observations, completion/risk assessment, confidence checks, and stop-on-error behavior.

  • Guided Windows/macOS installation, localized documentation, and reproducible local transport benchmarks.

Release 0.2.0 · Download source and installers

The ZIP contains source and installation scripts, not a signed/notarized macOS app or a store-signed extension. See the installation guide. Windows CI covers isolated installation; real Windows browser integration remains unverified.

Related MCP server: jev-mcp

Same Jev. Two strategies. One race.

New SDK client per request vs connection reuse. Watch both lanes on the same time scale, then compare p50, p95, and TCP connections.

What this measures: both methods use the same Jev SDK in a localhost transport benchmark. Actual browser task speed with the default Aside model versus Jev has not been measured. This animation expands measured p50 values; it is not a screen recording. Method and limitations

The dashboard defaults to English. The extension uses Auto (IP): Korea selects Korean, other countries select English, with browser-language fallback when the lookup fails. You can override the language; the extension does not store your IP address. Localization guide

Small candidate sets. Clear execution.

Bounded decisions

Grounded actions

Visible state

Compact the relevant observation and send only allowed candidates to Jev.

Use targets observed on the current page and check again before execution.

Inspect ON/OFF, connectivity, confidence, and timing.

The model does not invent code, selectors, or input values.

Stop on repetition, no progress, or stale observations.

Errors never silently switch to another model.

See the decision

Keep the goal and candidates in the main workspace, with longer observations and model settings in a separate panel. Results show candidate probabilities, decision time, round-trip time, and the latest 20 records from the current session.

One connection. A continuous decision loop.

flowchart LR
    A["Aside REPL<br/>Observe current page"] --> B["Compact context<br/>Build allowed candidates"]
    B --> C["Jev<br/>Choose a candidate ID"]
    C --> D{"Check confidence<br/>and current state"}
    D -->|Allowed| E["Aside<br/>Execute selected action"]
    E --> A
    D -->|Completion verified| F["Complete"]
    D -->|Stop condition| G["Stop · Resume manually"]
    classDef surface fill:#F4F5EE,stroke:#9AA991,color:#193326
    classDef decision fill:#203D2F,stroke:#203D2F,color:#F4F5EE
    classDef result fill:#DCE8C8,stroke:#A9BC8D,color:#193326
    class A,B,E surface
    class C,D decision
    class F,G result

One Aside MCP/REPL session stays open throughout a task. Refresh observations and candidates when the page changes, and execute only the valid candidate selected by Jev. Completion text and an optional URL condition are checked locally; the page is checked again after Jev selects finish.

Condition

Behavior

Repeated page/action or a page cycle

Stop the loop

No observable change after execution

Stop with no_progress

Page changes after the decision

Do not execute stale candidates

Low confidence, unknown ID, or Jev error

Stop without an automatic fallback

Step or time budget exhausted

Return state for manual resumption

OFF or a higher confidence threshold during selection

Recheck policy before execution

Install in a few steps

Windows and macOS · no Git, Python, or uv setup required. Install and sign in to Aside first.

  1. Download ZIP and extract it.

  2. Run Install.cmd on Windows or Install.command on macOS. Choose your Aside account and enter your Jev key when prompted. Review the changes and confirm.

  3. Reopen Aside → Extensions → Developer mode → Load unpacked, select the folder printed by setup, pin Aside Jev, and turn ON. Start a new task.

The installer prepares a private Python environment, copies the extension to a stable folder, and adds the Jev MCP connection while preserving your other settings. The extension ID is fixed across computers. Quit Aside before confirming setup so it cannot overwrite the account settings during installation.

Windows Native Messaging needs the registration key used by your Aside build. Setup proposes an existing Aside NativeMessagingHosts location when found; otherwise it asks for a verified key. We have not verified that final browser connection on a Windows PC. Windows details and troubleshooting →

If macOS does not open the downloaded .command, run bash scripts/install.sh in the extracted folder. Do not disable OS security checks. English is the default; use .\Install.cmd --lang ko or bash scripts/install.sh --lang ko for Korean prompts.

Installation details, update & removal →

uv sync
uv run aside-jev setup --dry-run
uv run aside-jev dashboard --open

The local demo uses http://127.0.0.1:8766. Add --port 0 for an available port. Existing Python/uv users can run uv run aside-jev setup for guided connection setup.

On macOS, setup stores the API key in macOS Keychain, not in a plaintext file. Hidden terminal input and --env-file imports are supported; Windows retains its local environment-file storage. On macOS, the popup’s key icon opens a masked entry window; saved keys are never returned. Key presence is not authentication proof. See Keychain migration, rotation, and deletion.

Start the general decision tools over stdio:

uv run aside-jev serve

To enforce the popup's ON/OFF state and Live-only policy, use the installed wrapper or the following command after configuring the extension connection:

uv run aside-jev serve --extension

./scripts/install.sh only installs the Python package. Account instructions, Native Messaging, and MCP registration are part of the separate installation process.

Find the targetId of an already-open Aside tab and pass it to jev_browser_run:

{
  "goal": "Follow Continue until the Journey complete page",
  "target_id": "targetId-of-the-current-Aside-tab",
  "action_rules": [
    {"role": "link", "name": "Continue", "action": "click"}
  ],
  "completion_text": "Journey complete",
  "max_steps": 12,
  "total_timeout_s": 90,
  "min_confidence": 0.7
}
  • Supported actions: click, focus, fill. fill uses only the specified value.

  • Rules: provide exact accessible names within the user's authorized scope. Missing or ambiguous targets stop execution.

  • Completion: use distinctive completion_text. Add completion_url to require an exact URL match.

  • Default budget: 12 steps and 90 seconds total. Actions requiring separate approval must be approved before being added as candidates.

Reuse connections. Reduce overhead.

Reuse the SDK client and HTTP connection, and process MCP decision requests outside the event loop. Automatic retries are disabled; requests and tasks have explicit limits.

Local SDK transport benchmark · 30 requests per method · 2026-09-20

Metric

New client per request

Connection reuse

p50

1.157ms

0.540ms

p95

1.695ms

0.747ms

TCP connections

30

1

Transport-path p50 overhead fell by approximately 53.3% in this environment. This measures localhost SDK transport, not actual Jev inference speed. The default HTTP timeout of 15 seconds applies separately to connect, read, write, and pool waits.

Measurement method and boundaries →

A small toolset

Tool

Purpose

jev_browser_run

Observe → Jev selection → execute → verify in a persistent REPL session

jev_extension_status

Inspect ON/OFF state and connection readiness

jev_system_one

General Jev questions using Choice / Score / Noul

jev_choose

Select one ID from app-owned candidates

jev_step

Select, check confidence, and return the execution payload

jev_validate

Locally verify that an ID belongs to the candidate set

The general MCP/CLI jev_choose and jev_step support mock for testing. The extension-specific MCP and jev_browser_run are Live-only.

What has been verified

Verified locally

Not yet verified

Recorded Python and JavaScript regression checks

Live Jev authentication, decision quality, and inference latency

Six local page transitions and completion in actual Aside — decisions supplied by a fixture stub

Success rates across general websites

Native Messaging, ON/OFF, and backup/recovery in temporary profiles

Extension installation and MCP registration in a real user account

Local demo UI, input errors, and narrow-screen layout

Forced routing of all built-in Aside tools

See validation records for exact check counts and localization evidence.

  • OFF removes the managed instruction block from the selected profile. The status-check skill file remains.

  • OFF and timeouts do not undo browser actions already sent. If execution_state: unconfirmed, inspect the page before resuming manually.

  • Completion conditions and action rules are task-specific. This has not been validated as a universal browser agent.

  • Context sanitization limits size and masks credential patterns. It does not identify every possible personal or secret value.

  • The hero is generated concept artwork. Actual UI and execution evidence are identified in the validation record.

Development

uv sync --extra dev
uv run pytest -q
node --test tests/test_extension_controller.mjs
uv run python scripts/benchmark_latency.py --samples 30

# Verify six localhost transitions in actual Aside.
# This exercises browser execution without calling the Jev API.
uv run python scripts/verify_browser_runtime.py

Read more

Contents

Extension setup

Local connection, account setup, ON/OFF, disabling

Feature map

Entry points, source files, checks

Validation

Tests, runtime evidence, measurements, limits

Localization

English defaults, Korean dictionaries, localized media

Changelog

Changes by version


Available Tools

6 tools
jev_browser_runA

Run observe → Jev → execute in one persistent Aside REPL session.

action_rules are explicitly authorized exact role/name/action rows; fill also
requires an explicit value. Never include an action needing ungranted user
approval. Supports click/focus/fill only. Uses live Jev, never a fallback LLM.
A completion_text and optional exact completion_url verify success locally.
Includes completion Noul and risk Score assessment after DOM completion.
verified is true only when both DOM and assessment pass; do not call a
separate assessment after success. On assessment_failed report partial
completion, never full success. Stops on stale observations and budgets.
ParametersJSON Schema
NameRequiredDescriptionDefault
goalYes
max_stepsNo
target_idYes
timeout_sNo
action_rulesYes
completion_urlNo
min_confidenceNo
completion_textYes
total_timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the behavioral burden. It discloses that it uses live Jev (not a fallback LLM), stops on stale observations and budgets, includes a completion Noul and risk Score assessment, and defines exactly when 'verified' is true and how to report assessment_failed. It also warns against calling a separate assessment after success, which is critical operational guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but not overly verbose. It front-loads the core purpose, then layers constraints, verification, and assessment behavior. While it includes domain-specific terms (Noul, Jev), each sentence adds value and no filler is present. The structure is logical, though a bit dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers critical operational constraints (approval rules, verification mechanism, assessment failure handling) and notes the tool has an output schema (which reduces the need to describe return values). However, it omits explanations for several parameters (goal, timeouts, confidence) and doesn't describe how the REPL session interacts with the browser or the nature of the 'budget' that stops execution. Given the tool's complexity, this is a moderate gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies action_rules (exact role/name/action rows, fill requires explicit value) and explains completion_text/completion_url verification, but it leaves goal, target_id, timeout_s, max_steps, min_confidence, and total_timeout_s undefined. Only 3 of 9 parameters are meaningfully described, which is insufficient for a tool with no schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs a sequence of 'observe → Jev → execute' in a persistent REPL session, giving a specific verb and resource. It doesn't explicitly contrast with sibling tools like jev_step or jev_validate, but the composite flow is distinctive enough that an agent can infer its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for end-to-end browser automation ('Run observe → Jev → execute') and states constraints like 'Supports click/focus/fill only' and 'Never include an action needing ungranted user approval.' However, it doesn't explicitly say when to prefer this tool over siblings or when not to use it, leaving the selection logic to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jev_chooseC

Choose an app-owned action ID. No action is executed by this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYes
modelNojev-latest
preferNo
historyNo
providerNolive
timeout_sNo
candidatesYes
observationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description carries the full burden. It only discloses that no action is executed, but omits error behavior, latency/cost, side effects, authentication, and return semantics. The one disclosed behavior is useful but insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two terse sentences with zero filler, front-loading the verb and adding the key non-execution caveat. Efficient, though brevity comes at the cost of needed detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters at 0% schema description coverage, no annotations, and a two-sentence description, an agent lacks essential context for input construction and tool behavior. The output schema does not compensate for missing parameter semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and none of the 8 parameters (including required goal, observation, candidates) are explained in the description. The tool cannot be correctly invoked without guessing parameter formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Choose') and resource ('app-owned action ID'), with an explicit non-execution caveat that distinguishes it from execution siblings. Core purpose is clear even though alternatives are not named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus jev_step or jev_browser_run. No mention of prerequisites, selection criteria, or when to prefer this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jev_extension_statusA

Read the popup toggle state; this does not change settings or call Jev.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It transparently states the operation is read-only and side-effect-free: 'does not change settings or call Jev.' It does not describe return behavior, but an output schema is present, so this is not a critical omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single tightly packed sentence. It front-loads the primary action and resource, then adds a valuable side-effect clarification without any filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter status tool with an output schema, the description captures the essential context: what is being read and that no side effects occur. It is slightly light on how this relates to the sibling tools, but the negative 'does not call Jev' provides enough distinction for safe selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero properties and schema description coverage is 100%, so there are no parameters needing elaboration. Per the 0-param baseline, the description need not add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Read the popup toggle state.' It also explicitly distinguishes itself from the Jev action siblings by noting it 'does not change settings or call Jev,' so an agent can tell it apart from tools like jev_step or jev_browser_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the right tool for read-only status checks through 'Read the popup toggle state' and the exclusion 'does not change settings or call Jev.' However, it never names a specific sibling or states a concrete condition for when to prefer this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jev_stepC

Choose, validate, and apply a confidence gate; return an execution payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYes
modelNojev-latest
historyNo
providerNolive
timeout_sNo
candidatesYes
observationYes
min_confidenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says the tool 'applies a confidence gate' and returns a payload, but it does not explain side effects, whether anything is mutated or executed, preconditions, or failure behavior. Since no annotations are present, the description carries the full burden and only partially meets it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sentence is compact and has no filler, using a clear semicolon to separate process from output. It is too terse, however, to be genuinely helpful for a tool with 8 parameters, so brevity trades away necessary substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, required inputs, no annotations, and a 0% schema description coverage, this definition is far from complete. It does not explain what goal, observation, or candidates mean, how the confidence gate behaves, or what the execution payload represents, leaving the agent without enough context to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description names none of the 8 parameters such as goal, observation, candidates, min_confidence, or timeout_s. With the schema providing only titles and types, the description was expected to compensate and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a real verb structure ('Choose, validate, and apply a confidence gate') and an output ('return an execution payload'), so it is not a tautology. However, 'confidence gate' and 'execution payload' are unexplained jargon, and the actions overlap with sibling tools like jev_choose and jev_validate without distinguishing this tool from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use jev_step versus alternatives such as jev_choose, jev_validate, or jev_system_one. There are no conditions, exclusions, or contextual hints, so the agent must infer the tool's place in the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jev_system_oneB

Call TypeSafe Jev with named questions. Each question uses type, instructions, criteria ONLY, never question or rubric. Score requires 2..64 ordered criteria from lowest to highest score. Noul uses true/false criteria descriptions. Example questions: {"completed":{"type":"noul","criteria":{"true":"The requested completion is visible","false":"Completion is absent"}}, "risk":{"type":"score","criteria":["No sensitive action","Reversible action","Sensitive or irreversible action"]}}. Report any error as an incomplete evaluation, never as overall success.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNojev-latest
stateYes
questionsYes
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose an error-handling convention ('Report any error as an incomplete evaluation, never as overall success') and imposes input constraints, but it does not state side effects, permissions, or whether the operation is read-only. This is partial, not complete, behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but not bloated; it front-loads the core action, then gives pragmatic constraints and a compact example. Each sentence adds necessary information, and the example JSON is directly useful without being excessive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and a schema that has no property descriptions, the description is the only source of semantics. It covers the nested 'questions' format and error conventions well, but it never defines the required 'state' parameter, nor does it explain 'model' or 'timeout_s'. An agent would likely struggle to construct a fully correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the 'questions' parameter well: structure, supported types, criteria-count limits, and a concrete example. However, it leaves 'state', 'model', and 'timeout_s' semantically unexplained, which is a significant gap for a required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action ('Call TypeSafe Jev') and names the required payload shape (named questions with type/instructions/criteria). It is clear about what the tool does, though it does not explicitly contrast it with sibling tools such as jev_choose or jev_step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use jev_system_one versus the sibling tools. The description focuses on how to format questions ('Score requires 2..64 ordered criteria', 'Noul uses true/false criteria descriptions') but does not state when to prefer this tool over alternatives, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jev_validateC

Validate a supplied candidate ID and return its original action payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
choice_idYes
candidatesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that validation returns an action payload, but says nothing about side effects, permissions, error handling, or whether validation changes state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is grammatically tight, front-loads the verb, and contains no filler. It is appropriately concise for a tool with only two required parameters and an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is low in complexity and has an output schema, so the description does not need to explain return values. However, it omits parameter semantics and usage guidance, leaving an agent to infer how candidates and choice_id should be supplied and when this should be called over sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both required parameters. The description only hints that choice_id is a 'candidate ID' and says nothing about what candidates contains or how it relates to choice_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Validate') and a clear resource ('supplied candidate ID') plus the result ('return its original action payload'). It does not explicitly distinguish itself from siblings like jev_choose or jev_step, but the core function is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus jev_choose, jev_step, or jev_system_one. There are no preconditions, exclusions, or alternative selection criteria mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.2.0
    • First observedjev_browser_run
    • First observedjev_choose
    • First observedjev_extension_status
    • First observedjev_step
    • First observedjev_system_one
    • First observedjev_validate

TDQS

C2.7/5.0

Scored across 6 tools

Disambiguation2/5

Several tools have overlapping responsibilities: jev_choose and jev_step both involve selecting an action, while jev_validate and jev_step both claim to validate. The descriptions help somewhat, but an agent could easily pick the wrong tool when choosing, validating, or executing a step.

Naming Consistency2/5

All tools share a jev_ prefix, but the rest of the names follow no consistent pattern: single verbs like validate/choose, noun compounds like extension_status/system_one, and an inverted noun-verb in browser_run. This mixed style reduces predictability and makes the API harder to navigate.

Tool Count4/5

Six tools is a reasonable size for a Jev/Aside-focused server, covering validation, evaluation, browser execution, extension status, and action selection. The count is not bloated, though some tools could potentially be consolidated.

Completeness3/5

The core workflow areas are represented: validation, system-one assessment, browser automation, and status reading. However, there is no obvious way to list available app-owned action IDs or modify extension settings, and the relationship between choose/step/validate leaves some workflow gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agent skills to route state-evaluation requests to TypeSafe AI's Jev System One model, supporting typed questions, choice classification, binary probabilities, and rubric scoring with calibrated confidence.
    4
    2
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to obtain typed judgments from TypeSafe's Jev System One models, including yes/no probabilities, multiple-choice selections with distributions, and rubric-based scores, directly usable in code.
    5
    2
    AGPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables any agent to ask typed questions (Noul, Choice, Score) against Jev's decision model and receive structured answers with probabilities, confidence, and an auditable act/review/abstain decision.
    423 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude Code agents to perform structured decision-making through TypeSafe Jev, supporting yes/no checks, route selection, scoring, and batched multi-question judgments with confidence values.
    1
    -