← Back to search

UK Legal Research

paulieb89 streamable_http Scanned 15h ago

UK legal research — case law, legislation, Hansard, bills, votes, committees, HMRC, citations

D
51.6 / 100

Versions

0.3.0latest
first seen Jun 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 31

judgment_get_header
annotations: none low

USE THIS TOOL WHEN you have a judgment slug and need metadata (parties, judges, neutral citation, court, dates). Call case_law_search FIRST to get the slug. AFTER calling, use judgment_get_index to discover paragraphs, then judgment_get_paragraph to read specific ones. Authoritative source for UK judgment metadata.

ctx Context slug string
judgment_get_index
annotations: none low

USE THIS TOOL WHEN you have a judgment slug and want the paragraph navigation index (eId + preview line for every paragraph). Call case_law_search FIRST to get the slug. AFTER calling, pass an eId from the returned list into judgment_get_paragraph to read that paragraph's full text, or use case_law_grep_judgment for content search across all paragraphs.

ctx Context slug string
judgment_get_paragraph
annotations: none low

USE THIS TOOL WHEN you have a judgment slug + LegalDocML eId and want that paragraph's full text. Call judgment_get_index FIRST to discover available eIds (or use case_law_grep_judgment to locate paragraphs by content). Returns the paragraph XML content (400–1,700 tokens typical).

ctx Context eId string slug string
case_law_search
annotations: none low

