filter_records
Filter supplied records with explicit task/context. Returns selected and unresolved IDs plus evidence receipts.
taskrequiredrecordsrequiredanalysisbudget_chars
io.github.apixly-aiPublished by GitHub account apixly-aiv0.4.2Updated Oct 30, 2026
Read-only semantic filtering, code search, log triage and traceable evidence for AI agents.
Read-only semantic filtering MCP server that screens records, code candidates and JSON events against a task and returns compact decisions with evidence…
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
[Jev Filter: give your agent the signal. Collect once, decide with context, return the proof.]
[CI] [Latest release] [npm version] [Listed on MCP Servers] [MIT license] [M8ven Live monitoring]
简体中文 · Quick start · Documentation · Agent setup · Benchmarks
Semantic filtering for AI agent tool results. Turn large tool outputs into compact, typed decisions before they enter your agent's context. Keep source records inside your program, return relevant evidence and unresolved IDs, and recover originals by ID.
An independent MIT project maintained by Apixly. Official npm package: @apixly/jev-filter. What it does and when to use it.
Discover and connect: View the MCP Servers listing ↗ · Set up a client and four read-only tools →
Node.js 22+ · macOS / Linux · Python included in the npm distribution. Windows: use WSL or install Python natively. Installation and doctor are offline; inference needs a TypeSafe Jev API key.
Run this from any directory:
Expected selection, with diagnostics omitted:
For real batches, collect and filter in one call, before raw output reaches the conversation:
Start with the copyable analysis contract. Parse the packet even on exit 2: complete=false and review_ids need attention. Small examples teach the interface; exact paths, IDs, selectors, calculations and short outputs usually belong in native tools. Installation, keys and result handling →
Copyable synthetic inputs and analysis contracts are included. Read the tutorials on the documentation site · FAQ.
Paid live evidence from 2026-10-04, using synthetic inputs. Source hashes, per-run usage, timing and failures are public; each result belongs to its stated scope.
Latency and cost vary. Five of six whole-operation cells were slower by 0.1–18.4%; cold API-equivalent cost ranged from 23.2% lower to 1.1% higher. Subscription billing remains unknown. Smaller context does not guarantee lower latency or billing.
Methods, negative results and reproduction · Per-run whole-operation data
Fast semantic selection, checked against the same expected answer. All paths screened 96 records against two semantic conditions and returned exactly the same 48 matching IDs.
This compares available execution paths, including CLI startup and the primary-agent turn; native model latency is not isolated. Primary paths use medium reasoning and no tools. Three repetitions are a smoke sample, not a whole-agent speedup or workload guarantee. Per-run evidence · Method and reproduction
[96-record Jev filtering: 3.22 seconds to 1.25 seconds with automatic batching, 12/12 exact runs]
[Fresh whole-operation context reduction, API-equivalent cost and latency changes]
Method and all live results · Per-run JSON · CSV · Reproducible driver
Full methods and historical data. The latest browser experiments retain failed pruning variants and unknown provider attempts; they do not turn a safe stop into a completed goal.
Each step observes the page or window, lets Jev choose from program-enumerated operations and controls, rechecks the target, executes and verifies. Model output never becomes a selector, coordinate, command or unvetted text. Irreversible actions pause for confirmation.
Replace the example URL with your permitted test page and meaningful verifier. For browse and desktop, require status: done and an independent final-state check; extract and survey require ok and complete. A selected action or model-reported DONE alone is not proof of completion. A separate verified primary-planner reference reached 6/6 expected outcomes after strict review; it adds substantial model time and is not an automatic fallback shipped in the product.
Interactive replay: browser, desktop, survey · Recording method · Safety gates and limitations
CLI · Python · JavaScript / TypeScript · MCP. Use the shell, embed jev_filter.batch.run, import createClient from @apixly/jev-filter, or expose four read-only MCP tools. Each route keeps evidence and partial results in the same core. JavaScript and MCP examples →
Install the supplied skill for Codex, Claude Code or another compatible harness:
Give the agent one routing rule:
Jev does not inherit the agent's chat. Put shared facts in context, history on each record, and declare required fields. Keep authorization and execution verification in your host program. Five-minute setup → · Full integration guide →
exec runs your trusted command and is not a sandbox. Hosted execution keeps freshness, origin and desktop safety gates. Security policyThe legacy jev-context command and Python imports remain compatible. Jev Filter is independently maintained by Apixly / JIA-ss and is not affiliated with TypeSafe.
Contributing · Development and releases · Changelog · Report a bug · MIT license
Source: README.md at commit 4af17db
Filter supplied records with explicit task/context. Returns selected and unresolved IDs plus evidence receipts.
taskrequiredrecordsrequiredanalysisbudget_charsCollect bounded code candidates inside the configured workspace and judge relevance. Exact regex scope is always reported.
roottaskrequiredlimitquerypatternrequiredanalysismax_filesbudget_charsexpand_callersRedact and correlate supplied JSON events, then select relevant incidents. No log file or shell access.
taskrequiredeventsrequiredanalysisgroup_bybudget_charsRead one bounded record from an unchanged receipt produced in this server session. A receipt never grants action authority.
idrequiredarchiverequiredbudget_chars90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
npm install -g @apixly/jev-filterjev-filter doctorexport TYPESAFE_API_KEY='your-key'
jev-filter query --input - --mode choose \ --task 'Choose the CURRENT unresolved DNS failure' <<'JSON'[ {"id":"a","text":"DNS recovered; requests now succeed."}, {"id":"b","text":"DNS lookup still fails before connection."}]JSON{"selected_ids":["b"],"review_ids":[],"complete":true}jev-filter exec --task 'Find unresolved network failures' \ --analysis analysis.json -- your-collector --jsonjev-filter browse --url https://shop.example/ \ --goal 'Find in-stock red shoes in size 42' \ --value query='red shoes' --verify-text 'Search results'# Codex; use ~/.claude/skills for Claude Code.mkdir -p ~/.codex/skillscp -R "$(npm root -g)/@apixly/jev-filter/skills/jev-filter" ~/.codex/skills/Use jev-filter for many records that need a clear semantic judgment.Pass the task, scope, exclusions, success criteria and sourced facts.Keep collection → analysis → compact output inside one tool call.Inspect unresolved IDs; use native tools for exact or short work.Do not repeat settled judgments or wrap an existing Jev workflow again.git clone https://github.com/apixly-ai/jev-filter.gitcd jev-filterpython -m venv .venv && . .venv/bin/activatepython -m pip install -e '.[code,dev]'sh scripts/check.shnpm test