MCP servers › io.github.GeroPalombo › swipium
MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23
io.github.GeroPalombo/swipium
Mobile QA on local Android Emulators and iOS Simulators: autopilot tests, evidence, reports. — the publisher's description
Summary
io.github.GeroPalombo/swipium is a local MCP server listed in the official MCP registry at version 2.3.5. On 2026-10-23 ProtocolProbe started its published package in an isolated sandbox in read-only mode and read its inventory: 55 tools, 1 resource and 7 prompts.
Record checks
- met: Registry entry is active and says how to run it
- met: Source repository link opens
- met: Repository is not archived
- met: Code pushed to the repository in the 90 days before our check
- met: Repository publishes a security policy (SECURITY.md)
- met: Package names its licence with a standard (SPDX) identifier
- met: The version the registry lists can be installed and is not withdrawn
- met: npm package carries build provenance (attestation)
- met: No known critical or high advisory in the package or its dependencies
- #3,853 of 15,115 packages by monthly downloads, tied with 3 others
- Not ranked by stars: 0 stars (ranked from 10)
- #398 of 809 packages meeting all 9 record checks, by downloads, tied with 1 other
From public records, not a safety rating. Each check with its reason · Is it safe to install?
Key facts
- Runs
- local package
- Transport
- standard input/output
- Package
- npm · listed version current
- License
- MIT
- Dependencies
- no known high or critical advisories
- Repository
- public
- Tools
- 55
- Described as changing data
- 36 of 55 toolsAI-classified
- Mainly works on
- files and code on the machine it runs on; a web browser or desktop applicationsAI-classified
- Topic
- developer-toolsAI-classified
- Last tested
- 2026-10-23
Worth knowing before you connect it
- 36 tools are described as changing something (qa_start_session, qa_prepare_target, qa_ios, …): our AI model's reading of the descriptions, not something we tested. We did not call them.
- Its package is signed and carries a build record naming its source.
Each line comes from a section below, with its source and date.
How fresh this is
- Live-tested
- yes, a real session (not a text-only review)
- Last tested
- 2026-10-23
- Mode
- read-only (no tool calls)
- Latest version
- 2.3.5, published 2026-10-19 (registry, as of the 2026-10-23 snapshot)
- First listed version
- 2026-10-12 (earliest version still in the registry; older removed versions would be earlier)
- Version history
- 2 versions listed, 2026-10-12 to 2026-10-19; 2 in the 90 days before the 2026-10-23 snapshot.(versions still listed in the registry only)
Most recent 2 versions
2.3.5· 2026-10-192.3.0· 2026-10-12
- Registry data
- snapshot 2026-10-23
- Package and repository
- checked 2026-10-23
- Engine
- mcp-runtime-engine@0.1.0 · sdk@1.32.0
Changes since the last refresh
New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 2.3.5 (published 2026-10-19).
Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.
What it is
What does this server offer?
Observed inventoryWhat it mainly works on, as our AI model read its tool descriptions: files and code on the machine it runs on; a web browser or desktop applications.
36 of 55 tools are described as changing something (creating, editing, deleting, sending or running). For 1 the reading was uncertain, so no mark is shown.
- qa_doctorreads or searches
“Diagnose the local QA toolchain (Node, Android SDK/emulator, Xcode/simctl, WDA) and stale-client symptoms; run it first when setup fails.”
Publisher declares: read-only yes · open-world no
5 inputs
platformstring“Default both on macOS (ready if either is), else android.”clientstring“Tailor setup hints to this MCP client.”expectedToolCountnumber“Tool count you expect; a mismatch means a stale client.”expectedVersionstring“Version you expect; a mismatch means a stale client.”expectedSchemaHashstring“Surface hash you expect; a mismatch means a stale client.”
- qa_start_sessiondescribed as changing data
“Open a QA session for the low-level tools (qa_snapshot, qa_act, flows); qa_test_this opens its own.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
6 inputs
projectRootstring“Absolute app path.”responseModestring“Output detail: compact (summary + URIs), normal (default, + JSON), verbose (all JSON, element objects).”sensitiveboolean“Refuse all screenshots, recordings, and on-screen evidence.”profilestring“Budget class.”budgetobject“Override default budget caps.”fixturesarray“Preconditions, merged with .swipium/fixtures.json: {name, requiredState?, ...} (docs/tools.md#qa_start_session).”
- qa_prepare_targetdescribed as changing data
“Prepare an Android Emulator and the app under test: bind or boot the device, Metro + adb reverse for RN/Expo, install, launch, verify.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
11 inputs, 1 required
sessionIdstringrequiredapkstringappIdstringavdstringdevicestring“Target serial; required when >1 device is online.”forcebooleanheadlessboolean“Boot the AVD headless (default true).”bindOnlyboolean“Bind/boot + adb reverse only.”allowLaunchWithoutMetroboolean“Launch a debug RN/Expo build without Metro (may RedBox).”consentIdstringapproveboolean
- qa_ioscontrols a browser or desktopdescribed as changing data
“Control an iOS Simulator (macOS): list, boot (binds it to the session), install (.app), launch, terminate, openurl, logs, privacy_reset, erase (wipes it).”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
10 inputs, 2 required
sessionIdstringrequiredactionstringrequireddevicestring“boot/erase: simulator UDID or exact name (other actions: the bound one only).”appstring“install: .app path (absolute or project-relative).”bundleIdstring“launch/terminate/privacy_reset: bundle id.”urlstring“openurl: deep link.”laststring“logs: time range, e.g.”servicestring“privacy_reset: service, e.g.”consentIdstringapproveboolean
- qa_wdadescribed as changing data
“Set up and manage iOS WebDriverAgent (WDA), needed for structured iOS tap/type/snapshot; start with action:"setup": it reuses a running WDA, else builds (if no build exists) and starts it as one cons…”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
13 inputs, 2 required
sessionIdstringrequiredactionstringrequired“build: background job, reuses a build unless rebuild:true.”webDriverAgentUrlstring“Default: this session's WDA (attached, or the last start / reuse), else ios.wda.url (http://127.0.0.1:8100).”devicestring“Simulator UDID (default: session device).”udidstring“Deprecated alias of device.”bundleIdstring“Default: the session appId.”wdaProjectPathstring“WebDriverAgent.xcodeproj (default: Appium WDA if found).”derivedDataPathstring“xcodebuild -derivedDataPath for reuse.”schemestring“Default WebDriverAgentRunner.”rebuildboolean“build/setup: run build-for-testing even when a previous build (.xctestrun) exists.”allowNonLoopbackboolean“Required to use a non-loopback external WDA URL.”consentIdstringapproveboolean
- qa_device_inforeads or searches
“Read-only device info.”
Publisher declares: read-only yes · open-world no
4 inputs, 1 required
sessionIdstringrequiredlistPackagesboolean“Include installed third-party package names.”packageFilterstring“Substring filter for the package list.”logsobject“Android: save logcat to an artifact instead.”
- qa_orientationdescribed as changing data
“Set orientation (Android Emulator only): portrait, landscape, or auto.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
2 inputs, 2 required
sessionIdstringrequiredorientationstringrequired
- qa_geolocationdescribed as changing data
“Spoof the GPS location (Android Emulator only; consent-gated, logged as an environment change).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
5 inputs, 3 required
sessionIdstringrequiredlatnumberrequired“Latitude in decimal degrees.”lngnumberrequired“Longitude in decimal degrees.”consentIdstringapproveboolean
- qa_networkdescribed as changing data
“Test offline/online behavior via airplane mode (Android 11+).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
4 inputs, 2 required
sessionIdstringrequiredactionstringrequiredconsentIdstringapproveboolean
- qa_metrodescribed as changing data
“Manage the Metro bundler for debug RN/Expo builds: status, diagnose (adds RedBox/logcat evidence and fixes), start (consent-gated: adb reverse + Metro), stop.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 2 required
sessionIdstringrequiredactionstringrequiredconsentIdstringapproveboolean
- qa_app_controldescribed as changing data
“Control the app under test: launch, foreground, background, force_stop, restart (force_stop + launch, for persistence checks), clear_data and fresh_start (wipe data: destructive, consent-gated; RN/Ex…”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
5 inputs, 2 required
sessionIdstringrequiredactionstringrequiredacknowledgeBundleRiskboolean“Accept that wiping an RN/Expo debug build may leave it unable to load its bundle.”consentIdstringapproveboolean
- qa_screen_recorddescribed as changing data
“Record the screen to an mp4 artifact: start (consent-gated; avoid password/OTP screens), status, stop.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
6 inputs, 2 required
sessionIdstringrequiredactionstringrequiredsavestring“start: always (default) | on_failure.”failedboolean“stop with on_failure: true keeps the video.”consentIdstringapproveboolean
Show 43 more tools
- qa_screenshotdescribed as changing data
“Save a screenshot as a session artifact and return its swipium:// URI.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 1 required
sessionIdstringrequiredforcebooleanreasonstring“What it documents (shown in qa_report).”inlineboolean“Also return the image inline (the result then has no structuredContent).”
- qa_snapshotreads or searches
“Read the current screen as addressable elements (@e1, @e2...) for qa_act, with a snapshotQuality verdict; call it before acting and after navigation.”
Publisher declares: read-only yes · open-world no
3 inputs, 1 required
sessionIdstringrequireddiffboolean“Same screen: only added/removed/changed refs since the previous snapshot; a new screen returns the full list.”filterstring“Substring match on text/label/id/role (finds capped elements).”
- qa_inspectreads or searches
“Inspect one element: full attributes (class, ids, text, bounds, flags) of an @eN ref from the last qa_snapshot.”
Publisher declares: read-only yes · open-world no
2 inputs, 2 required
sessionIdstringrequiredrefstringrequired“e.g.”
- qa_actdescribed as changing data
“Tap, type, clear, swipe, scroll, press a key, open a URL or wait: one UI step, then it waits for the screen to settle and reports changed/settled, snapshot quality, health, new elements.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
16 inputs, 2 required
sessionIdstringrequiredactionstringrequiredtargetobject“tap/type/clear (required); swipe: optional start point.”textstring“type (required)”modestring“type: replace (default) clears first.”submitboolean“type: press enter after.”directionstring“swipe/scroll (required)”untilVisibleobject“scroll: stop once visible (checked before the first swipe).”maxScrollsnumber“scroll: max swipes (default 8).”keystring“press (required)”urlstring“open_url (required)”durationMsnumber“tap: press duration (coordinate taps default ~100ms).”ignoreOverlayboolean“tap: tap even if an overlay/keyboard covers the target.”forobject“wait: {settled:true} (default), or until an element (ref/text/id/selector) is visible; gone:true waits until it is not.”timeoutMsnumber“wait: max ms (default 8000, max 50000; larger values are clamped); others: settle-wait cap.”observestring“diff (default after a snapshot): elements added/removed; full: capped list; none: verdicts only.”
- qa_clear_overlaydescribed as changing data
“Clear what blocks the screen (keyboard, LogBox, permission dialog, toast); strategy "auto" handles the topmost.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
3 inputs, 1 required
sessionIdstringrequiredstrategystring“default "auto"”targetRefstring“@eN to check obstruction before/after”
- qa_check_healthreads or searches
“Health check of the current screen: crash, ANR, error boundary, error surface, app still in the foreground.”
Publisher declares: read-only yes · open-world no
1 input, 1 required
sessionIdstringrequired
- qa_job_statusreads or searches
“Poll or wait on a background job (qa_test_this, qa_prepare_target, qa_explore, qa_build run, ...): status, progressDetail, and result/error when finished (qa_test_this: state completed/blocked/unsafe…”
Publisher declares: read-only yes · open-world no
3 inputs, 2 required
sessionIdstringrequiredjobIdstringrequiredwaitMsinteger“Block up to this many ms for the job to finish (use 45000; capped at SWIPIUM_MAX_WAIT_MS, default 50000).”
- qa_job_canceldeletesdescribed as changing data
“Cancel a running background job and abort its child processes (build/boot/install/record).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
2 inputs, 2 required
sessionIdstringrequiredjobIdstringrequired
- qa_get_artifactreads or searches
“Fetch a session artifact (screenshot, report, dump, log, recording) by its swipium://session/<id>/<kind>/<name> URI when the client lacks MCP resources.”
Publisher declares: read-only yes · open-world no
2 inputs, 1 required
uristringrequiredmodestring
- qa_notecreates or changes datadescribed as changing data
“Record the outcome of one workflow for the report.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
10 inputs, 3 required
sessionIdstringrequiredworkflowstringrequired“e.g.”outcomestringrequiredcategorystring“Default for outcome:"fail" is app_bug; use mcp_limitation for tool problems.”reasonstringmissingPreconditionstring“e.g.”requiredStatestringrecommendedSetupstringartifactUrisarrayverifiedVisuallyboolean“The pass was confirmed from an attached screenshot.”
- qa_visualdescribed as changing data
“Screenshot checks where the UI tree fails (maps, canvases, WDA-less iOS).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
15 inputs, 2 required
sessionIdstringrequiredmodestringrequiredassertionstring“assert: what you visually confirmed.”passboolean“assert: default true; false if the expected result is NOT visible.”reasonstring“assert: extra detail.”namestring“baseline/diff: baseline name, [A-Za-z0-9._-]{1,64}.”querystring“find_text: text to find.”templatestring“find_image: project PNG or swipium:// URI.”thresholdnumber“diff: max changed fraction to pass (default 0.02).”minScorenumber“find_image: min match score 0..1 (default 0.85).”minConfidencenumber“find_text: min OCR confidence 0..1 (default 0.8).”tapboolean“find_text/find_image: tap the found point.”forceboolean“Capture even if a secure field may be visible.”consentIdstringapproveboolean
- qa_flow_checkreads or searches
“Validate a flow (flow name/path or flowYaml) without running it: schema errors with the offending step, plus warnings.”
Publisher declares: read-only yes · open-world no
6 inputs
sessionIdstringprojectRootstring“Absolute app root.”flowstring“Flow name under .swipium/flows, or a path to a .yaml file.”flowYamlstring“Inline flow YAML (instead of a file).”platformstring“Authoring target for platform-aware warnings.”ciboolean“Add CI preflight warnings (missing variables, forbidden mutating steps).”
- qa_flow_runruns code or commandsdescribed as changing data
“Run a YAML flow (saved, or inline flowYaml to batch known steps) on the prepared app; mode:"plan" previews per-backend support without a device.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
11 inputs
modestringsessionIdstring“Required for run.”projectRootstring“plan: absolute app root for flow names.”flowstring“Flow name under .swipium/flows, or a .yaml path.”flowYamlstring“Inline flow YAML.”variablesobject“run: ${VAR} values (over session inputs and SWIPIUM_* env); secret-like names are redacted.”repeatinteger“run: repeat N times to classify flakes.”consentIdstring“run: consent for mutating / OCR steps.”approvebooleanbackendstring“plan: only this backend (default all five).”appiumobject“plan: Appium session hints.”
- qa_generategenerates contentdescribed as changing data
“Generate reusable test assets from the actions recorded in this session.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
23 inputs, 1 required
targetstringrequiredmodestring“generate (default) or plan (read-only preview).”sessionIdstring“Required except for target:"appium".”namestring“Asset name (default from the app id).”saveboolean“Write files (default: suite/appium true, others false).”budgetProfilestring“flow”compileboolean“suite: compile to runnable Flow V2 (default true).”replaystring“suite: replay gate (default dry_run; fresh_state needs stateProfile).”stateProfilestring“suite: for replay:"fresh_state".”formatstring“testcases (default both)”projectRootstring“appium: plan/bootstrap without a session.”bootstrapboolean or string“appium: record actions first when none exist.”featurestring“appium: focus for plan/bootstrap.”devicestring“appium: device to bootstrap on.”languagestring“appium (default auto-detected)”platformstring“appium”backendstring“appium plan: preferred backend.”integrateIntoProjectboolean“appium: write into the project (consent-gated, never overwrites).”includeCiboolean“appium: also emit ci.example.yml.”candidateOnlyboolean“appium: brittle locators do not fail validation.”brittleThresholdnumber“appium: max brittle-locator % (default 40).”consentIdstring“suite fresh_state / appium project write.”approveboolean
- qa_smokeruns code or commandsdescribed as changing data
“Run a smoke test server-side: optionally launch, run the baseline (snapshot quality + health + evidence screenshot), then every saved flow in .swipium/flows.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 1 required
sessionIdstringrequiredlaunchboolean“Launch first (default true with an appId).”runFlowsboolean“Run saved .swipium/flows (default true).”variablesobject“${VAR} values for flows (over stored inputs, SWIPIUM_* env).”
- qa_reportgenerates contentdescribed as changing data
“Build the session report (release risk, health, outcomes, findings, evidence, env changes) as an artifact; returns a summary + URIs (read reportMdUri, report.md; the full JSON is reportUri, inline wi…”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 1 required
sessionIdstringrequiredformatstringbaselinestring“Baseline report.json path; adds comparison links.”trendRootstring“Project root with run history; adds trends/flakes.”
- qa_test_thisruns code or commandsdescribed as changing data
“Start here to test a mobile app (Android/iOS): finds or builds the app, picks an emulator/simulator, runs prepare > smoke > explore > report > suite as a job (mode:"execute", default; pass waitForCom…”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
19 inputs
sessionIdstring“Reuse a session.”projectRootstringmodestring“execute (default, job) | plan (no side effects) | interactive (until the first question).”goalstring“Default: smoke, then a suite ("smoke" is fastest).”goalTextstring“reproduce_bug: the bug/flow to focus on.”fastSmokeboolean“Launch + smoke only, no suite (ignored with goal/generateSuite).”platformstring“Force a platform (default inferred).”devicestringpreferRealDeviceboolean“Out of scope: returns PHYSICAL_DEVICE_UNSUPPORTED.”allowOutsideRootbooleanbuildIfNeededboolean“Build from source when no artifact exists (default true).”generateSuiteboolean“execute: also generate a POM suite from the run.”exploreboolean“execute: run guided exploration after the smoke.”stopOnNeedsInputboolean“execute: ask for login/test data instead of testing pre-login only.”waitForCompletionboolean“execute: block until done (or timeoutMs).”timeoutMsinteger“waitForCompletion window (default 45000, max 50000; SWIPIUM_MAX_WAIT_MS raises both; larger values are clamped); still running after it > state:"running" + job…”consentIdstringapprovebooleanresponseModestring“compact = summary + URIs only; kept as the session default for later calls.”
- qa_prepare_ios_targetdescribed as changing data
“Prepare an iOS Simulator: boot, install a simulator .app (consent-gated), launch, verify, and report whether WDA structured automation or visual-only mode is available.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
9 inputs, 1 required
sessionIdstringrequiredappstring“Simulator .app path (absolute or project-relative).”bundleIdstringdevicestring“Simulator UDID or exact name (ignoring case).”launchbooleanattachWdastring“auto (default): attach WDA if reachable, else visual-only; required: fail if it cannot attach; skip: visual-only.”allowLaunchWithoutMetroboolean“Launch a debug RN/Expo .app (no embedded main.jsbundle) without a serving Metro (it will RedBox).”consentIdstringapproveboolean
- qa_flow_compileruns code or commandsdescribed as changing data
“Compile a POM suite on disk (.swipium/suites/<suite>.yaml) into runnable flows under .swipium/flows/ and validate them.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
4 inputs
sessionIdstringprojectRootstringsuitestring“Suite file relative to .swipium/ (default suites/smoke.yaml).”forceboolean“Overwrite .swipium/flows/<slug>.yaml even when it was edited by hand since the last compile (default: keep it, write <slug>.yaml.new).”
- qa_exploreruns code or commandsdescribed as changing data
“Explore the prepared app automatically as a job (poll qa_job_status): taps ranked safe actions, checks health, builds a screen graph, updates the app map, and records taps for qa_generate.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
17 inputs, 1 required
sessionIdstringrequiredgoalstring“Focus, e.g.”depthinteger“Default 3.”maxActionsinteger“Default 20.”maxScreensinteger“Default 12.”maxDurationMsinteger“Default 360000.”strategystring“crawl (default) | task_planner (infer QA tasks first) | hybrid.”safeModestring“strict (default) | balanced | dry_run_destructive (list candidates, no taps) | approved_destructive_candidate (one candidate, consent-gated).”destructiveCandidateobject“approved_destructive_candidate: the candidate from a dry_run_destructive run.”confirmHighImpactboolean“Required for payment/send/permission/delete candidates.”generateSuiteboolean“Also write + compile a POM suite from promoted paths.”includeTextEntryboolean“Type into fields that have a value source (default false).”stopOnAuthboolean“needs_input at an auth wall without credentials (default true).”accountCycleboolean“Allow logout on a disposable generated account (needs allowGeneratedData).”allowGeneratedDataboolean“Allow generated test data (test/staging).”consentIdstringapproveboolean
- qa_first_runruns code or commandsdescribed as changing data
“Get past a first-run gate (login, sign-up, OTP, onboarding, permissions, paywall).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
7 inputs, 1 required
sessionIdstringrequiredmodestringuntilstring“continue: one_step (default) | until_gate (paywall/OTP/permission) | until_home.”allowGeneratedAccountboolean“Override the policy on creating a throwaway account.”testDataPolicyPathstring“Test-data policy JSON (default .swipium/test-data-policy.json).”maxStepsnumber“continue: step cap.”maxDurationMsnumber“continue: time cap in ms.”
- qa_statusreads or searches
“Session status and the next tool to call; cheap, call between steps.”
Publisher declares: read-only yes · open-world no
2 inputs
sessionIdstring“Omit for orientation; pass to get that session state.”goalstring“Bias nextBestAction toward this autopilot goal.”
- qa_explain_blockerreads or searches
“Explain a failureCode in plain language: what it means, who owns the fix (app / environment / Swipium / user), whether it is retry-safe or Swipium can fix it, and the recovery step.”
Publisher declares: read-only yes · open-world no
3 inputs, 1 required
failureCodestringrequired“failureCode from a Swipium error.”contextstringsessionIdstring“The blocked session (qa_status then moves past the blocker).”
- qa_continue_from_blockercreates or changes datadescribed as changing data
“Answer a needs_input question (credentials, OTP, platform, device, monorepo target) and get the next call.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 2 required
sessionIdstringrequiredkindstringrequired“The needs_input kind (e.g.”valuesobject“Field name > value.”secretFieldsarray“Secret keys (default: password/otp/token-like names).”
- qa_app_map_buildcreates or changes datadescribed as changing data
“Build or update .swipium/app-map.json: a static scan of routes and screens (Expo Router, React Navigation, Android, SwiftUI/UIKit, Flutter), plus the latest exploration graph when sessionId is given.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs
projectRootstring“Default: the session or resolved project root.”sessionIdstring“Adds its latest exploration graph.”modestring“static_only | runtime_merge | full (default).”includeCodeIndexboolean“Persist a code symbol index (default true).”forceRescanboolean“Re-scan even if the map is current.”
- qa_app_map_readreads or searches
“Read a compact app-map section: summary (default) | screens | features | auth | automation | testSuite | full; featureId or screenId drills into one node.”
Publisher declares: read-only yes · open-world no
5 inputs
projectRootstringsessionIdstringsectionstringfeatureIdstringscreenIdstring
- qa_app_map_queryreads or searches
“Search the app map (features, screens, code, tests) with a natural-language query.”
Publisher declares: read-only yes · open-world no
5 inputs, 1 required
querystringrequiredprojectRootstringsessionIdstringintentstringlimitnumber
- qa_app_map_feature_scopereads or searches
“Resolve a feature (featureId, or a query like "checkout") to a test scope: code, screens, existing tests, coverage gaps, strategy, ranked candidates.”
Publisher declares: read-only yes · open-world no
7 inputs
projectRootstring“Project root when no session exists.”sessionIdstring“Adds runtime screen-graph evidence.”featureIdstring“Exact map feature id (or use query).”querystring“e.g.”platformstringincludeCodeboolean“query: scan source code (default true).”limitnumber“Max items per list (default 8).”
- qa_app_map_updatecreates or changes datadescribed as changing data
“Targeted app-map edits without a rebuild: add a note, register test cases, link an automation suite, set the environment, or override a feature's coverage.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
7 inputs
projectRootstringsessionIdstringnotestring“A free-text user note added with user_note provenance.”testCasesarrayautomationSuiteobjectenvironmentstring“App environment, e.g.”featureCoverageobject
- qa_issue_logcreates or changes datadescribed as changing data
“Track bugs across runs in the project issue ledger (.swipium/issues-log.jsonl).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
28 inputs
projectRootstringsessionIdstringmodestringstatestring“history filter.”categorystring“history filter; log: category hint.”severitystring“history filter; log: severity hint.”platformstring“history filter; log: platform observed on.”sincestring“history/metrics: ISO start.”includeSuppressedboolean“history/metrics: include suppressed issues.”issueIdstring“Transition key (from history).”fingerprintstring“Alternative transition key.”titlestring“log (required): what was observed.”summarystring“log: one-line summary.”failureCodestring“log: typed code, e.g.”evidenceUrisarray“log/verify_fixed: swipium:// evidence URIs.”fixedInCommitstring“mark_fixed”fixedInVersionstring“mark_fixed”howFixedstring“mark_fixed (quoted on recurrence)”fixedBystring“mark_fixed”reportUristring“verify_fixed evidence”testCaseIdstring“verify_fixed evidence”auditCheckIdstring“verify_fixed evidence”suppressionReasonstring“suppress”suppressedUntilstring“suppress: ISO expiry.”unsuppressboolean“suppress: lift an existing suppression now.”
and 3 more not listed here.
- qa_mobile_audit
“Release-readiness audit: plan (default, no device) or execute.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
11 inputs, 1 required
projectRootstringsessionIdstringprofilestringrequiredmodestringallowGeneratedDataboolean“Required for account_cycle.”allowTestAccountDeletionboolean“Permit deleting disposable test accounts (never a real account).”offlineModeboolean“resilience: drive offline state.”sourceRevisionobjecttargetAppstringconsentIdstring“execute: consent for the airplane-mode toggle.”approveboolean
- qa_suite_readreads or searches
“Read the repo suite (.swipium/test-suite.json), filtered by functionality/status, as a summary, json, or markdown, plus a resource URI for the full suite.”
Publisher declares: read-only yes · open-world no
5 inputs
sessionIdstringprojectRootstringfunctionalitystring“Only return cases under this functionality/feature.”statusstringformatstring
- qa_suite_updatecreates or changes datadescribed as changing data
“Add or update cases in the repo test suite: a case matching feature + objective + steps is updated, new ones get stable TC ids.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
6 inputs, 1 required
sessionIdstringprojectRootstringsourcestringrequiredsourceUristringcasesarray“Canonical or partial cases (normalized).”mergeModestring
- qa_suite_generatecreates or changes datadescribed as changing data
“Generate cases from this session (recorded actions, outcomes, exploration coverage) and merge them into the durable repo suite .swipium/test-suite.json (re-runs update, no duplicates).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
6 inputs
sessionIdstringprojectRootstringfeaturestring“Functionality label (default: the recorded flow name).”creativitystring“How far beyond the happy path (default standard).”creativityLevelstring“Deprecated alias of creativity.”includeManualOnlyboolean
- qa_suite_exportcreates or changes datadescribed as changing data
“Export the repo test suite as markdown, yaml, json, or junit; save:true writes it under .swipium/test-suite-export/.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 1 required
sessionIdstringprojectRootstringformatstringrequiredsaveboolean
- qa_suite_lintreads or searches
“Lint the repo test suite (missing results, stale links, duplicate ids, brittle automation, unsafe adversarial cases) and generated page objects (fragile locators).”
Publisher declares: read-only yes · open-world no
4 inputs
sessionIdstringprojectRootstringbrittleThresholdstringliveFeatureIdsarray“Live map feature ids (enables the stale-link rule).”
- qa_flow_repaircreates or changes datadescribed as changing data
“Repair a failed flow step: suggest a stronger locator and app changes (testID/accessibilityIdentifier); apply:true patches simple selector steps at high/medium confidence (low confidence: refused, ap…”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 2 required
sessionIdstringrequiredflowstring“Flow name/path under .swipium/flows.”flowYamlstring“Inline flow YAML.”failedStepintegerrequired“Zero-based failed step index from qa_flow_run.failedAtStep.”applyboolean“Patch the flow file when safe (default false).”
- qa_test_featureruns code or commandsdescribed as changing data
“Test one named feature (e.g.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
16 inputs, 1 required
sessionIdstring“Prepared session (else bootstrap from projectRoot).”projectRootstringfeaturestringrequired“The feature to test, in natural language.”modestring“execute (default, job) | plan (read-only) | interactive (until the first question).”platformstringdevicestring“Device/simulator to bootstrap on.”consentIdstring“Bootstrap consent (boot/install/launch).”approvebooleancreativitystringallowAdversarialbooleanmaxScreensnumber“Default 8.”maxActionsnumber“Default 20.”timeoutMsnumber“Ignored (kept for compatibility): the run is bounded by maxScreens / maxActions; poll qa_job_status.”generateCasesboolean“Generate test cases (default true).”includeCodebooleanlimitnumber
- qa_resolve_artifactreads or searches
“Find the best installable build (.apk/.aab/.ipa/.app) in Gradle/Flutter/Xcode outputs.”
Publisher declares: read-only yes · open-world no
7 inputs
sessionIdstring“Use this session's projectRoot if given.”projectRootstring“Absolute path; else the usual root resolution.”platformstringbuildTypestringpathstring“Explicit artifact path; skips the search.”allowOutsideRootboolean“Allow a candidate outside the project root.”requireInstallableOnstring
- qa_resolve_targetreads or searches
“Pick the emulator/simulator to test on, deterministically (honors platform, device, artifact; prefers an online one, else plans a boot).”
Publisher declares: read-only yes · open-world no
6 inputs
sessionIdstringprojectRootstringplatformstringdevicestring“Explicit adb serial / simulator udid or name / AVD name.”preferRealDeviceboolean“Refused (PHYSICAL_DEVICE_UNSUPPORTED) when a phone is visible.”includearray“Extra sections: context, plan.”
- qa_buildruns code or commandsdescribed as changing data
“Build the app from source.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 1 required
modestringsessionIdstring“Required for run (stores the build log).”projectRootstring“plan: resolve the project without a session.”platformstringrequiredvariantstringtimeoutMsnumber“run: per-step timeout (default 1200000).”consentIdstring“run”approveboolean“run”
- qa_bundletoolruns code or commandsdescribed as changing data
“Convert an .aab into an installable APK with bundletool (cached in .swipium/artifacts/) before qa_prepare_target.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 1 required
sessionIdstringrequiredaabstring“Default: the best .aab in the project.”forceboolean“Rebuild even if cached.”connectedDeviceboolean“Device-specific APK set (--connected-device).”installboolean“With connectedDevice: install-apks on the device (consent-gated).”devicestring“adb serial (default: session device, else SWIPIUM_DEVICE, else the only one).”consentIdstringapproveboolean
- qa_waitreads or searches
“Wait for a setup condition instead of shell sleep: device_online (adb), metro_ready, wda_ready (after qa_wda start returned status:"starting"), or simulator_booted (the bound iOS Simulator, after qa_…”
Publisher declares: read-only yes · open-world no
3 inputs, 2 required
sessionIdstringrequiredforstringrequiredtimeoutMsinteger“default 45000; values above SWIPIUM_MAX_WAIT_MS (default 50000) are clamped.”
Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-23.
How well are its tools described?
Features #4 and #5
How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.
Descriptions
AI reading of each description
- Says what the tool does
- 100% of 55 tools
- Says what it returns
- 80% of 51 tools
- States limits, defaults or errors
- 38% of 52 tools
- Says when to use it
- 6% of 16 tools
- Items covered per tool
- 2.7 of 4 on average
Counted from the listing
- Parameters with a description
- 61% of 395
- Tools with a description
- 100% of 55
- Typical description length
- 253 characters
The tool set
Counted from the listing
- Tools
- 55
- Size of the list
- about 16,401 tokens for an agent to load (characters ÷ 4)
- Naming
- 55 of 55 names use snake_case
AI reading: easy to mix up
No pair found.
The AI items cover 55 of 55 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.
How do I add it to my client?
Config from the registry entry
From the npm package swipium
Our sandbox started this package on 2026-10-23 (a read-only session: no tool was called).
Add to CursorAn install link in the format Cursor documents, holding the Cursor config below. The command runs the publisher’s code on your machine.
Claude Desktop · claude_desktop_config.json (Settings → Developer → Edit Config)
{
"mcpServers": {
"swipium": {
"command": "npx",
"args": [
"-y",
"swipium@2.3.5"
]
}
}
}Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
"mcpServers": {
"swipium": {
"command": "npx",
"args": [
"-y",
"swipium@2.3.5"
]
}
}
}VS Code · .vscode/mcp.json
{
"servers": {
"swipium": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"swipium@2.3.5"
]
}
}
}VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"swipium","type":"stdio","command":"npx","args":["-y","swipium@2.3.5"]}'Claude Code
claude mcp add --transport stdio swipium -- npx -y swipium@2.3.5
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 -- npx -y swipium@2.3.5
- Optional settings the entry also lists (left out above): SWIPIUM_PROJECT_ROOT, SWIPIUM_TEST_EMAIL, SWIPIUM_TEST_PASSWORD.
- This runs the publisher's code on your machine (npx). Read its README first.
- The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.
Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.
Can it be installed, and is it up to date?
Version pin · advisories
Listed version
- Registry lists
- 2.3.5
- Latest stable
- 2.3.5
- Status
- current
- Withdrawn
- no
Source: registry.npmjs.org · 2026-10-23. About the version the registry lists; a manual install may resolve to a different one.
Dependency advisories
Counted in the full dependency tree as resolved on 2026-10-24 (npm audit; each bar counts packages with an advisory, not advisories). Bars share one scale. The package itself has no known vulnerability (OSV.dev).
Integrity, provenance, license
- Integrity
- sha512-RWu3qFoU5cM5gHf6/…
- Signature
- signed and attested
- License
- MIT
Source: the package registry · 2026-10-23.
Usage
- Downloads
- 686 in the last month
Source: api.npmjs.org · 2026-10-23.
Does the registry listing match what we found?
Feature #6The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.
| Registry says | We found | Result | Source · date |
|---|---|---|---|
| Published package can be started | Started and answered | matches | our test · 2026-10-23 |
| Version 2.3.5 on npm | Exists and can be installed | matches | npm · 2026-10-23 |
| Repository github.com/GeroPalombo/swipium | Opens publicly | matches | api.github.com · 2026-10-23 |
Who made it?
Feature #7 · lineage
Facts about the publisher. We do not turn them into a trust score.
- Namespace
- io.github.GeroPalombo
- GitHub owner
- a personal account (GeroPalombo)
- Build record
- signed and attested
- Repository
- github.com/GeroPalombo/swipium
- Stars
- 0
- Repository age
- 91–180 days
- Last push
- 0–30 days ago
- Archived
- no
- Security policy
- SECURITY.md
Source: the registry entry and api.github.com · 2026-10-23; security policy read from GitHub · 2026-10-23.
Publish this server? Run these checks against it yourself before release, from your own machine: a server the command starts, or your own server at its URL after a one-time proof that you control it: npx protocolprobe-selftest.
Choosing
Record checks
Public records · not a safety rating9 of 9 record checks met
- #3,853 of 15,115 packages by monthly downloads, tied with 3 others
- Not ranked by stars: 0 stars (ranked from 10)
- #398 of 809 packages meeting all 9 record checks, by downloads, tied with 1 other
- MetRegistry entry is active and says how to run itActive, with a package or a remote address.
- MetSource repository link opensThe linked GitHub repository is public.
- MetRepository is not archivedNot archived.
- MetCode pushed to the repository in the 90 days before our checkLast push 0-30 days before our check.
- MetRepository publishes a security policy (SECURITY.md)SECURITY.md found.
- MetPackage names its licence with a standard (SPDX) identifierMIT
- MetThe version the registry lists can be installed and is not withdrawnThe listed version exists and is current.
- Metnpm package carries build provenance (attestation)Signed, with a build attestation naming the source and workflow.
- MetNo known critical or high advisory in the package or its dependenciesNone known in the package or its dependency tree.
Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-23. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards
Common questions about io.github.GeroPalombo/swipium
Answered from the data aboveIs io.github.GeroPalombo/swipium safe to install?
We do not rate servers as safe or unsafe. 9 of its 9 applicable record checks are met (facts from public records, each listed on this page). What the records show: Its npm package carries a build-provenance attestation that names its source repository and build workflow. Its source repository opens publicly. Its repository had a push in the last 90 days. The listed version is the latest stable release. The package itself has no known vulnerability (OSV.dev). Its full dependency tree has no known advisory. 36 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.
Has io.github.GeroPalombo/swipium been security tested?
Partly. 4 of the 13 checks that apply to it were exercised. We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security verdict is published before verification.
What can io.github.GeroPalombo/swipium do?
It lists 55 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data, delete, run code or commands, control a browser or desktop and generate content. We did not call any tool, so this describes the text, not the behaviour.
Can io.github.GeroPalombo/swipium change or delete data?
36 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.
Does io.github.GeroPalombo/swipium publish a security policy?
Yes: its repository has a public security policy (github.com/geropalombo/swipium/blob/HEAD/SECURITY.md). That is the publisher's statement, not permission for us to test the server, and we call none of its tools.
Is the listed version current?
Yes. The registry lists 2.3.5, the latest stable release on npm.
Where is the source code of io.github.GeroPalombo/swipium?
In github.com/GeroPalombo/swipium, which opens publicly.
Found this page useful?
Anonymous · no sign-inA quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.
Similar servers
Same topic · AI-read
- io.github.tomyud1/godot-mcpalso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
- io.github.SummerEngine/summerSummer Enginealso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
- io.github.fullread/deepadbalso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
- io.github.Moha2005269/etabs-mcpETABS MCPalso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
- io.github.kivanccakmak/yaverYaveralso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
- io.github.yaver-io/yaverYaveralso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
Active servers whose topic is also “developer-tools” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.
Compare with another server
Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.
Security testing
What did we test, and what did we leave out?
18 checks · features #1, #2
Not probed (read-only run)
We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security score is given; a check we did not run is never counted as passed.
- Inventory: exercised
- Hidden instructions: exercised
- Real execution: not run · our policy
- Secret leak: not run · nothing to check it against
- Internal addresses: not run · our policy
- Unconfirmed changes: not run · our policy
- Bad input: not run · our policy
- Model requests: not run · nothing to check it against
- Sensitive questions: not run · nothing to check it against
- Folder boundary: not run · our policy
- Log leaks: not run · nothing to check it against
- Hidden content: exercised
- Fake assistant turns: exercised
- Token passthrough: not applicable
- Token audience: not applicable
- Sign-in redirect: not applicable
- Consent handling: not applicable
- Sign-in metadata: not applicable
4 exercised9 not run (reason given)5 not applicable
Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 4 of the 13 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.
- 1Inventory
tool-listReads the declared tools, resources and prompts.exercised - 2Hidden instructions
description-poisoningLooks for hidden instructions in tool descriptions.exercised - 12Hidden content
audience-hidingChecks resources that hide content from the user.exercised - 13Fake assistant turns
fake-assistant-turnChecks prompts that pose as the assistant's own words.exercised
- 3Real execution
real-executionCalls a tool and checks what really happens.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 4Secret leak
canary-leakPlants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 5Internal addresses
ssrfChecks whether a tool can be steered to internal addresses.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 6Unconfirmed changes
write-without-confirmationChecks whether tools that change data act without asking.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 7Bad input
error-handlingSends bad input and watches how the server answers.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 8Model requests
samplingChecks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 9Sensitive questions
elicitation-sensitive-dataChecks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 10Folder boundary
root-boundaryChecks whether the server reaches outside the folders it was given.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 11Log leaks
logging-side-channelChecks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
- 14Token passthrough
token-passthroughChecks whether the server forwards a user's token to other services.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 15Token audience
token-audience-validationChecks whether tokens meant for another service are accepted.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 16Sign-in redirect
open-redirectChecks the sign-in redirect for abuse.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 17Consent handling
confused-deputyChecks consent handling when one service acts for another.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 18Sign-in metadata
oauth-url-schemeChecks the published sign-in metadata for unsafe URLs.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
Source: our own test in an isolated sandbox, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.
What happened during the test?
Feature #8
The steps in order, as the test record holds them.
- 0 msStarted the published package in an isolated sandbox (read-only mode)
- 2,153 msConnected after 0 redirects.
- Read the inventory: 55 tools, 1 resource, 7 prompts.
- 3,107 msFinished: 4 checks exercised.
Reference
How is it classified?
18 fields
One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.
“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.
Cite or correct this page
Sources and corrections
Suggested citation
ProtocolProbe. “io.github.GeroPalombo/swipium: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/io.github.GeroPalombo/swipium
Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.
As JSON: this record in the API · API documentation.
Badge for your README
[](https://protocolprobe.com/mcp/servers/io.github.GeroPalombo/swipium)
It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.
Something wrong, or is this yours?
If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.
Write to hello@protocolprobe.com · corrections log · methodology