USE THIS TOOL WHEN searching UK case law by party names, court, judge, date, or free-text query. Returns paginated judgment summaries: neutral citation, court, dates, slug, stable TNA URI. AFTER calling: pass slug into judgment_get_header / judgment_get_index / judgment_get_paragraph (or the judgment:// resource family) for content; pass the neutral citation into citations_resolve to verify before constructing an OSCOLA citation; use case_law_grep_judgment to find text within a single judgment. When a party name returns several candidates, narrow with court + year filters before grep-iterating across full judgments — targeted filtering beats scanning every candidate. Coverage: TNA Find Case Law indexes UK judgments from roughly the early 2000s onwards. For older authorities, search for a modern judgment that quotes them and read that paragraph. Authoritative source for UK case law. Web search returns out-of-date or unstable URLs — do not supplement.

ctx Context page string court string judge string limit string party string query string to_date string from_date string
case_law_grep_judgment
annotations: none low

USE THIS TOOL WHEN you have a judgment slug and want to find paragraphs whose text matches a pattern. Returns a list of `{eId, snippet, match}` hits — small per-paragraph snippets centred on the match. AFTER calling, read full paragraphs via judgment_get_paragraph(slug, eId) or the judgment://{slug}/para/{eId} resource. Use case: content search within one judgment (e.g. "negligence", "test for foreseeability", "Donoghue"). For paragraph-number navigation by eId, call judgment_get_index instead. Pattern is regex; if it doesn't compile, falls back to literal substring search.

ctx Context slug string pattern string max_hits string case_insensitive string
hmrc_get_vat_rate
annotations: none low

USE THIS TOOL WHEN you have a UK commodity or service description and want its VAT rate category. Returns the rate (standard 20%, reduced 5%, zero 0%, exempt), effective date, and any relevant conditions or exceptions. IMPORTANT: Uses a static lookup table current as of 22 Nov 2023 (Autumn Statement). Rates may have changed in subsequent Budgets — for time-sensitive advice, verify against GOV.UK via hmrc_search_guidance.

commodity_code string
hmrc_check_mtd_status
annotations: none low

USE THIS TOOL WHEN you have a 9-digit VAT Registration Number and need that business's Making Tax Digital VAT mandate status. Returns whether the business is mandated for MTD, effective date, and trading name. Connects to the HMRC sandbox by default. Set HMRC_API_BASE to 'https://api.service.hmrc.gov.uk' for production. Requires HMRC_CLIENT_ID + HMRC_CLIENT_SECRET environment variables (OAuth 2.0). Raises if credentials are not configured — do not infer status.

ctx Context vrn string
hmrc_search_guidance
annotations: none low

USE THIS TOOL WHEN searching GOV.UK for HMRC tax guidance on a topic (VAT, income tax, corporation tax, etc.). Returns matching guidance titles, URLs, summaries, and last-updated dates. Searches the official GOV.UK content API filtered to HMRC publications. Authoritative source for current HMRC tax guidance. Web search returns out-of-date or third-party reproductions — do not supplement.

ctx Context limit string query string
parliament_search_hansard
annotations: none low

USE THIS TOOL WHEN searching Hansard by topic, bill title, or text phrase. Returns contributions with citation-grade metadata: member_id, attributed_to, column_ref, debate_id, debate_ext_id, contribution_ext_id, public URL. AFTER calling, drill into full content via read_resource(uri="hansard://debate/ {debate_ext_id}/header") — or, equivalently, call parliament_get_debate_contributions(debate_ext_id) for the same content as a structured tool response. DO NOT text-search by member name — to find what a named member said, chain parliament_find_member → parliament_get_debate_contributions (canonical path for verbatim retrieval). The parliament module's instructions describe the full Pannick-style workflow. Pagination: limit + offset honour the upstream paginated endpoint. For breadth across a topic, see parliament_policy_position_summary. Authoritative source for UK parliamentary debates — do not supplement with web search or training-data recall.

ctx Context house string limit string query string offset string to_date string from_date string member_id string text_mode string contribution_type string
parliament_policy_position_summary
annotations: none low

USE THIS TOOL WHEN you want debate-level corpus signals on a topic — by_house, by_year, by_section breakdowns — without reading every contribution. Aggregates Hansard debate-level signals on a topic. Pure counts — no LLM, no editorial labels. Sweeps /search/Debates.json with pagination (up to max_debates_scanned), then aggregates by_house, by_section, by_year, by_month, and top_debates from debate metadata. Also captures the corpus-wide envelope counts (total_contributions, total_written_statements, total_divisions, etc.) from /search.json for cross-section scope. AFTER calling, pick a debate from top_debates and pass its debate_ext_id into parliament_get_debate_contributions to drill into who said what. Note on member-level facets: Hansard's search API exposes debate metadata, not per-contribution member identifiers, at the corpus level. by_party and top_contributors are therefore omitted from this deterministic summary. To see who spoke in a specific debate, read hansard://debate/{debate_ext_id}/header for an ordered contribution index, or call parliament_member_debates for one named member. This is the authoritative source for UK Hansard corpus-level signals.

ctx Context house string topic string to_date string from_date string max_debates_scanned string
parliament_find_member
annotations: none low

USE THIS TOOL WHEN you have a member's name and need their integer member_id. Returns all members matching the name query, each with the integer `id`, party, constituency, house, and current-sitting status. Disambiguates common-name matches (e.g. "Lord Smith" returns multiple peers). CALL THIS BEFORE any tool that filters by member_id — including parliament_get_debate_contributions, parliament_member_debates, and parliament_member_interests. Name → ID first; ID-based filtering second. Skipping this step and text-searching by name returns unrelated results (see parliament_search_hansard's anti-bypass note for the Pannick case).

ctx Context name string
parliament_member_debates
annotations: none low

USE THIS TOOL WHEN you have a member_id and want contributions where THAT member used a specific topic phrase verbatim (text-body search). CALL parliament_find_member(name) FIRST to obtain the integer member_id. This is a name-based text-body search — it matches contributions whose TEXT contains the topic phrase. A member who spoke in a debate but didn't use your phrase verbatim is filtered out. For verbatim retrieval of every contribution by a member in a known debate (regardless of vocabulary), use parliament_get_debate_contributions(debate_ext_id, member_id=...) instead. Each contribution's text field is capped at 3000 characters.

ctx Context limit string topic string offset string member_id string
parliament_member_interests
annotations: none low

USE THIS TOOL WHEN you have a member_id and need their registered financial interests (donations, directorships, land, gifts). CALL parliament_find_member(name) FIRST to obtain the integer member_id. Returns ONE PAGE of interests (default 20, caller controls via limit). For prolific members (big donors, many directorships, extensive land holdings), re-call with offset=offset+returned while has_more is true to paginate. Description text is capped per max_description_chars; raise it for forensic provenance work that needs the full narrative. This is the authoritative source for UK MP and peer financial-interest declarations (via the Members API). Web search returns stale snapshots.

ctx Context limit string offset string category string member_id string max_description_chars string
parliament_search_petitions
annotations: none low

