Skip to main content
Glama
740,720 tools. Updated 2026-11-03 23:24

"Linux Mint" matching MCP tools:

  • Mint a one-shot signed upload URL for a product you own. Authenticated. OAuth (scope `products:write`) preferred; `api_key` fallback. Use this when you have **local image bytes** (a file the user attached, bytes you generated/downloaded in your sandbox) and you want to attach them to a product that already exists. Common cases: - `create_product` returned 409 (duplicate name) — the listing already exists; this tool gives you an upload URL for it without creating anything new. - You're adding a 2nd, 3rd, … photo to a product. The returned URL is valid for ~15 min, single product, signed with your authenticated identity. From your sandbox, do **one PUT**: requests.put(result["upload_url"], data=open("/path/to/photo.jpg", "rb").read(), headers={"Content-Type": "image/jpeg"}) No auth header on that PUT — the URL is the credential. If you have a public URL (not local bytes), use `upload_product_image(product_id, image_url=...)` instead. Args: product_id: Product to attach the future image to. You must own it. api_key: Optional API key (`pk_*`, generate at /account). Used when there is no OAuth token, and also when the OAuth token lacks the required scope — an explicitly passed key overrides an ambient token that is scoped too narrowly. An invalid or revoked token still fails regardless. Omit when using OAuth. Returns: ``{"upload_url": str, "upload_expires_in": int}``, or ``{"error": ...}`` on auth/ownership failure.
    ConnectorNo auth
  • WRITE to the Knowledge Base. This tool has TWO modes: **MODE 1 — SAVE a new card**: Provide `content` with full Markdown following the ACTIONABLE schema below. **MODE 2 — REPORT OUTCOME**: Provide `kb_id` + `outcome` ('success' or 'failure'). WHEN TO USE: - Mode 1: After successfully fixing a bug IF no existing KB card covered it. - Mode 2: ALWAYS after applying a solution from `read_kb_doc` and running verification. INPUT: - `content`: (Mode 1) Full Markdown KB card content — follow the EXACT template below. - `overwrite`: (Mode 1) Set to True to update an existing card. - `kb_id`: (Mode 2) ID of the card to report outcome for. - `outcome`: (Mode 2) 'success' or 'failure'. - `enrichment`: (Mode 2, optional) Additional context to merge into the card when outcome is 'failure'. ━━━ CARD TEMPLATE (Mode 1) — copy this structure EXACTLY ━━━ ``` --- kb_id: "[PLATFORM]_[CATEGORY]_[NUMBER]" # e.g. WIN_TERM_001, CROSS_DOCKER_002 title: "[Short Title — max 5 words]" category: "[terminal|devops|supabase|fastmcp|network|database|...]" platform: "[windows|linux|macos|cross-platform]" technologies: [tech1, tech2] complexity: [1-10] criticality: "[low|medium|high|critical]" created: "[YYYY-MM-DD]" tags: [tag1, tag2, tag3] related_kb: [] --- # [Short Title — max 5 words] > **TL;DR**: [One sentence — what's the problem + solution] > **Fix Time**: ~[X min] | **Platform**: [Windows/Linux/macOS/All] --- ## 🔍 This Is Your Problem If: - [ ] [Symptom 1 — specific symptom or error message] - [ ] [Symptom 2 — specific error code or log line] - [ ] [Symptom 3 — environment/version condition] **Where to Check**: [console / logs / env / task manager / etc.] --- ## ✅ SOLUTION (copy-paste) ### 🎯 Integration Pattern: [Global Scope] / [Inside Init] / [Event Handler] ```[language] # [One-line comment — what this code does] [depersonalized code WITHOUT specific paths, use __VAR__ for things to replace] ``` ### ⚡ Critical (won't work without this): - ✓ **[Critical Point 1]** — [why it's essential] - ✓ **[Critical Point 2]** — [common mistake to avoid] ### 📌 Versions: - **Works**: [OS/library versions where confirmed working] - **Doesn't Work**: [OS/library versions where known broken] --- ## ✔️ Verification (<30 sec) ```bash [single command to verify the fix worked] ``` **Expected**: ✓ [Specific output or behavior that confirms success] **If it didn't work** → see Fallback below ⤵ --- ## 🔄 Fallback (if main solution failed) ### Option 1: [approach name] ```bash [command] ``` **When**: [condition to use this option] | **Risks**: [what might break] ### Option 2: [alternative approach] ```bash [command] ``` **When**: [condition] | **Risks**: [what might break] --- ## 💡 Context (optional) **Root Cause**: [1 sentence — why this problem occurs] **Side Effects**: [what might change after applying the fix] **Best Practice**: [how to avoid this in future — 1 point] **Anti-Pattern**: ✗ [what NOT to do — common mistake] --- **Applicable**: [OS, library versions, conditions] **Frequency**: [rare / common / very common] ``` ━━━ END OF TEMPLATE ━━━ RULES for ACTIONABLE cards: 1. Solution FIRST — after diagnosis, code immediately 2. Depersonalize — no names, project names, or absolute paths 3. Use `__VAR__` markers for anything the user must replace 4. One Verification command, result visible in <30 sec 5. Fallback — 1-2 options max, always include When/Risks 6. Context at End — WHY is optional reading for curious agents
    ConnectorNo auth
  • Mint a one-shot signed upload URL for a product you own. Authenticated. OAuth (scope `products:write`) preferred; `api_key` fallback. Use this when you have **local image bytes** (a file the user attached, bytes you generated/downloaded in your sandbox) and you want to attach them to a product that already exists. Common cases: - `create_product` returned 409 (duplicate name) — the listing already exists; this tool gives you an upload URL for it without creating anything new. - You're adding a 2nd, 3rd, … photo to a product. The returned URL is valid for ~15 min, single product, signed with your authenticated identity. From your sandbox, do **one PUT**: requests.put(result["upload_url"], data=open("/path/to/photo.jpg", "rb").read(), headers={"Content-Type": "image/jpeg"}) No auth header on that PUT — the URL is the credential. If you have a public URL (not local bytes), use `upload_product_image(product_id, image_url=...)` instead. Args: product_id: Product to attach the future image to. You must own it. api_key: Optional API key (`pk_*`, generate at /account). Used when there is no OAuth token, and also when the OAuth token lacks the required scope — an explicitly passed key overrides an ambient token that is scoped too narrowly. An invalid or revoked token still fails regardless. Omit when using OAuth. Returns: ``{"upload_url": str, "upload_expires_in": int}``, or ``{"error": ...}`` on auth/ownership failure.
    ConnectorNo auth
  • Assess whether an ENS name's sale(s) are WASH TRADING / fake / self-dealt / manipulated volume. THE tool for any "is this wash trading?", "is the sale history of X suspicious/fake/real?", "are these trades legit?", "is someone wash-trading this name?" question — route straight here, do NOT use get_name_details or get_market_activity for that (those return sale rows but make NO wash-trading judgment; only this tool scores it). Just pass `label` — the bare ENS name (e.g. "437", "coffee") is enough; the tool pulls that name's recent sale and analyzes it on demand. `tx_hash`, `buyer`, `seller`, `price_eth` are OPTIONAL enrichment for a specific sale — never block on them or ask the user for them. Returns a wash confidence score (0-1), a label (clean/suspicious/likely_wash), the detected signals (shared-funder, mint-flip, round-trip, fresh-wallet, cluster overlap…), seller profile, and a plain-English summary. A verdict is always ABOUT A SPECIFIC SALE — `sale_analyzed` names it, and `buyer`/`seller` are the parties scored. If the response has `assessable: false` there is NO score and NO verdict: the name has no analyzable sale on record, or the lookup failed. Report that the name could not be assessed and say why. Do NOT describe it as clean, low-risk, or free of red flags, and do NOT describe unrun checks (funding, cluster, round-trip) as having come back negative.
    ConnectorNo auth
  • Verify any prior transaction signature on demand (FREE read). Post-trade verification (harness spec R13): awaits on-chain confirmation of ``tx_signature`` at ``commitment`` level (up to ``timeout_s``) and, when a state hint is supplied, re-reads the relevant state to compare against what was expected: - ``mint`` (+ ``wallet_address``): re-reads that SPL/SOL token balance. - ``market`` (+ ``wallet_address``): re-reads the Drift perp position. - ``protocol`` (+ ``wallet_address``, optional ``market`` / ``marginfi_account``): re-reads the lending obligation health. Returns ``{confirmed, slot, commitment, post_state, expected_vs_actual, retry_guidance}``. ``confirmed`` is False (never True) on a timeout -- NEVER treat an unconfirmed/timed-out result as success; ``retry_guidance`` names the next step. Use this after signing + broadcasting a transaction yourself (place_perp_order, lend_deposit/borrow/repay, and every other unsigned-tx tool never broadcast server-side) to confirm it actually landed before treating the position/balance as changed.
    ConnectorNo auth
  • Configure this share — its name and its **appearance** — fields you don't pass stay as they are (server-side partial merge). - `label`: the name at the top of the chat page, and the browser tab's title. **Renaming a share is this call**; you never need to create a replacement and delete the old one. That would mint a new token, so the link already embedded in the client's site would stop working — the visible name and the address are not the same thing. - `theme_color`: the brand colour, `#RGB` or `#RRGGBB`. **This one colour is all you give** — its foregrounds are derived on save. - `highlight_color`: **only if the brand actually has a second colour.** Most don't; leave it out and nothing changes anywhere. When set, it is used where something should be visible without competing with the primary action: the second series in a chart, and citation markers. Buttons, the current storyline step and user bubbles stay on `theme_color` — two colours fighting over the same element is how a two-colour palette goes wrong. Foregrounds are derived from it the same way. Text/foreground colours are derived server-side to WCAG contrast and stored (a light brand colour automatically gets dark text instead of white) — **do not compute a palette yourself and do not try to set text colours**; they would be overridden. - `logo_url`: absolute URL. The header scales by height, any aspect ratio fits; **the collapsed launcher bubble is square**, so only near-square images (aspect 0.74–1.35) are used on the bubble — a wide wordmark falls back to the platform icon there. Want your mark in both places? Provide a square variant too. - `input_mode`: `text` (text box, default) or `voice` (opens in push-to-talk). Requires the platform's voice backend. - `launcher`: hover tooltip text for the bubble. `theme`: `light` / `dark` / empty = follow the visitor. - `custom_css`: the escape hatch for strict brand guidelines — the injected stylesheet can override our CSS variables (`--acc` / `--acc-fg` / `--acc-text-l` / `--acc-text-d` / `--bg` / `--surface` / `--text` / `--border`); write light values under `:root{…}` and dark under `html[data-theme="dark"]{…}`. **Prefer theme_color**: it carries a readability guarantee, with custom_css the contrast is on you. Get the token from `list_shares` first. Full examples in the Cookbook's configure-branding.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Provision a peer and return its WireGuard configuration. Three routing modes, and the right one depends on the machine. source (the default) sends only traffic from the leased address through us and leaves the default route alone — but it is written with wg-quick PostUp rules that invoke `ip`, so it runs on Linux under wg-quick and nowhere else. On macOS it aborts and deletes the interface. full works in every client but claims the default route, so it cannot run beside an always-on corporate VPN. destinations routes only the addresses you name. It needs no PostUp and takes no default route, so it runs in any client on any platform, and it matches what is usually being bought — one partner seeing a fixed address. It survives beside a VPN that installs a default route, but not one that captures traffic below the routing table. It cannot receive inbound connections from anywhere but those destinations.
    ConnectorNo auth
  • Soft-delete one of your pieces by id: it leaves every public surface (its article page, the directory, search, your creator feed) and stops being payable, and there is no undelete tool. If you only want it off the market for now, set `status` to "draft" with update_essay instead — that is reversible, this is not. Idempotent: deleting a piece you already deleted succeeds again rather than 404ing; only an id that is missing or not yours is 404 post_not_found. Returns 204 with no body, so there is nothing to read back. Pass a SIGN-IN-WITH-X header value you signed locally, and mint a FRESH one for this call: the write routes burn each nonce once.
    Connector
    Destructive
    No auth
  • Mint a single-use upload URL for pushing a conversation-attached PDF to Bankstatemently before converting it. Use this ONLY when you have no other way to reference the attached file (no pdf_file/pdf_url equivalent for this host) — e.g. a code-execution sandbox that can see the file on disk but has no URL for it. Playbook: (1) check your sandbox's uploads/attachments directory first — if the file isn't there yet, the mount can lag behind the conversation; ask the user to re-attach or wait a moment and check again before calling this tool. (2) Call request_upload to get upload_url and upload_id. (3) PUT the raw PDF bytes to upload_url with header Content-Type: application/pdf, e.g.: `curl -X PUT "<upload_url>" -H "Content-Type: application/pdf" --data-binary @<path-to-file>`. (4) Once the PUT succeeds, call convert_statement with upload_id set to the same value — never pdf/pdf_url/pdf_file for this flow. The URL and token are single-use and expire quickly; call request_upload again for a fresh one if the PUT fails partway through — never retry a failed PUT against the same URL. If the PUT fails with a network error or a "host not allowed"-style denial, the sandbox is likely blocking outbound requests to api.bankstatemently.com — tell the user to add api.bankstatemently.com to their host's code-execution allowed-domains setting (on claude.ai: Settings → Capabilities → Code execution) and retry. To convert several statements at once, pass count (1-100) instead of calling this tool once per file: the response returns "uploads", an array of that many { upload_id, upload_url } pairs — PUT each file to its own upload_url, then make ONE convert_statement call with upload_ids set to every upload_id. Free to use — no credits consumed (conversion itself still costs credits, same as any other convert_statement call).
    ConnectorNo auth
  • Use this when the user asks to inspect listening ports on a paired computer to diagnose local services, unexpected exposure or port conflicts. Reads the OS TCP listener inventory on Windows and macOS, and TCP/UDP listeners on Linux; process details depend on OS permissions. It does not connect to ports, scan remote hosts or change firewall rules.
    ConnectorOAuth
  • Verify an actor's reputation OR a single attestation's on-chain anchoring. PAID: $0.005 USDC per query. Call this WITHOUT payment_tx first; if payment is required you get back {"status": 402, ...} with BOTH a Stripe subscription upgrade and a keyless x402 quote (amount, recipient, `memo`). Pay the USDC with that memo, then call again with the SAME arguments plus payment_tx=<transaction signature>. (Attestation — mint_attest — is free.)
    ConnectorNo auth
  • Pro/Teams: first-pass doctrine review of agentic code/workflow against the 10-principle AI Design Blueprint doctrine. ON CLIENT TIMEOUT: DO NOT RETRY THIS TOOL. Long-running LLM call (60-180s typical); MCP clients commonly close the call before the server returns. Retrying re-runs the 60-180s LLM call from scratch and burns compute. RECOVERY: the run_id is emitted in the FIRST notifications/progress event at t=0s (before the LLM call begins), capture it. On timeout, call `me.validation_history(run_id='<that-id>')` to fetch the persisted result; the server-side run completes independently within a 6-minute budget. Edge case: if the connection closed before the first progress notification (very rare; sub-second window), call `me.validation_history(repository='<same value you passed here>')` to find your most recent run. TASK-AUGMENTED INVOCATION (MCP 2025-11-25, SEP-1686): clients that advertise the `tasks` capability can task-augment this call by including `task: {ttl: <ms>}` inside the JSON-RPC request's `params` (NOT as a tool argument; alongside `arguments`, `_meta`, etc.). The server returns a `CreateTaskResult` immediately (taskId equals the run_id above) and runs the validation in the background. Spec-correct long-running pattern: poll via `tasks/get` for state, fetch the terminal payload via `tasks/result`, listen for `notifications/tasks/status` for push updates, and cancel via `tasks/cancel`. `_meta.progressToken` from the original request stays valid for the entire task lifetime. Sync (non-augmented) calls behave exactly as before, backwards-compatible by construction. The me.validation_history(run_id=...) recovery path remains the canonical recovery handle for clients that don't yet advertise the tasks capability. Returns code_classification (autonomous_agentic_workflow vs non_agentic_component), per-principle findings (verdict, severity_score 0-100, severity_class, code-cited evidence, recommendation), severity-weighted readiness (score|null, grade|null, tier ∈ {production_ready, emerging, draft, not_applicable}), recommended examples, reproducibility envelope (model, seed, doctrine_fingerprint, prompt_template_fingerprint), persistence_status with shareable run_id/badge_url/review_url. Those two URLs 404 until the run's owner publishes it: runs are private by default. Read `public_review` in the response before embedding either one. WHEN TO CALL: the user wants a governance audit, readiness score, or production_ready badge on an agent/workflow they just built or changed. WHEN NOT TO CALL: non-agentic plumbing (math utilities, type aliases, event-loop helpers, single-shot request/response handlers) returns tier=not_applicable with score=null/grade=null, that's not a failure, the doctrine simply doesn't grade non-agentic code, and architect.certify will refuse with not_agentic_component. Submit the OWNING agentic workflow instead. BEHAVIOR: long-running LLM call (~60-180s typical at high reasoning effort, single-pass; server-side budget 6 min). Mints run_id at t=0; first notifications/progress event carries run_id as recovery handle; keepalive every 30s. Persists ValidationRun + UserValidationRun + AIValidationRunLog + LLMUsageLog atomically; on rollback, badge/review URLs are stripped. Auth: sign-in required, with an active Pro, Pro Plus, Teams, Enterprise, beta, or trial plan. Data at rest in the UK; OpenAI (US) processing (no-training); prompt-injection in code is inert. INPUTS: send FULL file contents verbatim as `implementation_context` (NO truncation, NO `...` placeholders, NO comment removal, the architect treats your `...` as literal code and hallucinates bugs that don't exist). If too large, split into MULTIPLE calls scoped by file/module; never truncate one call. When one call carries several files, keep each file whole, its own import lines included: merging files under one shared import block reads as code that uses names it never imported, and is reported as a defect. Pass repository="<name>" to group runs into a project trend. Pass private_session=true to skip the stored run (persistence + recovery disabled); operational security + cost logs are still kept. focus_area narrows scope; unmatched focus_area fails explicitly rather than silently widening. PAYLOAD COMPLETENESS (load-bearing if you intend to architect.certify this run): the validate first-pass is permissive, it scores on doctrine alignment + structural patterns visible in the submitted code. Cert's adversarial second-pass is rigorous: it scores on cert-payload-completeness as well as code correctness. A run that scores 100/A at validate can cert-reject pre-LLM with `payload_incomplete` when imported modules' surfaces aren't visible. To validate with INTENT TO CERT, also bundle verbatim public-surface stubs for every imported module: `from sqlalchemy.exc import SQLAlchemyError` → include a stub class; `from app.db import models` → include a `class models:` namespace stub with the columns/methods the code references; module-level imports of `dataclass`, `Literal`, `json`, `datetime`, `timezone` MUST also be in the payload (cert correctly catches when they're omitted, the module would NameError on import as submitted). 'Submit Like Production': the payload should be the code as it would actually run. TWO COMPLETENESS AXES. (1) IMPORTS: stub the public surface of every dependency (above). (2) ENFORCEMENT BRANCHES: the code under cert itself (approval gates, policy checks, recovery paths) must be the REAL logic, fully written. A placeholder body (`# ... execute approved action ...`, `pass # TODO`, a bare `...`) is graded as a MISSING control, not shorthand; cert scores what would actually run. Never sketch the agent you are certifying. Empirically reconfirmed PR #157 iter8 → iter9 cert downgrades. SCORE VARIANCE DISCLOSURE (anomaly #10: empirically documented): validate scores are POINT ESTIMATES with an observed empirical variance band of ~20-67 pts on BYTE-IDENTICAL input. Runs against the same repository, same code, same deterministic seed (the seed is derived from input: same input → same seed) can produce materially different scores AND different top-blocker rankings, because OpenAI's reasoning models at reasoning_effort=high are not strictly deterministic even with the seed parameter pinned. The `reproducibility_mode='best_effort'` field on every response is the platform's honest disclosure of this property. For decisions where stability matters more than speed, call `architect.validate_consensus` (N=3-5 aggregated, median verdict + per-principle stability metrics) instead: collapses the variance, surfaces unstable principles explicitly. A single validate run is a single roll; consensus is the right tool when one score isn't enough. ITERATION LOOP: repository keying. Pass the SAME `repository` value across calls to chain iteration rounds; the validator auto-resolves the most recent prior run on (user, repository, scope) as `prior_run_baseline` and the LLM grades the new submission with iteration context (per-principle severity deltas surface in the response). Changing the `repository` string between calls, even subtly with an `iter-2` suffix, silently severs the chain and yields a fresh blind first-shot. Round numbering belongs in `task` or commit messages, never in `repository`. See the `architect-validation-orchestration` skill in the agent-asset pack for the full validate → consensus → certify sequence. VERIFICATION LAYERS (the two-layer doctrine this platform practices on itself): validate verifies DOCTRINE ALIGNMENT against the 10-principle Blueprint, design patterns, hand-off explicitness, operational-state inspectability, race/blocker handling at the architectural level. validate does NOT guarantee runtime correctness. cert verifies PAYLOAD COMPLETENESS and runs an adversarial second pass over the submitted code: catches production_blockers the first pass missed, name-errors on import, missing module surfaces, etc. cert does NOT verify runtime correctness either. Passing validate is a NECESSARY condition for production_ready, not a sufficient one. Runtime correctness (does this actually execute and behave?) is verified at the THIRD layer: your tests, types, walks. The platform's own recursive-integrity practice: every PR runs validate against its own primitives, then cert. Real bugs surfaced via this practice in PR #157, NULL-UUID false-positive (iter3) and tie-breaker mismatch (iter5), that 25 unit tests had missed. Two-layer verification is the discipline, not 'either/or'. TYPED FAILURES (the top-level error.code; error.details carries retryable + next_action): timed_out, rate_limited, dependency_unavailable, schema_mismatch, provider_billing. NEXT STEP: if tier=production_ready (A or B grade), the response carries certification_status='not_evaluated', call architect.certify(run_id, code) to mint the certified production_ready badge (separate ~60-150s adversarial review, eligibility-gated). See Payload Completeness above for the common pre-cert pitfall.
    ConnectorNo auth
  • Query raw EVM logs with address/topic filters, common event aliases, earliest/latest scanning, and optional inline decoding. COMMON USER ASKS: - Recent USDC Transfer logs - First recent USDC Transfer log - Latest ERC721/pass mint ID and tx hash FIRST CHOICE FOR: - NFT or ERC721 mint lookups such as latest pass minted, token ID, and mint transaction hash - contract event questions where the user needs exact event evidence rather than wallet or transaction summaries WHEN TO USE: - You need event logs filtered by contract or topic signature. - You want decoded log hints while still keeping the raw log shape available. - You want the first or last matching event in a bounded block/time window. - You want common event names such as transfer, approval, swap, mint, or burn instead of remembering topic0 hashes. - You need the latest ERC721/pass mint in a bounded deployment/recent window: filter Transfer events with topic1 as the zero address, use scan_order=latest, limit=1, and decode=true to expose decoded_log.decoded.token_id plus transaction_hash. DON'T USE: - You only want token transfers, which are easier with the token-transfer tool. EXAMPLES: - Recent USDC Transfer logs: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"event":"transfer","limit":20} - First recent USDC Transfer log: {"network":"base-mainnet","timeframe":"1h","token_symbols":["USDC"],"event":"transfer","scan_order":"earliest","limit":1} - Latest ERC721/pass mint ID and tx hash: {"network":"base-mainnet","from_block":46020000,"to_block":46100000,"addresses":["0xE4E70FdF2Fc1147a7f35c4c5de88E6BeA63eeAfA"],"event":"transfer","topic1":["0x0000000000000000000000000000000000000000000000000000000000000000"],"scan_order":"latest","decode":true,"include_transaction":true,"limit":1} - Decode logs inline: {"network":"ethereum-mainnet","timeframe":"1h","topic0":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],"decode":true,"limit":10}
    ConnectorNo auth
  • Mint a PROJECT-scoped management token (`er_mcp_`) for MCP and REST; it cannot authenticate relay traffic. Use it after create_project to configure a fresh project, or for any project you already own. Attenuated by design: the scopes must be a subset of THIS management token's own grant (`read` is always included), expiry is mandatory (1–90 days, default 30, never "never"), and the minted management token (being project-scoped) can never mint management tokens itself. `spend` is human-granted only: no management token, of any scope, can mint one carrying it. Mint a spend-scoped token from the project's panel instead. Requires an ACCOUNT-scoped management token and the `config` scope. Returns the plaintext exactly once; only its hash is stored.
    ConnectorNo auth
  • Perform a Linux package vulnerability audit using SecDB. ## What this tool does Analyzes the installed packages of a Linux system-identified by OS and OS version-and returns vulnerability information plus a Markdown summary. The audit results are based exclusively on the package list provided by the user. ## When to use this tool Use this tool when the user wants to determine: - whether installed packages contain known vulnerabilities - whether a host, VM, container, or base image is affected by security advisories - which packages require patching or upgrading If the user does not know the valid values for `os` or `version`, first call the `linux_os` tool to retrieve the exact supported combinations. ## Inputs - **os**: Linux distribution identifier supported by SecDB (use `linux_os` to obtain allowed values). - **version**: OS version or codename corresponding to the selected distribution, exactly as returned by `linux_os` (for example `focal`, not `20.04`). Any other value is rejected with the list of supported values. - **packages**: list of installed packages, **one per line**, generated using the appropriate system command: ### For RPM-based distributions (RHEL, CentOS, Rocky, Alma, SUSE) rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' ### For DEB-based distributions (Ubuntu, Debian) dpkg-query -W -f='${Package} ${Version} ${Architecture}\n' ### For Alpine Linux apk list -I ### For Slackware ls -1 /var/log/packages/ The raw output of these commands can be passed directly as the `packages` input (one package per line). ... python3 3.12.3-0ubuntu2.1 amd64 systemd 255.4-1ubuntu8.10 amd64 tmux 3.4-1ubuntu0.1 amd64 ... ## Outputs - **report**: structured objects describing the advisories affecting the audited packages. Packages without known vulnerabilities are not listed. - **summary**: Markdown summary including vulnerable packages, total CVEs, and severity breakdown. ## LLM usage guidelines - Never guess whether a package is vulnerable-always call this tool for Linux audits. - If `os` or `version` is unclear or missing, call `linux_os` and ask the user to choose a valid combination. - Normalize the package list to “one entry per line” if the user provides unstructured output. - The `summary` is already Markdown and can be shown directly. - Use `report` when deeper technical analysis is required.
    ConnectorNo auth
  • Pro/Teams: first-pass doctrine review of agentic code/workflow against the 10-principle AI Design Blueprint doctrine. ON CLIENT TIMEOUT: DO NOT RETRY THIS TOOL. Long-running LLM call (60-180s typical); MCP clients commonly close the call before the server returns. Retrying re-runs the 60-180s LLM call from scratch and burns compute. RECOVERY: the run_id is emitted in the FIRST notifications/progress event at t=0s (before the LLM call begins), capture it. On timeout, call `me.validation_history(run_id='<that-id>')` to fetch the persisted result; the server-side run completes independently within a 6-minute budget. Edge case: if the connection closed before the first progress notification (very rare; sub-second window), call `me.validation_history(repository='<same value you passed here>')` to find your most recent run. TASK-AUGMENTED INVOCATION (MCP 2025-11-25, SEP-1686): clients that advertise the `tasks` capability can task-augment this call by including `task: {ttl: <ms>}` inside the JSON-RPC request's `params` (NOT as a tool argument; alongside `arguments`, `_meta`, etc.). The server returns a `CreateTaskResult` immediately (taskId equals the run_id above) and runs the validation in the background. Spec-correct long-running pattern: poll via `tasks/get` for state, fetch the terminal payload via `tasks/result`, listen for `notifications/tasks/status` for push updates, and cancel via `tasks/cancel`. `_meta.progressToken` from the original request stays valid for the entire task lifetime. Sync (non-augmented) calls behave exactly as before, backwards-compatible by construction. The me.validation_history(run_id=...) recovery path remains the canonical recovery handle for clients that don't yet advertise the tasks capability. Returns code_classification (autonomous_agentic_workflow vs non_agentic_component), per-principle findings (verdict, severity_score 0-100, severity_class, code-cited evidence, recommendation), severity-weighted readiness (score|null, grade|null, tier ∈ {production_ready, emerging, draft, not_applicable}), recommended examples, reproducibility envelope (model, seed, doctrine_fingerprint, prompt_template_fingerprint), persistence_status with shareable run_id/badge_url/review_url. Those two URLs 404 until the run's owner publishes it: runs are private by default. Read `public_review` in the response before embedding either one. WHEN TO CALL: the user wants a governance audit, readiness score, or production_ready badge on an agent/workflow they just built or changed. WHEN NOT TO CALL: non-agentic plumbing (math utilities, type aliases, event-loop helpers, single-shot request/response handlers) returns tier=not_applicable with score=null/grade=null, that's not a failure, the doctrine simply doesn't grade non-agentic code, and architect.certify will refuse with not_agentic_component. Submit the OWNING agentic workflow instead. BEHAVIOR: long-running LLM call (~60-180s typical at high reasoning effort, single-pass; server-side budget 6 min). Mints run_id at t=0; first notifications/progress event carries run_id as recovery handle; keepalive every 30s. Persists ValidationRun + UserValidationRun + AIValidationRunLog + LLMUsageLog atomically; on rollback, badge/review URLs are stripped. Auth: sign-in required, with an active Pro, Pro Plus, Teams, Enterprise, beta, or trial plan. Data at rest in the UK; OpenAI (US) processing (no-training); prompt-injection in code is inert. INPUTS: send FULL file contents verbatim as `implementation_context` (NO truncation, NO `...` placeholders, NO comment removal, the architect treats your `...` as literal code and hallucinates bugs that don't exist). If too large, split into MULTIPLE calls scoped by file/module; never truncate one call. When one call carries several files, keep each file whole, its own import lines included: merging files under one shared import block reads as code that uses names it never imported, and is reported as a defect. Pass repository="<name>" to group runs into a project trend. Pass private_session=true to skip the stored run (persistence + recovery disabled); operational security + cost logs are still kept. focus_area narrows scope; unmatched focus_area fails explicitly rather than silently widening. PAYLOAD COMPLETENESS (load-bearing if you intend to architect.certify this run): the validate first-pass is permissive, it scores on doctrine alignment + structural patterns visible in the submitted code. Cert's adversarial second-pass is rigorous: it scores on cert-payload-completeness as well as code correctness. A run that scores 100/A at validate can cert-reject pre-LLM with `payload_incomplete` when imported modules' surfaces aren't visible. To validate with INTENT TO CERT, also bundle verbatim public-surface stubs for every imported module: `from sqlalchemy.exc import SQLAlchemyError` → include a stub class; `from app.db import models` → include a `class models:` namespace stub with the columns/methods the code references; module-level imports of `dataclass`, `Literal`, `json`, `datetime`, `timezone` MUST also be in the payload (cert correctly catches when they're omitted, the module would NameError on import as submitted). 'Submit Like Production': the payload should be the code as it would actually run. TWO COMPLETENESS AXES. (1) IMPORTS: stub the public surface of every dependency (above). (2) ENFORCEMENT BRANCHES: the code under cert itself (approval gates, policy checks, recovery paths) must be the REAL logic, fully written. A placeholder body (`# ... execute approved action ...`, `pass # TODO`, a bare `...`) is graded as a MISSING control, not shorthand; cert scores what would actually run. Never sketch the agent you are certifying. Empirically reconfirmed PR #157 iter8 → iter9 cert downgrades. SCORE VARIANCE DISCLOSURE (anomaly #10: empirically documented): validate scores are POINT ESTIMATES with an observed empirical variance band of ~20-67 pts on BYTE-IDENTICAL input. Runs against the same repository, same code, same deterministic seed (the seed is derived from input: same input → same seed) can produce materially different scores AND different top-blocker rankings, because OpenAI's reasoning models at reasoning_effort=high are not strictly deterministic even with the seed parameter pinned. The `reproducibility_mode='best_effort'` field on every response is the platform's honest disclosure of this property. For decisions where stability matters more than speed, call `architect.validate_consensus` (N=3-5 aggregated, median verdict + per-principle stability metrics) instead: collapses the variance, surfaces unstable principles explicitly. A single validate run is a single roll; consensus is the right tool when one score isn't enough. ITERATION LOOP: repository keying. Pass the SAME `repository` value across calls to chain iteration rounds; the validator auto-resolves the most recent prior run on (user, repository, scope) as `prior_run_baseline` and the LLM grades the new submission with iteration context (per-principle severity deltas surface in the response). Changing the `repository` string between calls, even subtly with an `iter-2` suffix, silently severs the chain and yields a fresh blind first-shot. Round numbering belongs in `task` or commit messages, never in `repository`. See the `architect-validation-orchestration` skill in the agent-asset pack for the full validate → consensus → certify sequence. VERIFICATION LAYERS (the two-layer doctrine this platform practices on itself): validate verifies DOCTRINE ALIGNMENT against the 10-principle Blueprint, design patterns, hand-off explicitness, operational-state inspectability, race/blocker handling at the architectural level. validate does NOT guarantee runtime correctness. cert verifies PAYLOAD COMPLETENESS and runs an adversarial second pass over the submitted code: catches production_blockers the first pass missed, name-errors on import, missing module surfaces, etc. cert does NOT verify runtime correctness either. Passing validate is a NECESSARY condition for production_ready, not a sufficient one. Runtime correctness (does this actually execute and behave?) is verified at the THIRD layer: your tests, types, walks. The platform's own recursive-integrity practice: every PR runs validate against its own primitives, then cert. Real bugs surfaced via this practice in PR #157, NULL-UUID false-positive (iter3) and tie-breaker mismatch (iter5), that 25 unit tests had missed. Two-layer verification is the discipline, not 'either/or'. TYPED FAILURES (the top-level error.code; error.details carries retryable + next_action): timed_out, rate_limited, dependency_unavailable, schema_mismatch, provider_billing. NEXT STEP: if tier=production_ready (A or B grade), the response carries certification_status='not_evaluated', call architect.certify(run_id, code) to mint the certified production_ready badge (separate ~60-150s adversarial review, eligibility-gated). See Payload Completeness above for the common pre-cert pitfall.
    ConnectorNo auth
  • Get rich recent airings and current queue evidence for a PoolParty channel. Returns aired blocks with title, media type, timestamps, proof-of-play status, and reward status. Also returns current queue positions with mintStatus and poolEligibility so agents can distinguish pre-mint, mint-pending, minted, pool-eligible, and ineligible blocks. get_channel_feed is a rich feed and may be large. Use it for diagnostic recent airing and queue evidence, mintStatus, poolEligibility, proof, and reward readbacks. For first-pass channel awareness, use get_channel_stream(channelSlug="main", limit=10) or the REST /api/channels/main/activity snapshot; use /api/channels/main/activity/stream when an SSE watch is intended. Read-only. No auth required.
    ConnectorNo auth
  • Use this tool to issue a free FLINT Agent Passport: a hybrid-signed, verifiable identity credential for an autonomous agent. Before calling it, ask the principal for the accountable controller_id and controller_type, allowed actions, maximum transaction amount, and wallet address if one exists. Do not infer or invent authority. For the strongest available setup, authenticate first and mint with the principal-supplied identity and mandate. The zero-config path only needs agent.agent_name or agent.agent_id, but that result is identity-only and is not ready to transact until the missing authority is supplied. A missing controller requires a corrected remint because signed identity is immutable; a missing mandate can be added later. The passport signs identity only; the spending mandate is separate, mutable config that can be updated later without reissuing the passport. Pass session_token, from auth_verify_otp, to mint owned: the passport binds to your authenticated account immediately and there is no claim step or claim_url. Omit session_token to mint anonymously instead; that returns a one-time claim_url and the passport stays unclaimed until someone signs in and claims it. controller_id identifies who is accountable on the signed identity, which is not the same as the FLINT account that owns the passport; controller_name is a separate, optional, human-readable display label. Allowed actions must come from the FLINT mandate vocabulary: commerce_purchase, checkout.purchase, invoice.pay, subscription.renew, refund.request, quote.retrieve, x402_verification_purchase, stablecoin_transfer, paid_api_access, x402_request, agent_checkout, delegated_spending, project.read. Pass ["ALL"] as a preset to grant every action in one step; the stored mandate then expands to the full list and records the preset. Unknown strings are kept for backward compatibility but are reported back as unknown so the caller can fix them. The signed identity is immutable once minted, so a wrong agent_id, controller_id, or controller_type cannot be edited in place. Fix it by reminting with the corrected fields. A remint that reuses the same agent_id and controller_id supersedes a prior UNCLAIMED passport for that pair ONLY when this mint is authorized: either session_token proves the same controller (controller_assurance verified or command), or supersede_management_token matches that specific prior passport's own management token (the raw claim token from its claim_url). Without either, the prior is left alone, still indexed, and reported back as related_passports with a warning, so a stranger cannot anonymously remint someone else's controller_id and agent_id to burn their pending claim. A prior CLAIMED passport is never superseded automatically; it is listed back as existing_claimed_passports with a warning so you can review it by hand. Returns a public, resolvable passport URL and, when minted anonymously, a one-time claim link.
    ConnectorNo auth
  • Pair and use an EVM and/or Solana wallet via WalletConnect v2. **No authentication required** — available to every user (including unauthenticated/anonymous). Non-custodial: the server never holds keys and the user approves every signature/transaction in their own wallet. **Pairing proposal** is controlled per request via optional `pairingTarget` on `action: "connect"`: `eth` (default, eip155 only), `solana`, or `both`. Many mobile wallets fail if eip155 and solana are proposed together; prefer `eth` or `solana` unless the user needs both in one session. **Every call must include `action`** (string). **Connect QR (critical for assistants):** On `action: "connect"`, successful responses return **(1) an MCP `type: "image"` PNG** of the pairing QR (render this even if the host has no `resources/read`), then **(2) optional `resource_link`**, then **(3) text JSON** with `pairingQrResourceUri`, `presentation`, `nextSteps`, `url`, optional `mobileDeeplinks`, etc. **Desktop / scan UX:** show the image content block first. **Mobile / no-camera:** follow `nextSteps`; when present, `mobileDeeplinks` lists HTTPS `url` (+ `nativeUrl`) per curated WalletConnect wallet. Raw `wc:` (`url` / `walletConnectLinkForUser`) remains fallback. **Avoid calling `connect` again while pairing is still in progress** unless the user must reset — pass `walletSessionToken` to resume the same pairing after MCP session rotation. **Flow:** (1) `connect` as above. (2) User approves in the wallet (EVM only, Solana only, or both). (3) `status` until `kind` is `session` — optional `evm` / `solana` blocks; `address`/`chains` remain legacy EVM when EVM is connected. (4) `sign` / `send_transaction` or swap `execute=true` (swap execute remains EVM unless extended elsewhere). `kind: "pending"` on `status` is success — keep polling. **Actions (exact JSON shapes):** - **connect** — `{ "action": "connect", "sessionTtlDays"?: number, "pairingTarget"?: "eth" | "solana" | "both", "walletSessionToken"?: string }` - **status** — `{ "action": "status" }` (anonymous sessions include a `terms` block showing the connected wallet's 1inch Terms-of-Use acceptance state) - **sign** — EVM: `personal_sign` / `eth_signTypedData_v4`. Solana: `solana_signMessage` / `solana_signTransaction` (see schema fields `params`, `chainId`, `solanaChainId`). - **send_transaction** — EVM: `tx.to`, numeric `tx.chainId`. Solana: string `tx.chainId` (`solana:...`), `tx.serializedTransaction` (base64). Set `tx.namespace` when both WC namespaces are active and the payload is ambiguous. - **accept_terms** — `{ "action": "accept_terms", "address"?: "0x…" }`. When the user has not accepted yet: **write to the user** that they must sign the 1inch Terms of Use in their wallet (one-time, gas-free personal_sign), **then immediately call this action in the same turn** so the signature prompt appears. You trigger the signing — do not only instruct them to sign. Required before anonymous aqua create_position / close_position. Idempotent — already-accepted wallets return immediately without a prompt. - **disconnect** — `{ "action": "disconnect" }` **Anonymous durable sessions:** for unauthenticated callers, pairing `connect` (QR) returns a `walletSessionToken`. Store it and pass it back as `walletSessionToken` on later `status` / `sign` / `send_transaction` / `accept_terms` / `disconnect` **and** on a later `connect` to resume the same pairing after MCP session rotation. A tokenless `connect` that resumes an already-approved session does **not** mint a new token — within this MCP session, `status` / `sign` still work via `anon:{sessionId}`. Authenticated callers ignore the token (their WC session is scoped by org/app). Non-custodial relay; no authentication required.
    Connector
    Destructive
    No auth
  • Combined regime + risk-guard calculation for a strategy on an asset (read-only). Folds the detected market regime together with the safe-default risk guards (position / exposure / single-loss / drawdown / daily-loss limits) into one deterministic output: a rules-based direction, a conviction-weighted position size already capped to the position guard (in both percent-of-equity and USD notional against ``equity``), a per-regime action note, and the full guard set. strategy_type is one of the 16 Crank strategy types; asset is a token mint; timeframe one of 1m/5m/15m/1h/4h/1d. A mechanical, non-personalised calculation you choose whether to act on (DYOR) -- not financial advice, not a recommendation, and not a managed account. No wallet, no fee. Workflow: RISK step -- after backtest_strategy, before execution. The returned suggested_size_usd caps the order in the execute phase; do NOT exceed it. Check asset_classification first (equity -> per-execution confirm). See get_trading_workflow.
    ConnectorNo auth
  • The ten UK level crossings with the most predicted road-closed time today. Takes no arguments. Each line gives the rank, crossing name, predicted minutes closed across the whole day, and a status URL ending .md. The ranking is computed from today's timetable once per day, shortly after UK midnight, and the build timestamp is included in the reply — it is a whole-day total, not a live reading, so use crossing_status for what a barrier is doing now. Briefly unavailable right after a restart while the first build runs.
    ConnectorNo auth