USE THIS TOOL WHEN searching UK Parliament petitions by keyword or topic. Returns petition title, state, signature count, and dates for government response or parliamentary debate if applicable. Filter by state (open, closed, debated, etc.) to narrow to live or historical petitions. This is the authoritative source for UK Parliament petitions (petition.parliament.uk).

ctx Context limit string query string state string offset string
parliament_get_debate_divisions
annotations: none low

USE THIS TOOL WHEN you have a debate_ext_id and want the divisions (formal votes) held within it. Most debates contain no divisions — Business of the House sittings, statements, urgent questions, debates without a vote. A populated list typically appears around bill stages, motions, and contested amendments. Empty list is the honest result, not a failure mode. Each returned division carries TWO IDs: - `id` — Hansard-side reference. Useful for cross-referencing in Hansard. - `votes_id` — Lords/Commons Votes API ID (cross-resolved by date+number). AFTER calling, pass `votes_id` as `division_id` into votes_get_division for the full member-by-member voting record. The two upstreams use distinct ID-spaces (Hansard Number=3 might be Votes-API divisionId=3392). The cross-resolve runs once per (date, house) group — typically one extra HTTP per debate. `votes_id` is None when the cross-resolve found no match.

ctx Context debate_ext_id string
parliament_get_debate_contributions
annotations: none low

USE THIS TOOL WHEN you have a debate_ext_id and want verbatim contributions, optionally filtered to one member. Canonical path for "everything a member said in this debate" regardless of vocabulary — text-search tools (parliament_member_debates, parliament_search_hansard) filter by contribution TEXT, dropping members who spoke without using your phrase verbatim. This tool filters by MemberId on the debate's Items list, so vocabulary doesn't matter. Typical chain: parliament_find_member(name) → member_id, then parliament_search_hansard or parliament_lookup_by_column → debate_ext_id, then this tool. The parliament module's instructions describe the full composition pattern. Without member_id, returns every contribution (~100-200 for a long debate). If the wire returns no contributions for a member you expect to have spoken, report the empty result honestly — do NOT reconstruct quotes from training data. Authoritative source for member contributions.

ctx Context member_id string debate_ext_id string
parliament_lookup_by_column
annotations: none low

USE THIS TOOL WHEN you have an OSCOLA-style Hansard citation (column + volume + house) and need the debate. Example input: 'HL Deb 14 Oct 2025, vol 849, col 200'. AFTER calling, read the contribution at the cited column via read_resource(uri="hansard://debate/{debate_ext_id}/header") — or, equivalently, call parliament_get_debate_contributions(debate_ext_id) for the full list as a structured tool response. Each match carries: - `contribution_count` — real contribution count from the debate's Items - `source` / `source_code` — citation finality (1=Rolling, 2=Daily, 3=BoundVolume, 4=Historic). Resolution is NOT gated on publication state. Empty `matches` typically means the volume_number is wrong (opposing counsel sometimes cites running-volume rather than bound-volume) or the column is in a Written Statement (use the 'W'-suffixed column as-is). It does NOT mean the citation is fabricated — surface the failure. Authoritative source for OSCOLA Hansard column resolution.

ctx Context house string column_number string volume_number string
bills_search_bills
annotations: none low

USE THIS TOOL WHEN searching UK parliamentary bills by keyword, session, house, or legislative stage. Returns a paginated page of bill summaries (title, current stage, whether it became an Act). AFTER calling, pass a bill_id into bills_get_bill for full detail (sponsors, long title, Royal Assent date). Authoritative source for UK parliamentary bill status.

house string limit string query string stage string offset string session string
bills_get_bill
annotations: none low

USE THIS TOOL WHEN you have a bill_id (from bills_search_bills) and want the full detail. Returns sponsors, current stage, long title, summary, and Royal Assent date if enacted. Summary text is capped per max_summary_chars — check summary_truncated in the response. AFTER calling, use parliament_search_hansard(query=bill_short_title) to find the bill's parliamentary debates, or bills_search_bills with a related keyword for adjacent bills.

bill_id string max_summary_chars string
legislation_search
annotations: none low

USE THIS TOOL WHEN searching UK Acts and Statutory Instruments by title, phrase, or full-text. Returns ranked results: title, type, year, number, legislation.gov.uk URL, and next_steps hints (toc URI, section template). AFTER calling, chain to legislation_get_toc then legislation_get_section for structural drill-in. Filter discipline: `type` and `year` are exact-match. Use only when you already know the value. For currency-driven searches ("the recent Renters' Rights Act"), query by phrase alone and read the year from the results — guessing a year and filtering by it zeroes results when wrong. For broader concept queries across content, set `fulltext=True`. Authoritative source for UK primary and secondary legislation (legislation.gov.uk).

type string year string limit string query string fulltext string
legislation_get_section
annotations: none low

USE THIS TOOL WHEN you have a known Act / SI and want the parsed text of a specific section, with extent and in-force metadata. Returns full section text, territorial extent, in-force status, and prospective flag. Content capped per max_chars (default 10,000, ~2,500 tokens) — raise for unusually long definition sections; check content_truncated in the response. ALWAYS check `extent` — a section may apply to England & Wales but not Scotland or Northern Ireland. Reciting a section without checking extent is a recurring legal-research error. Alternative: call read_resource(uri="legislation://{type}/{year}/{number}/ section/{section}") for raw CLML XML; use this tool when you want the parsed structured response instead.

type string year string number string section string max_chars string
legislation_get_toc
annotations: none low

USE THIS TOOL WHEN you have a known Act / SI and want the structural table of contents (parts, chapters, sections, schedules). Returns structural elements with XML id and title, e.g. 'section-47: Definitions'. AFTER calling, pass the numeric section identifier (use '47', NOT 'section-47') into legislation_get_section for full text. Large statutes (Companies Act 2006 has many hundreds of items) are paginated via offset/limit. Check has_more and total_items. Alternative: call read_resource(uri="legislation://{type}/{year}/{number}/ toc") for the full TOC as a newline-separated `id: title` string (no pagination). Use this tool when you need the structured response with offset / limit / has_more for stepping through large statutes.

type string year string limit string number string offset string
committees_search_committees
annotations: none low

USE THIS TOOL WHEN searching or listing UK parliamentary select committees by name, house, or active status. Returns committee summaries (name, house, active status, ID). AFTER calling, pass committee_id into committees_get_committee for current membership, or into committees_search_evidence to retrieve oral and written evidence submitted to that committee.

house string limit string query string active_only string
committees_get_committee
annotations: none low

USE THIS TOOL WHEN you have a committee_id and want the metadata + current membership. Fetches committee detail and member list in parallel. AFTER calling, pass committee_id into committees_search_evidence to see what evidence has been submitted to this committee on what topics.

committee_id string
committees_search_evidence
annotations: none low

USE THIS TOOL WHEN you have a committee_id and want the oral and written evidence submitted to it. Returns ONE PAGE of evidence (default 20). Free-text titles are capped per max_title_chars; witness lists are capped at 10 per item. For committees with many submissions, re-call with offset=offset+returned while has_more is true. Authoritative source for parliamentary committee evidence.

limit string offset string committee_id string evidence_type string max_title_chars string
votes_search_divisions
annotations: none low

USE THIS TOOL WHEN searching Commons or Lords formal votes by topic, date, or member. Returns division summaries (title, date, vote counts, pass/fail). AFTER calling, pass division_id + house into votes_get_division for the full member-by-member voter lists. Authoritative source for UK parliamentary vote records.

house string limit string query string offset string to_date string from_date string member_id string
votes_get_division
annotations: none low

USE THIS TOOL WHEN you have a division_id + house and want the full member-by-member voting record. Voter lists are truncated to 100 per side to fit response limits; total voter counts are always accurate regardless of truncation. Chain from votes_search_divisions or parliament_get_debate_divisions (which cross-resolves Hansard division refs into votes-API division_ids).

house string division_id string
citations_parse
annotations: none low

USE THIS TOOL WHEN you have free text (a memo, an email, a clause) and want every OSCOLA-style citation it contains extracted and classified. Identifies: neutral citations ([2024] UKSC 12), law reports ([2024] 1 WLR 100), legislation sections (s.47 Companies Act 2006), SIs (SI 2018/1234), retained EU law (Regulation (EU) 2016/679). Parsing is pure regex by default. Ambiguous citations (e.g. bare [2024] EWHC without division) can OPTIONALLY be disambiguated by setting disambiguate=True, which asks the CONNECTED CLIENT's own model (not this server) to resolve the division via MCP sampling — off by default. Citations resolve to TNA / legislation.gov.uk URLs when possible. AFTER calling, pass each citation through citations_resolve to verify it points at a real document before quoting or formatting it — the parser recognises the SHAPE of a citation but does not confirm the document exists.

ctx Context text string disambiguate string
citations_resolve
annotations: none low

USE THIS TOOL BEFORE constructing an OSCOLA citation string from known fields, OR to confirm a citation points at a real document. Parses + resolves a single citation (neutral citation, SI, legislation section, retained EU law) and returns parsed fields plus resolved_url. For neutral citations, performs a live TNA HEAD check — non-200 sets confidence to 0.0 (document absent). Do NOT format or quote a confidence-0.0 citation. If the TNA HEAD check fails (timeout, connection error), raises ToolError with {"error_category": "transient", "is_retryable": true}. One retry is attempted — retry this call or proceed without TNA verification. Formatting a citation from "known" fields without prior resolution is the most common fabrication route. If this tool raises or returns no resolved_url, do NOT manufacture a citation — surface the failure and ask the user for the source URL. Authoritative source for UK legal-citation resolution.

ctx Context citation string
citations_network
annotations: none low

USE THIS TOOL WHEN you have a judgment slug and want to map every citation it makes — cases cited, legislation referenced, SIs, retained EU law. Fetches the judgment XML from TNA and parses all OSCOLA citations within. Returns citations grouped by type, deduplicated and sorted. AFTER calling, pass any individual citation through citations_resolve to confirm it resolves and to retrieve its canonical URL. Useful for authority-network analysis (what did this judgment rely on?) and for surfacing the legislative landscape a case sits inside.

ctx Context case_uri string
citations_format_oscola
annotations: none low

USE THIS TOOL AFTER citations_resolve to produce the correctly formatted OSCOLA citation string. Pass the parsed fields returned by citations_resolve directly into this tool. Formats per OSCOLA 4th edition rules for each citation type. Refuses (status: upstream_validation) if confidence is 0.0 — TNA confirmed the document does not exist — or if a neutral citation has no resolved_url (ambiguous court code, e.g. bare EWHC without a division). In either case, do NOT manufacture a citation; surface the failure and ask the user for the source URL or better identifying details. DO NOT construct the input fields yourself. The structured input must come from citations_resolve — guessing fields is the primary citation-fabrication route and this tool is the guard against it. Authoritative OSCOLA formatting for UK legal citations (no network call).

raw string page string year string court string number string volume string section string si_year string si_number string confidence string resolved_url string citation_type string report_series string legislation_title string

Permissions 4

network medium
Server uses network capabilities via: httpx
filesystem low
Server uses filesystem capabilities via: open(), os, pathlib
shell high
Server uses shell capabilities via: subprocess
env_vars low
Server uses env_vars capabilities via: os.environ, os.getenv()

Scan Findings 84

low
Tool 'judgment_get_header' has no annotations annotation_checker · 100%
low
Tool 'judgment_get_index' has no annotations annotation_checker · 100%
low
Tool 'judgment_get_paragraph' has no annotations annotation_checker · 100%
low
Tool 'case_law_search' has no annotations annotation_checker · 100%
low
Tool 'case_law_grep_judgment' has no annotations annotation_checker · 100%
low
Tool 'hmrc_get_vat_rate' has no annotations annotation_checker · 100%
low
Tool 'hmrc_check_mtd_status' has no annotations annotation_checker · 100%
low
Tool 'hmrc_search_guidance' has no annotations annotation_checker · 100%
low
Tool 'parliament_search_hansard' has no annotations annotation_checker · 100%
low
Tool 'parliament_policy_position_summary' has no annotations annotation_checker · 100%
low
Tool 'parliament_find_member' has no annotations annotation_checker · 100%
low
Tool 'parliament_member_debates' has no annotations annotation_checker · 100%
low
Tool 'parliament_member_interests' has no annotations annotation_checker · 100%
low
Tool 'parliament_search_petitions' has no annotations annotation_checker · 100%
low
Tool 'parliament_get_debate_divisions' has no annotations annotation_checker · 100%
low
Tool 'parliament_get_debate_contributions' has no annotations annotation_checker · 100%
low
Tool 'parliament_lookup_by_column' has no annotations annotation_checker · 100%
low
Tool 'bills_search_bills' has no annotations annotation_checker · 100%
low
Tool 'bills_get_bill' has no annotations annotation_checker · 100%
low
Tool 'legislation_search' has no annotations annotation_checker · 100%
low
Tool 'legislation_get_section' has no annotations annotation_checker · 100%
low
Tool 'legislation_get_toc' has no annotations annotation_checker · 100%
low
Tool 'committees_search_committees' has no annotations annotation_checker · 100%
low
Tool 'committees_get_committee' has no annotations annotation_checker · 100%
low
Tool 'committees_search_evidence' has no annotations annotation_checker · 100%
low
Tool 'votes_search_divisions' has no annotations annotation_checker · 100%
low
Tool 'votes_get_division' has no annotations annotation_checker · 100%
low
Tool 'citations_parse' has no annotations annotation_checker · 100%
low
Tool 'citations_resolve' has no annotations annotation_checker · 100%
low
Tool 'citations_network' has no annotations annotation_checker · 100%
low
Tool 'citations_format_oscola' has no annotations annotation_checker · 100%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: mcp@1.27.0 (GHSA-hvrp-rf83-w775) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.27.0 (GHSA-jpw9-pfvf-9f58) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.27.0 (GHSA-vj7q-gjh5-988w) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.27.0 (PYSEC-2026-3481) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.27.0 (PYSEC-2026-3482) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.27.0 (PYSEC-2026-3483) dependency_analyzer · 95%
medium
Vulnerable dependency: lxml@6.0.4 (GHSA-vfmq-68hx-4jfw) dependency_analyzer · 95%
medium
Vulnerable dependency: lxml@6.0.4 (PYSEC-2026-87) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: judgment_get_header manifest_parser · 90%
info
Tool: judgment_get_index manifest_parser · 90%
info
Tool: judgment_get_paragraph manifest_parser · 90%
info
Tool: case_law_search manifest_parser · 90%
info
Tool: case_law_grep_judgment manifest_parser · 90%
info
Tool: hmrc_get_vat_rate manifest_parser · 90%
info
Tool: hmrc_check_mtd_status manifest_parser · 90%
info
Tool: hmrc_search_guidance manifest_parser · 90%
info
Tool: parliament_search_hansard manifest_parser · 90%
low
Permission: env_vars access detected permission_analyzer · 90%
info
Tool: parliament_policy_position_summary manifest_parser · 90%
info
Tool: parliament_find_member manifest_parser · 90%
info
Tool: parliament_member_debates manifest_parser · 90%
info
Tool: parliament_member_interests manifest_parser · 90%
info
Tool: parliament_search_petitions manifest_parser · 90%
info
Tool: parliament_get_debate_divisions manifest_parser · 90%
info
Tool: parliament_get_debate_contributions manifest_parser · 90%
info
Tool: parliament_lookup_by_column manifest_parser · 90%
info
Tool: bills_search_bills manifest_parser · 90%
info
Tool: bills_get_bill manifest_parser · 90%
info
Tool: legislation_search manifest_parser · 90%
info
Tool: legislation_get_section manifest_parser · 90%
info
Tool: legislation_get_toc manifest_parser · 90%
info
Tool: committees_search_committees manifest_parser · 90%
info
Tool: committees_get_committee manifest_parser · 90%
info
Tool: committees_search_evidence manifest_parser · 90%
info
Tool: votes_search_divisions manifest_parser · 90%
info
Tool: votes_get_division manifest_parser · 90%
info
Tool: citations_parse manifest_parser · 90%
critical
Tool poisoning in 'case_law_grep_judgment': Cross-tool sequencing directive poisoning · 85%
info
Tool: citations_resolve manifest_parser · 90%
info
Tool: citations_network manifest_parser · 90%
info
Tool: citations_format_oscola manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (9) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 80%
high
Permission: shell access detected permission_analyzer · 95%
critical
Tool poisoning in 'parliament_find_member': Cross-tool sequencing directive poisoning · 85%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%